New Elevation Service!

537 views
Skip to first unread message

Daniel Lee

unread,
Mar 24, 2010, 3:05:26 PM3/24/10
to Google Maps JavaScript API v3
You asked for it, and here it is!
http://googlegeodevelopers.blogspot.com/2010/03/aint-no-mountain-high-enough.html

We're very excited to announce our new service allowing developers to
query elevation data across the entire globe. You can request
elevation data against any given location using either of the
following two options.

1. ElevationService class, featured in the JavaScript Maps API V3:
http://code.google.com/apis/maps/documentation/v3/services.html#Elevation

2. Elevation Web Service, featuring a standard HTTP interface:
http://code.google.com/apis/maps/documentation/elevation/

The Elevation service provides elevation data for all locations on the
surface of the earth. This also includes depth locations on the ocean
floor, which will return negative values. If exact elevation
measurements are unknown at the requested location, the service will
interpolate and return an averaged value using four of the nearest
locations.

Overall, we're hoping the Elevation service will help you build higher-
quality applications catered towards hiking, biking, mobile
positioning, and low resolution surveying.

====

As always, we'd love to hear your feedback around this exciting new
feature.


Thanks!

Dann

Dave

unread,
Mar 24, 2010, 8:47:20 PM3/24/10
to Google Maps JavaScript API v3
There is no usage limit specified for the ElevationService. Is there
one? The Elevation Web Service has a limit of 25,000 per day where
each location is one query. Does that mean if I ask for 1024 elevation
points along a route, I can only do that 24 times in one day?

There appears to be no geodesic/great circle option.

From the documentation it sounds like subsampling just chooses
discreet points along the route. It would be nice if it returned the
highest elevation along the sub-segment. I need to know the peak
elevations along a route, but the subsamples may land on either side
of a peak.

Thanks,
Dave

On Mar 24, 12:05 pm, Daniel Lee <daniel...@google.com> wrote:
> You asked for it, and here it is!http://googlegeodevelopers.blogspot.com/2010/03/aint-no-mountain-high...


>
> We're very excited to announce our new service allowing developers to
> query elevation data across the entire globe.  You can request
> elevation data against any given location using either of the
> following two options.
>
> 1. ElevationService class, featured in the JavaScript Maps API V3:

>    http://code.google.com/apis/maps/documentation/v3/services.html#Eleva...

Marcelo

unread,
Mar 25, 2010, 12:37:58 PM3/25/10
to Google Maps JavaScript API v3
Great news!! Thanks for this!

An observation:

The HTTP service with JSON output is returning with "Content-Type:
application/json", which causes the browser to pop a "file save"
dialog instead of displaying the data. Is this intentional?
Wouldn't it be better to use "Content-type: text/plain" ?

--
Marcelo - http://maps.forum.nu
--


On Mar 24, 8:05 pm, Daniel Lee <daniel...@google.com> wrote:
> You asked for it, and here it is!http://googlegeodevelopers.blogspot.com/2010/03/aint-no-mountain-high...


>
> We're very excited to announce our new service allowing developers to
> query elevation data across the entire globe.  You can request
> elevation data against any given location using either of the
> following two options.
>
> 1. ElevationService class, featured in the JavaScript Maps API V3:

>    http://code.google.com/apis/maps/documentation/v3/services.html#Eleva...

Marcelo

unread,
Mar 25, 2010, 12:44:46 PM3/25/10
to Google Maps JavaScript API v3
On Mar 25, 5:37 pm, Marcelo <marcelo...@hotmail.com> wrote:
> An observation:
>
> The HTTP service with JSON output is returning with "Content-Type:
> application/json", which causes the browser to pop a "file save"
> dialog instead of displaying the data. Is this intentional?
> Wouldn't it be better to use "Content-type: text/plain" ?

Sorry, I forgot to add a link for your convenience:
http://maps.google.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&sensor=false

--
Marcelo - http://maps.forum.nu
--


>
> --
> Marcelo -http://maps.forum.nu

Thor (Google Employee)

