<br><br><div class="gmail_quote">2009/12/16 Etienne Chové <span dir="ltr"><<a href="mailto:chove@crans.org">chove@crans.org</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Le 16/12/2009 13:45, Emilie Laffray a écrit :<div class="im"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Pour Postgis, tu peux avoir la distance entre deux points avec<br>
ST_Distance_sphere en mètres. Tu peux donc "facilement" écrire une<br>
requête qui calculera la distance d'une way en mètres.<br>
</blockquote>
<br></div>
Dans ce cas, avec une base postgis tu peux faire :<br>
<br>
SELECT route.highway, floor(sum(st_length(st_intersection(zone.way, route.way)))) AS distance FROM (SELECT highway, way FROM france_line WHERE highway<>'') AS route, (SELECT way FROM france_polygon WHERE name='Nantes') AS zone WHERE zone.way && route.way AND st_intersects(zone.way, route.way) GROUP BY route.highway;<br>
<br>
pour avoir les distances sur Nantes, et tu obtiens :<br>
highway | distance<br>
---------------+----------<br>
cycleway | 32259<br>
service | 61078<br>
footway | 89917<br>
motorway | 5648<br>
tertiary | 167958<br>
unclassified | 140163<br>
trunk_link | 11482<br>
pedestrian | 14227<br>
motorway_link | 1780<br>
residential | 479245<br>
steps | 2441<br>
trunk | 28421<br>
road | 3897<br>
path | 31083<br>
living_street | 284<br>
track | 2740<br>
secondary | 132896<br>
primary | 87875<br>
bus_guideway | 6703<br>
construction | 620<br>
<br>
st_distance marche que pour deux points à en croire la doc, j'espère que st_length donne bien des mètre, mais ça semble être le cas.<br></blockquote></div><br>ST_Length ne retourne que des valeurs dans l'unite de la projection sauf si tu precises un spheroid. A noter qu'il faut Postgis 1.5 (en cours de development) pour avoir le support geodesique.<br>
<a href="http://postgis.refractions.net/documentation/manual-svn/ST_Length.html">http://postgis.refractions.net/documentation/manual-svn/ST_Length.html</a> pour la version sur svn<br><span class="term"><br>Documentation actuelle.<br>
<a href="http://postgis.refractions.net/documentation/manual-1.3/ch06.html">http://postgis.refractions.net/documentation/manual-1.3/ch06.html</a> ST_Length_spheroid<br><br>Si tu veux une distance en metres, il me semble que tu dois pouvoir faire une projection dans une zone UTM. Si tu fais la retroprojection a chaque calcul ca va etre tres lent evidemment<br>
<a href="http://trac.osgeo.org/postgis/wiki/UsersWikiNewbieMeasurementInMeters">http://trac.osgeo.org/postgis/wiki/UsersWikiNewbieMeasurementInMeters</a><br><br>Emilie Laffray<br></span>