Select to view content in your preferred language

Best way to get data from World Topo Map service

3128
14
Jump to solution
12-19-2013 07:23 AM
DougCollins
Regular Contributor
I am trying to use the Elevation Layer (either m or ft) from the World Topo Map service (http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer) to get elevation values.  However, this is a Raster layer, and I don't see any way in the JavaScript API to get or query the values.  Maybe I have missed something, and sure would like to know about it.

Everything I have seen so far uses Feature Layers to query or retrieve data.  This is easy to do in ArcMap, but I can't see how to do it using the JavaScript API.

Does anyone have information that would help with this problem?

Thanks for your time!
Charlie
0 Kudos
14 Replies
TammyBearly
Deactivated User
Thanks for the reply.

I tried both of the globeservers and cannot get them to work.

How do the credits work and how much is the service?

The reason for the change seems quite clear to me- the free ride is over. Just like what happened with routing at the end of last year, ESRI wants to now lock you into paying for these services using ArcGIS Online accounts & credits.

ESRI still provides two elevation globeserver REST endpoints but probably not at the resolution you want:
http://services.arcgisonline.com/arcgis/rest/services/Elevation

Looks like you'll either have to a.) pay for credits & use ESRI's previously free service, b.) load up and serve your own elevation data, or c.) hope that the USGS or other fed agency is already serving up elevation data as a REST service someplace.
0 Kudos
JohnGravois
Deactivated User
tammy,
apparently the appropriate replacement service can actually be found here.

its my understanding that even though the service requires an ArcGIS Online subscription (which is now included with the purchase of ArcGIS Desktop automatically) it doesn't actually burn credits.

as a developer, what this means to you is that you'll have to authenticate on behalf of end users to access the content if you don't want anyone to have to sign in.  this would entail setting up our new resource-proxy and either registering your app or storing hardcoded user credentials and routing traffic to the elevation service through your proxy.

this is similar to what you'd do if you were interested in using other Esri services like traffic, batch geocoding or routing.
0 Kudos
TammyBearly
Deactivated User
Hi John,

If I get the proxy service set up correctly, would I use the same identify task parameters. I will use the new url, http://elevation.arcgis.com/arcgis/rest/services/WorldElevation/Terrain/ImageServer. But should the field still be Pixel value?

Thanks,
Tammy

tammy,
apparently the appropriate replacement service can actually be found here.

its my understanding that even though the service requires an ArcGIS Online subscription (which is now included with the purchase of ArcGIS Desktop automatically) it doesn't actually burn credits.

as a developer, what this means to you is that you'll have to authenticate on behalf of end users to access the content if you don't want anyone to have to sign in.  this would entail setting up our new resource-proxy and either registering your app or storing hardcoded user credentials and routing traffic to the elevation service through your proxy.

this is similar to what you'd do if you were interested in using other Esri services like traffic, batch geocoding or routing.
0 Kudos
JohnGravois
Deactivated User
actually, it looks like the identifyParameters for that image service are a fair amount different than what we see for map services.

i took the time to write up a sample which uses esriRequest to gather the info you're looking for.  you'll have to sign in when running it in jsfiddle, but the same code could utilize a proxy on your own web server.

let me know if i can be of any more help.
0 Kudos
TammyBearly
Deactivated User
Thanks that looks like just what I need!

actually, it looks like the identifyParameters for that image service are a fair amount different than what we see for map services.

i took the time to write up a sample which uses esriRequest to gather the info you're looking for.  you'll have to sign in when running it in jsfiddle, but the same code could utilize a proxy on your own web server.

let me know if i can be of any more help.
0 Kudos