Skip navigation
All Places > Applications Prototype Lab > Blog > 2010 > October

3D Terrain Mapping in a Browser


Is it really possible to view 3D terrain in a browser? Yes, with the aid of Silverlight, Esri’s Silverlight SDK and Balder, an open source 3D graphics engine. The sample web application pictured above is running live here and the source code can be downloaded from here.

 How to use?


After the web application has loaded, pan and zoom to an area of interest and then click the “Switch to 3D View” button. The application will pause slightly as it downloads a new map image and the underlying elevation data. After the map has transformed to a 3D display you can use the left mouse button to tilt and/or pivot the extruded terrain. Click “Switch to 2D” to return to the original 2D map display. Try repeating the steps above for your favorite places around the world (land or sea)!


A quick method to zoom to a specific extent is to hold the shift key down while dragging with the left mouse button. This will render a red rectangle on the screen.  When the left mouse button is released the map will zoom to the extent defined by the rectangle.


To assist, here is a short video demonstration on YouTube.

 Where does the data come from?


The imagery, street and topography base maps are sourced directly from Esri’s ArcGIS Online portal for geospatial services, data, applications and communities.


Elevation data is sourced from SRTM, GTOPO30 and GEBCO bathymetry via a new service published yesterday. The service was developed as a custom Server Object Extension for ArcGIS Server.  For more information on this service and how it was implemented please visit this blog post.

 Contributed by Richie C.

Elevation Server Object Extension

A few years ago we published a sample Geoprocessing Service to create elevation profile charts on the server and send back a URL to the chart image.  This sample service has been very popular and some of the core components have been implemented in various production environments.  Some common requests have been to expand this functionality to return the elevation values so additional work could be done on the client applications, and the ability to easily use this functionality against users own elevation data sources.

In response to these many requests, we’ve just shared an updated version of this functionality as a 10.0 REST Server Object Extension (here) on the ArcObjects Resource Center Gallery.  The REST SOE is implemented in .NET and Java and includes samples for the various Web APIs and ArcGIS Explorer 1500.  In addition to the creation of profile charts on the server via the GetElevationProfile operator (now updated to better handle bathymetry), the Elevations SOE also exposes three new operators: GetElevationAtLonLat, GetElevations and GetElevaitonData. These new operators return elevation values to the client applications.

The Elevations SOE is simple to deploy and can be easily attached to any Map Service that contains a single band raster elevation layer by enabling the ‘Get Elevations’ capability when creating the Map Service.  The functionality can be inspected via the ‘Supported Extensions’ entry at the bottom of the Services Directory page of the Map Service.   Accessing the Elevations SOE functionality is done via these newly exposed REST URLs, and it will be up to each developer to properly call and make use of the results.  The provided samples (available here) make use of a public instance of the Elevations SOE.  This instance of the Elevations SOE is attached to a Map Service that includes a sample global elevation dataset that combines three data sources: SRTM, GTOPO30 and GEBCO bathymetry.Caveat: The Elevations SOE is just a sample implementation, and should NOT be used in production environments and/or mission critical situations.  This sample implementation doesn’t attempt to handle every possible scenario and there are still many times when this functionality needs to be customized and deployed in production environments by our professional services team.3/20/2013 - 10.1 Update!
An updated 10.1 version of the Elevations SOE can now be found in this group.  It is important to review the associated readme for details on breaking changes. users can request to become members of this group and share their apps and services based on the Elevations SOE.Contributed by John G.

Filter Blog

By date: By tag: