[OSM-dev-fr] Osmose
Marc SIBERT
marc at sibert.fr
Lun 21 Fév 12:20:53 GMT 2011
Le 21 février 2011 12:21, Bruno Cortial <bruno.cortial at laposte.net> a écrit
:
>
> Bien vu, merci.
> Pour les JOIN tu les appliques sur les conditions "&&" donc ?
>
> Autre question en passant: ma machine n'est pas un foudre de guerre, je
> n'utilise pas les hourly diff, la base n'est donc utilisée qu'en
> consultation. Y-a-t-il des optimisations recommandées au niveau de postgis
> ou osm2pgsql ?
>
> BrunoC
>
>
Bonjour,
sans test pratique, je te propose :
select
osm1.osm_id
from
planet_osm_polygon as osm1
JOIN planet_osm_polygon as osm2 ON osm1.osm_id < osm2.osm_id and
ST_Overlaps(osm1.way,osm2.way)
JOIN planet_osm_polygon as commune ON ST_Contains(commune.way, osm1.way)
where
GeometryType(osm1.way) = 'POLYGON'
and GeometryType(osm2.way) = 'POLYGON'
and osm1.way && commune.way
and osm2.way && commune.way
and commune.name = 'Nantes'
and osm1.way && osm2.way
and osm1.building is not null
and osm2.building is not null
Concernant la remarque de Gilles, ma proposition ne contient pas de jointure
"orientée", mais bien des CROSS JOIN équivalentes à la mises en parallèles
dans le FROM (et donc sans ordre de jointure). Mais effectivement tout ça
c'est une question d'appréciation personnelle, sans oublier que le code peut
être lu par d'autres personnes... <troll>Lisibilité, portabilité,
documentation pour faire du code vraiment libre</troll>
Pour mes besoins sur un simple poste de travail, je me suis fait un
convertisseur OSM-XML / SQLite-Spatialite, BDD spatiale bien plus légère que
PostGis, mais dont le schéma n'est pas compatible avec celui de PGSQL.
A+
--
Marc Sibert
marc at sibert.fr
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/dev-fr/attachments/20110221/2115f048/attachment.html>
More information about the dev-fr
mailing list