Google Maps API Tutorial© 2008, 2009 Mike Williams
|Translate this page:|
AltitudeGoogle themselves don't serve altitude information, so if you want to obtain the altitude, you'll need to get it from somewhere else.
Here's a simple example
One place where you can get altitude information is the US Geological Survey Elevation Query.
Information about their service can be found here:
The parameters are:
I'm not a PHP expert, but I managed to throw together something that works for this purpose. A general purpose relay script would need to be more complicated than this, to avoid the possibility of cross-domain attacks, but I think I can trust the USGS. My PHP code looks like this and returns the data like this: altitude.php?lat=53&lng=-2.
There are two asynchronous steps in this chain, so don't expect to be able to write a function that returns the altitude of a point. Send the request with GDownloadUrl() and then process the reply in the callback funtion. If you're sending several requests (e.g. to obtain the profile of a cycle route) you can wrap your call in a function and use it to hold Function Closure so that you can match the replies back to the requests.
The service will return up to 10 decimal places of information, but I suspect that the surveys aren't accurate to 0.1 nanometres. In my code I just use the integer value.
The service returns the value 0 for open sea. You could therefore use it to distinguish land from sea, but there are a few other points on land where the elevation is also zero, e.g. Elburg in the Netherlands.
The documentation states that the service can return the value -1.79769313486231E+308 if there is no valid data for the requested location, so you might want to filter out such values if you're drawing an elevation diagram.
In this example I use GDirections to find a route, use the EPoly extension to obtain points at equal distances along that route, use USGS to find the altitude at those points, and use the Google Chart API to plot a chart of those altitudes.