Performing mensuration on an image service
The following code example demonstrates how to measure the height of a building using locations of building bottom and top:
[C#] public static void Measure(IImageServer4 imageServer)
{
//Define building bottom.
IPoint fromPoint=new PointClass();
fromPoint.X= - 117.29944857;
fromPoint.Y=34.15586888;
fromPoint.SpatialReference=imageServer.ServiceInfo.SpatialReference;
//Define building top.
IPoint toPoint=new PointClass();
toPoint.X= - 117.29940048;
toPoint.Y=34.15589815;
toPoint.SpatialReference=imageServer.ServiceInfo.SpatialReference;
//Measure height.
IImageServerMeasureResult result=imageServer.Measure(fromPoint, toPoint, null,
null, esriMensurationOperation.esriMensurationHeightFromBaseAndTop);
Console.WriteLine("{0} +/- {1} {2}", (Double)result.Measurement.GetProperty(
"Height"), (Double)result.Measurement.GetProperty("HeightUncertainty"),
(string)result.Measurement.GetProperty("LinearUnit"));
}
[VB.NET] Public Shared Sub Measure(ByVal imageServer As IImageServer4)
'Define building bottom.
Dim fromPoint As IPoint=New PointClass()
fromPoint.X=-117.29944857
fromPoint.Y=34.15586888
fromPoint.SpatialReference=imageServer.ServiceInfo.SpatialReference
'Define building top.
Dim toPoint As IPoint=New PointClass()
toPoint.X=-117.29940048
toPoint.Y=34.15589815
toPoint.SpatialReference=imageServer.ServiceInfo.SpatialReference
'Measure height.
Dim result As IImageServerMeasureResult=imageServer.Measure(fromPoint, toPoint, Nothing, Nothing, esriMensurationOperation.esriMensurationHeightFromBaseAndTop)
Console.WriteLine("{0} +/- {1} {2}", DirectCast(result.Measurement.GetProperty("Height"), Double), DirectCast(result.Measurement.GetProperty("HeightUncertainty"), Double), DirectCast(result.Measurement.GetProperty("LinearUnit"), String))
End Sub
See Also:
How to make measurements from imagesTo use the code in this topic, reference the following assemblies in your Visual Studio project. In the code files, you will need using (C#) or Imports (VB .NET) directives for the corresponding namespaces (given in parenthesis below if different from the assembly name):
- ESRI.ArcGIS.Carto
- ESRI.ArcGIS.Server
- ESRI.ArcGIS.System (ESRI.ArcGIS.esriSystem)
- ESRI.ArcGIS.Geometry
Development licensing | Deployment licensing |
---|---|
ArcGIS for Desktop Advanced | ArcGIS for Desktop Advanced |
ArcGIS for Desktop Standard | ArcGIS for Desktop Standard |
ArcGIS for Desktop Basic | ArcGIS for Desktop Basic |
Engine Developer Kit | Engine |