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 |