[OSM-talk-fr] Calculer le total kilométrique d'une commune
sly (sylvain letuffe)
sylvain at letuffe.org
Mer 31 Mar 15:16:52 UTC 2010
On mercredi 31 mars 2010, ubuntu at kagou.fr wrote:
> Bonjour :)
>
> Est il possible de calculer le nombre de kilomètres de routes/chemins d'une
> commune ?
Ma démarche va être pragmatique, Émilie cherche peut-être une précision en
centimètres et cherche donc les super plugins top moumoute, mais ce que je
vais faire, c'est juste un test tout con. Je suis pas convaincu que ce que je
fais soit juste (même plutôt non !), mais je fais mon test sur une rue que je
connais bien, je compare à une mesure faite sur google earth par exemple et
si ça semble pas trop pourri, c'est que ça doit être pas trop mal pour le
besoin exprimé :
C'est parti :
- mesure sur google earth de la rue test : "Rue du Chardonet" 148m (de milieu
de route à milieu de route)
- p'tit coup d'oeil à la doc postgis, on m'informe de st_length( )
clair, ça ne doit pas tenir compte bien fort de la rotondité de la terre, mais
pour une commune, ça devrait aller
- J'ai une base avec des coordonnées en merkator
- je tente un coup, erreur d'un facteur 2, bon, ça doit pas le faire pour
conserver les distances
- prenons un truc de français, la projection lambert, j'ai ça dans ma table
des projections : "RGF93 / Lambert-93" (srid 2154)
- on tente (elle est en deux morceaux dans osm) :
# select st_length(st_transform(way,2154)),name,osm_id from planet_osm_line
where osm_id=21818269 or osm_id=37417102;
st_length | name | osm_id
------------------+------------------+----------
60.0128023671594 | Rue du Chardonet | 21818269
88.936417938514 | Rue du Chardonet | 37417102
putain con ! j'ai pas fais exprès : 149m, on va pas se plaindre ;-)
Y'a pu qu'a :
# select
sum(st_length(st_transform(rues.way,2154)))/1000 as longueur_totale,
commune.name
from
planet_osm_line as rues, planet_osm_polygon as commune
where
rues.highway is not null and rues.way && commune.way
and ST_Contains(commune.way, rues.way)
and commune.osm_id=-74386 group by commune.name;
longueur_totale | name
------------------+----------
213.543132378272 | Chambéry
(1 row)
213km pour la commune de chambéry
Pas de doute, il doit m'en manquer parce que certaines rue sont à cheval, des
nationale ne font que traverser, ma technique doit être approximative, mais
ça flaire la bonne approximation
Si quelqu'un veut me donner l'id osm pour tester une rue qu'il a mesuré, on
peut voir déjà si les résultats on un semblant de cohérence
--
sly
Sylvain Letuffe sylvain at letuffe.org
qui suis-je : http://slyserv.dyndns.org
Plus d'informations sur la liste de diffusion Talk-fr