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
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à