[OSM-talk-fr] Limites communales simplifiées... disponibles !
Christian Quest
cquest at openstreetmap.fr
Lun 23 Déc 11:13:35 UTC 2013
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/
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20131223/5d4e5765/attachment.htm>
Plus d'informations sur la liste de diffusion Talk-fr