Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using ISurface.GetElevation on a Raster to get the elevation for a specific lat/lon.

I have to do this for a huge set of datapoints.

Currently i'm testing with a dataset of 10.000 items which takes Esri over 30 seconds but is executed by GlobalMapper within half a second.

Is there any other way to quickly retrieve the elevation (bi. interpolated if needed) using Esri ArcObjects function ?

I'm working in C#

Thank you for your help!

share|improve this question
I also tried using IFunctionalRaster2.get_Z(x,y) which is quicker (4x) but still much slower then the GlobalMapper implementation. – invalidusername Mar 16 '12 at 14:04

If it is one raster, I usually use IIdentify2:Identify method, to get the cell value, and get the height. ISurface.GetElevation gives you the interpolated value, and if your cell size is large, then there might be a large difference between the two. Otherwise, It usually is good enough.

share|improve this answer
Identify works but is really slow and i need the interpolated value, so i'm using IFunctionalRaster2.get_Z() and ISurface.GetElevation() now. They are quicker, but nothing compared to the speed i get with my .Net wrapped GlobalMapper COM library. 10.000 items using Identify takes 30secs were GlobalMapper does this in half a second! I'm looking for a speedy way to get interpolated Elevation that matches the speed of GlobalMapper. – invalidusername Mar 16 '12 at 17:08
Forget to mention that i'm also looking at multiple rasters. Not just one. – invalidusername Mar 16 '12 at 17:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.