unread,
Mar 25, 2010, 6:23:02 PM3/25/10
to Google Maps JavaScript API v3
On Mar 25, 11:47 am, Dave <dualrud...@gmail.com> wrote:
> The Elevation Web Service has a limit of 25,000 per day where
> each location is one query. Does that mean if I ask for 1024 elevation
> points along a route, I can only do that 24 times in one day?

Yes, that's correct. However ElevationService requests are rate
limited per user, so as with geocoding we recommend that you use the
client side service where possible, as that ensures your access to the
service will scale with your user base (ie. each user can make a 1,024
point query without impacting each other or your Web Service quota).

> There appears to be no geodesic/great circle option.

All point to point sample lines are geodesics.

> From the documentation it sounds like subsampling just chooses
> discreet points along the route. It would be nice if it returned the
> highest elevation along the sub-segment. I need to know the peak
> elevations along a route, but the subsamples may land on either side
> of a peak.

Our architecture can not easily support this I'm afraid.

Many thanks,

Thor.

Marcelo

unread,
Mar 27, 2010, 4:50:44 AM3/27/10
to Google Maps JavaScript API v3
Dann, Thor,

I've been trying to use this great new service, but I think I got
blocked too soon.

I want to create an elevation tileset that fills the screen on my
Nexus One, at 800x480 pixels, so that would be a total of
380,000 points, divided by 25,000 a day, about 15.36 days to complete.

I started with a batch of 8000 points, sending one query of one point
every 2 seconds, and I got blocked after about 250 points.

Do I need to go even slower?

Marcelo

unread,
Mar 27, 2010, 6:09:52 AM3/27/10
to Google Maps JavaScript API v3
On Mar 27, 9:50 am, Marcelo <marcelo...@hotmail.com> wrote:
>
> Do I need to go even slower?

hhmmm... forget it. It's working as expected today.
I think there was some error in my original pixel to latlon
calculation, so I was sending stupid values, which would indicate that
the service also has a "stupidity limit". Very cool! *LOL*

Ben Appleton

unread,
Mar 27, 2010, 6:22:36 AM3/27/10
to google-map...@googlegroups.com

Hi Marcelo,

Google has several automated systems to detect and prevent scraping - I suspect your regular requests have run afoul of these.  The maximum request rate is not a promise that you can query at that rate indefinitely, rather to help diagnose why you've been blocked.

For your particular case, consider the following alternatives:
1 - use the tiles that we've already generated from the same elevation data.
2 - request more than one point per query.
3 - subsample your region.  Our elevation data may have a lower resolution than your target, in which case you would be making redundant requests.

Cheers
Ben

--

You received this message because you are subscribed to the Google Groups "Google Maps JavaScript AP...

Marcelo

unread,
Mar 27, 2010, 11:34:26 AM3/27/10
to Google Maps JavaScript API v3
Hi Ben,

Thanks for your reply.

>
> Google has several automated systems to detect and prevent scraping - I
> suspect your regular requests have run afoul of these.  The maximum request
> rate is not a promise that you can query at that rate indefinitely, rather
> to help diagnose why you've been blocked.


Yes, well, I have just got blocked again, after only 4000 queries at 1
second intervals.

Thanks for the suggestions, but:

> 1 - use the tiles that we've already generated from the same elevation data.

That's no fun. I was hoping to make my own cool tiles. :)


> 2 - request more than one point per query.

The documentation indicates that queries with multiple points may
return less accurate results.


> 3 - subsample your region.  Our elevation data may have a lower resolution
> than your target, in which case you would be making redundant requests.

I don't have a target. I was just having some weekend fun and hoping
to add a nice looking demo to my site.
It was only another "experiment" I wanted to make, and based on the
docs, I thought that I was welcome to grab 25,000 results per day, but
I don't want to upset Google, so I guess I'll forget about it.

Cheers,

--
Marcelo - http://maps.forum.nu
--

>
> Cheers
> Ben


