Pour chaque requête valide, l'API Google Elevation retournera une réponse contenant l'altitude dans le format indiqué dans l'URL de la requête. Chaque réponse contient les éléments suivants :
- Un code de statut
status, qui peut prendre une des valeurs suivantes :OK: indique que la requête a abouti avec succès,INVALID_REQUEST: indique que la requête était male formée,OVER_QUERY_LIMIT: indique que le demandeur a dépassé le quota de requêtes autorisées,REQUEST_DENIED: indique que l'API n'a pas pu achever la requête, probablement parce que le demandeur a omis le paramètre obligatoiresensor,UNKNOWN_ERROR: indique une erreur inconnue.
- Un tableau de résultats nommé
resultscontenant les éléments suivants :- Un élément
location(contenant des éléments latitudelatet longitudelng) correspondant à l'emplacement pour lequel l'altitude a été calculée. Notez que pour les requêtes concernant les chemins, l'élémentlocationcontiendra un échantillon de points situés le long du chemin. - Un élément
elevationindiquant l'altitude, en mètres, de l'emplacement. - Un valeur
resolutionindiquant la distance maximale entre les points de données à partir desquels l'altitude a été interpolée, en mètres. Cette propriété sera absente si la résolution n'est pas connue. Notez que les données d'altitude deviennent plus grossières (valeursresolutionplus grande) lorsque plusieurs points sont passés. Pour obtenir une valeur d'altitude plus précise pour un point, elle devrait être interrogée indépendamment.
- Un élément
Obtenir l'altitude d'une ou plusieurs positions au format JSON
Emplacement unique réponse au format JSON
L'exemple suivant demande l'altitude de Denver, au Colorado, le "Mile High City" dans le format JSON :
http://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&sensor=true_OU_false
Important : dans la requête ci-dessus Le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false. Assurez-vous également qu'aucun espace existe entre les latitude et longitude passées dans le paramètre locations.
{
"results" : [
{
"elevation" : 1608.637939453125,
"location" : {
"lat" : 39.73915360,
"lng" : -104.98470340
},
"resolution" : 4.771975994110107
}
],
"status" : "OK"
}
Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :
http://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&sensor=false
Emplacements multiples réponse au format JSON
L'exemple suivant montre des réponses multiples (pour Denver, CO et pour Death Valley, CA) dans le format JSON :
http://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&sensor=true_OU_false
Important : dans la requête ci-dessus Le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false. Assurez-vous également qu'aucun espace existe entre les latitude et longitude passées dans le paramètre locations.
{
"results" : [
{
"elevation" : 1608.637939453125,
"location" : {
"lat" : 39.73915360,
"lng" : -104.98470340
},
"resolution" : 4.771975994110107
},
{
"elevation" : -50.78903579711914,
"location" : {
"lat" : 36.4555560,
"lng" : -116.8666670
},
"resolution" : 19.08790397644043
}
],
"status" : "OK"
}
Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :
Obtenir l'altitude d'une ou plusieurs positions au format XML
Emplacement unique réponse au format XML
La requête suivante est identique à la précédente, sauf qu'ici, on souhaite que le format de sortie soit XML grâce à l'utilisation du flag de service /xml :
L'exemple suivant demande l'altitude de Denver, au Colorado, le "Mile High City" dans le format XML :
http://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034&sensor=true_OU_false
Important : dans la requête ci-dessus Le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false. Assurez-vous également qu'aucun espace existe entre les latitude et longitude passées dans le paramètre locations.
<?xml version="1.0" encoding="UTF-8"?> <ElevationResponse> <status>OK</status> <result> <location> <lat>39.7391536</lat> <lng>-104.9847034</lng> </location> <elevation>1608.6379395</elevation> <resolution>4.7719760</resolution> </result> </ElevationResponse>
Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :
http://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034&sensor=false
Emplacements multiples réponse au format XML
L'exemple suivant montre des réponses multiples (pour Denver, CO et pour Death Valley, CA) dans le format XML :
http://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034|36.455556,-116.866667&sensor=true_OU_false
Important : dans la requête ci-dessus Le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false. Assurez-vous également qu'aucun espace existe entre les latitude et longitude passées dans le paramètre locations.
<ElevationResponse> <status>OK</status> <result> <location> <lat>39.7391536</lat> <lng>-104,9847034 </lng> </location> <elevation>1608.8402100</elevation> <resolution>4.7719760</resolution> </result> <result> <location> <lat>36.4555560</lat> <lng>-116,8666670</lng> </location> <elevation>-50,7890358></elevation> <resolution>19.0879040</resolution> </result> </ElevationResponse>
Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :
Obtenir l'altitude d'un échantillon de points le long d'une ligne droite
Les exemples suivants demandent les données relatives à l'altitude le long d'une ligne droite path partant du Mont Whitney, CA jusqu'à Badwater, CA, correspondant, réciproquement, aux points le plus élevé et le plus bas sur le continent US. Nous demandons trois échantillons samples, incluant les deux extrémités et le point à mi-chemin.
Réponse au format JSON
http://maps.googleapis.com/maps/api/elevation/json?path=36.578581,-118.291994|36.23998,-116.83171&samples=3&sensor=true_OU_false
Important : dans la requête ci-dessus Le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false. Assurez-vous également qu'aucun espace existe entre les latitude et longitude passées dans le paramètre path.
{
"results" : [
{
"elevation" : 4411.941894531250,
"location" : {
"lat" : 36.5785810,
"lng" : -118.2919940
},
"resolution" : 19.08790397644043
},
{
"elevation" : 1381.861694335938,
"location" : {
"lat" : 36.41150289067028,
"lng" : -117.5602607523847
},
"resolution" : 19.08790397644043
},
{
"elevation" : -84.61699676513672,
"location" : {
"lat" : 36.239980,
"lng" : -116.831710
},
"resolution" : 19.08790397644043
}
],
"status" : "OK"
}
Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :
Réponse au format XML
http://maps.googleapis.com/maps/api/elevation/xml?path=36.578581,-118.291994|36.23998,-116.83171&samples=3&sensor=true_OU_false
Important : dans la requête ci-dessus Le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false. Assurez-vous également qu'aucun espace existe entre les latitude et longitude passées dans le paramètre path.
<?xml version="1.0" encoding="UTF-8"?> <ElevationResponse> <status>OK</status> <result> <location> <lat>36.5785810</lat> <lng>-118.2919940</lng> </location> <elevation>4411.9418945</elevation> <resolution>19.0879040</resolution> </result> <result> <location> <lat>36.4115029</lat> <lng>-117.5602608</lng> </location> <elevation>1381.8616943</elevation> <resolution>19.0879040</resolution> </result> <result> <location> <lat>36.2399800</lat> <lng>-116.8317100</lng> </location> <elevation>-84.6169968</elevation> <resolution>19.0879040</resolution> </result> </ElevationResponse>
Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :
Création d'un graphique représentant le dénivelé du terrain : Exemple
Les données relatives à l'altitude doivent être utilisées conjointement avec l'affichage des données sur une carte Google. Google Chart Tools ( http://code.google.com/intl/fr/apis/chart/ ) est parfaitement adapté pour la création de graphiques illustrant le dénivelé du terrain, que vous pouvez afficher aux côtés de vos cartes.
L'exemple suivant, en Python, calcule les données relatives à l'altitude entre le Mont Whitney et Badwater, Death Valley et utilise ces valeurs pour créer un graphique représentant le dénivelé du terrain :
import simplejson
import urllib
ELEVATION_BASE_URL = 'http://maps.googleapis.com/maps/api/elevation/json'
CHART_BASE_URL = 'http://chart.apis.google.com/chart'
def getChart(chartData, chartDataScaling="-500,5000", chartType="lc",chartLabel="Elevation in Meters",chartSize="500x160",chartColor="orange", **chart_args):
chart_args.update ((
'cht': chartType,
'chs': chartSize,
'chl': chartLabel,
'chco': chartColor,
'chds': chartDataScaling,
'chxt': 'x,y',
'chxr': '1,-500,5000'
))
dataString = 't:' + ','.join(str(x) for x in chartData)
chart_args['chd'] = dataString.strip(',')
chartUrl = CHART_BASE_URL + '?' + urllib.urlencode (chart_args)
print chartUrl
def getElevation(path="36.578581,-118.291994|36.23998,-116.83171", samples="100", sensor="false", **elvtn_args):
elvtn_args.update({
'path': path,
'samples': samples,
'sensor': sensor
))
url = ELEVATION_BASE_URL + '?' urllib.urlencode(elvtn_args)
response = simplejson.load(urllib.urlopen(url))
# Create a dictionary for each results[] object
elevationArray = []
for resultset in response['results']:
elevationArray.append(resultset['elevation'])
# Create the chart passing the array of elevation data
getChart(chartData=elevationArray)
if __name__ == '__main__':
# Mt. Whitney
startStr = "36.578581,-118.291994"
# Death Valley
endStr = "36.23998,-116.83171"
pathStr = startStr + "|" + endStr
getElevation(pathStr)
Les images ci-dessous montrent comment ces informations peuvent être utilisées afin d'être affichées sur une carte et / ou un graphique :
Téléchargez le code ElevationChartCreator.py depuis gmaps-échantillons.
