Nouveau fichier dispo (à tester): les limites sous forme non pas de polygone, mais de linestring.
C'est utile quand on veut représenter les frontières proprement pour chaque niveau administratif. C'est ici (simplifié à 100m): http://osm13.openstreetmap.fr/~cquest/openfla/export/limites-20131223-100m-shp.zip : Pour chaque limite on a: - le code INSEE des communes à gauche et à droite (issu d'OSM) - le niveau administratif (2,4,6,7,8) issu du croisement avec le COG Je vais compléter sûrement avec les noms des niveaux administratifs, peut être aussi en croisant avec d'autres découpages comme les EPCI, bref l'idée est de savoir qu'une limite est une limite de N découpages et lesquels. De quoi faire une belle dataviz de notre fameux mille-feuilles ! Pour info, retrouver qui est à gauche ou à droite se fait avec postgis et ST_Intersects + ST_LineInterpolatePoint et ST_OffsetCurve. Traiter les 110 000 limites et générer le shapefile ne prends que 38s, voici la tête de la requête: select admin_level, case when cote then insee1 else insee2 end as insee_gauche, case when cote then insee2 else insee2 end as insee_droit, way from (select ST_Intersects(p1.poly250, st_line_interpolate_point(st_offsetcurve((st_dump(l.lim250)).geom, 0.1, 'quad_segs=1 join=mitre'), 0.5)) as cote, (st_dump(l.lim250)).geom as way, i1.insee as insee1, i2.insee as insee2, case when array_length(l.insee,1)=1 then 2 when i1.reg!=i2.reg then 4 when i1.dep!=i2.dep then 6 when i1.ar != i2.ar then 7 else 8 end as admin_level from osm_limites l join insee_cog i1 on (l.insee[1] = i1.insee) left join insee_cog i2 on (l.insee[2]=i2.insee) join osm_fla p1 on (p1.insee=i1.insee) ) as lim Il me manque juste la détection frontière terrestre ou maritime... -- Christian Quest - OpenStreetMap France Un nouveau serveur pour OSM... http://donate.osm.org/server2013/
_______________________________________________ Talk-fr mailing list [email protected] https://lists.openstreetmap.org/listinfo/talk-fr