>
> On 27 Mar 2010 19:50, "Marcelo" <marcelo...@hotmail.com> wrote:
>
> Dann, Thor,
>
> I've been trying to use this great new service, but I think I got
> blocked too soon.
>
> I want to create an elevation tileset that fills the screen on my
> Nexus One, at 800x480 pixels, so that would be a total of
> 380,000 points, divided by 25,000 a day, about 15.36 days to complete.
>
> I started with a batch of 8000 points, sending one query of one point
> every 2 seconds, and I got blocked after about 250 points.
>
> Do I need to go even slower?
>
> --

> Marcelo -http://maps.forum.nu

Thor (Google Employee)

unread,
Mar 28, 2010, 11:24:59 AM3/28/10
to Google Maps JavaScript API v3
On Mar 28, 2:34 am, Marcelo <marcelo...@hotmail.com> wrote:
>
> > 2 - request more than one point per query.
>
> The documentation indicates that queries with multiple points may
> return less accurate results.

The degree to which the results may be less accurate is a function of
the distance between them. This is not normally a problem because as
the distance across which you are sampling increases the difference in
elevation is likely to also increase, so the accuracy you need per
sample drops. ie. If you're measuring the difference in elevation
between Denver and San Francisco you probably don't need sub meter
accuracy. But along a single street you probably do.

So you should find the accuracy is appropriate to the scale of region
you wish to plot, and that it does not suddenly drop off when you go
from one sample to two. If in doubt, just bundling up your requests
into ten nearby points at a time should still give you a high accuracy
while cutting the number of requests you need to make by an order of
magnitude.

HTH,

Thor.

Thor (Google Employee)

unread,
Mar 28, 2010, 11:37:34 AM3/28/10
to Google Maps JavaScript API v3
PS. We do limit the number of requests to 2,500 per day on top of the
25,000 point limit. This is consistent with the geocoding limit, and
is intended to encourage applications to request multiple samples per
request rather than 1 per point where possible. However I see that was
not documented. I'll get that fixed.

Marcelo

unread,
Mar 28, 2010, 12:24:52 PM3/28/10
to Google Maps JavaScript API v3
On Mar 28, 5:37 pm, "Thor (Google Employee)" <thor.mitch...@gmail.com>
wrote:

Thor,

Aha! That explains why I got blocked "so soon". :)
When you fix the docs, note the sentence that says:

"Use of the Google Elevation Web Service is subject to a query limit
of 25,000 elevation location requests per day. Note that on any given
query, you may request elevation data for multiple locations, which
count as separate queries."

Two things in that sentence:
First, it says "25,000 requests per day", which is incorrect.
Second, It says "requests for multiple locations count as separate
queries", which gave me the impression that if I request elevation
along a route of 10 points it counts as 10 requests.

Thanks!

Marcelo.

ibgpsn

unread,
Mar 29, 2010, 6:46:44 PM3/29/10
to Google Maps JavaScript API v3
I like the new service. What is the source of the elevation data? It
doesn't exactly
match the USGS elevation web service for 10m DEM, 30m DEM, or SRTM
30m.
At the few US spots I sampled, it seems closest to the 10m DEM data.
(I had been told GoogleEarth used SRTM for its elevation data.)

a UNITS option might be nice to select "feet" vs meters

thanks

tom d

bratliff

unread,
Apr 1, 2010, 2:10:29 PM4/1/10
to Google Maps JavaScript API v3
On Mar 28, 4:24 pm, Marcelo <marcelo...@hotmail.com> wrote:
> Aha! That explains why I got blocked "so soon". :)
> When you fix the docs, note the sentence that says:
>
> "Use of the Google Elevation Web Service is subject to a query limit
> of 25,000 elevation location requests per day. Note that on any given
> query, you may request elevation data for multiple locations, which
> count as separate queries."
>
> Two things in that sentence:
> First, it says "25,000 requests per day", which is incorrect.
> Second, It says "requests for multiple locations count as separate
> queries", which gave me the impression that if I request elevation
> along a route of 10 points it counts as 10 requests.

Other sources:

http://dds.cr.usgs.gov/srtm/
http://seamless.usgs.gov/

Reply all
Reply to author
Forward
0 new messages