[OSM-talk-fr] Calculer le total kilométrique d'une commune
Patrice Vetsel
ubuntu at kagou.fr
Mer 31 Mar 16:16:45 UTC 2010
Le 31/03/10 17:16, sly (sylvain letuffe) a écrit :
> 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
>
>
Peux tu faire un essai avec la commune de "Saint Christol les Alès"
30380 ? D'après un de leurs techniciens, on est dans les 80 km
Merci
Plus d'informations sur la liste de diffusion Talk-fr