[OSM-talk-fr] [SQL] Communes sans rue
Christian Quest
christian.quest at gmail.com
Dim 8 Aou 10:53:57 UTC 2010
Sur la même idée (zones sans rues là où devrait logiquement y en avoir),
j'ai tenté une autre approche, repérer les landuse=residential avec aucun
rue traversante.
Dans mon extrait de planet j'ai 33406 polygones avec landuse=residential sur
environ 6,4 millions de polygones.
La requête ressemble à ça:
SELECT l.osm_id
FROM osm_polygon l
LEFT OUTER JOIN osm_line r
ON (r.highway IS NOT NULL
AND (st_intersects(st_buffer(l.way,0),r.way) OR
st_contains(st_buffer(l.way,0),r.way)))
WHERE st_area(st_transform(st_buffer(l.way,0),2154)) > 10000
AND l.landuse IS NOT NULL
AND l.landuse='residential'
AND r.osm_id IS NULL
LIMIT 10;
C'est un premier jet pas vraiment optimisé donc lent à s'exécuter sur une
zone importante mais ce qu'elle renvoie a l'air correct.
J'ai limité aux landuse d'au moins 1 Ha car certains bâtiments sont taggués
building=yes+landuse=residential en particulier dans l'import BMO. Il y a
aussi des zones où les landuse sont découpés de part et d'autres des routes
et rues, pâté de maison par pâte de maison.
J'ai aussi eu besoin de st_buffer pour "nettoyer" les polygones non
conformes qui trainent ici et là.
--
Christian
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20100808/7cbfc0f4/attachment.htm>
Plus d'informations sur la liste de diffusion Talk-fr