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

_______________________________________________
dev-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev-fr

Répondre à