[OSM-dev-fr] Calcul de dénivelée avec mapquest
Nicolas Dumoulin
nicolas_openstreetmap.org at dumoulin63.net
Jeu 21 Avr 04:30:58 BST 2011
Salut,
Je cherchais à obtenir facilement la dénivellée cumulée positive (le D+ quoi) d'un itinéraire, et j'ai finalement fait un script python pour utiliser les services de mapquest. Voilà ce que ça donne :
#!/usr/bin/python
# -*- coding: utf-8 -*-
import urllib2,sys
from xml.dom import minidom
if __name__ == "__main__":
if len(sys.argv)!=2:
print "Usage: "+sys.argv[0]+" <gpx file>"
sys.exit(1)
xmldoc = minidom.parse(sys.argv[1])
latLngCollection=""
for point in xmldoc.getElementsByTagName("gpx")[0].getElementsByTagName("trk")[0].getElementsByTagName("trkseg")[0].getElementsByTagName("trkpt"):
latLngCollection+=point.getAttribute("lat")+","+point.getAttribute("lon")+","
url="http://open.mapquestapi.com/elevation/v1/getElevationProfile?shapeFormat=raw&outFormat=xml&latLngCollection="+latLngCollection[:-1]
page = urllib2.urlopen(url).read()
xmldoc = minidom.parseString(page)
previous=10000
total=0
for elt in xmldoc.getElementsByTagName("elevationResponse")[0].getElementsByTagName("distanceHeightCollection")[0].getElementsByTagName("distanceHeight"):
height=float(elt.getElementsByTagName("height")[0].firstChild.data)
#print str(height)
if (height>previous):
total+=height-previous
previous=height
print str(total)
À toutes fins utiles …
--
Nicolas Dumoulin
http://wiki.openstreetmap.org/wiki/User:NicolasDumoulin
Plus d'informations sur la liste de diffusion dev-fr