Get the geodetically correct Rhumb Line distance between two points.
[C#]
///<summary>Get the geodetically correct Rhumb Line distance between two points.</summary> /// ///<param name="fromPoint">An IPoint interface that is the start (or from) location</param> ///<param name="toPoint">An IPoint interface that is the end (or to) location</param> ///<param name="spatialReference">An esriSRGeoCSType enum that is a predefined geographic coordinate system. Example: ESRI.ArcGIS.Geometry.esriSRGeoCSType.esriSRGeoCS_NAD1983</param> /// ///<returns>A System.Double representing true distance</returns> /// ///<remarks></remarks> public System.Double GetDistanceFromTwoPoints(ESRI.ArcGIS.Geometry.IPoint fromPoint, ESRI.ArcGIS.Geometry.IPoint toPoint, ESRI.ArcGIS.Geometry.esriSRGeoCSType spatialReference) { // Define the spatial reference of the rhumb line. ESRI.ArcGIS.Geometry.ISpatialReferenceFactory2 spatialReferenceFactory2 = new ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmentClass(); ESRI.ArcGIS.Geometry.ISpatialReference2 spatialReference2 = (ESRI.ArcGIS.Geometry.ISpatialReference2)spatialReferenceFactory2.CreateSpatialReference((System.Int16)spatialReference); // Initialize the MeasurementTool and define the properties of the line. // These properties include the line type, which is a rhumb line in this case, and the // spatial reference of the line. ESRI.ArcGIS.DefenseSolutions.IMeasurementTool measurementTool = new ESRI.ArcGIS.DefenseSolutions.MeasurementToolClass(); measurementTool.SpecialGeolineType = ESRI.ArcGIS.DefenseSolutions.cjmtkSGType.cjmtkSGTRhumbLine; measurementTool.SpecialSpatialReference = spatialReference2; // Determine the distance and azimuth of the rhumb line based on the start and end point coordinates. measurementTool.ConstructByPoints(fromPoint, toPoint); // Return the Distance. return measurementTool.Distance; }
[Visual Basic .NET]
'''<summary>Get the geodetically correct Rhumb Line distance between two points.</summary> ''' '''<param name="fromPoint">An IPoint interface that is the start (or from) location</param> '''<param name="toPoint">An IPoint interface that is the end (or to) location</param> '''<param name="spatialReference">An esriSRGeoCSType enum that is a predefined geographic coordinate system. Example: ESRI.ArcGIS.Geometry.esriSRGeoCSType.esriSRGeoCS_NAD1983</param> ''' '''<returns>A System.Double representing true distance</returns> ''' '''<remarks></remarks> Public Function GetDistanceFromTwoPoints(ByVal fromPoint As ESRI.ArcGIS.Geometry.IPoint, ByVal toPoint As ESRI.ArcGIS.Geometry.IPoint, ByVal spatialReference As ESRI.ArcGIS.Geometry.esriSRGeoCSType) As System.Double 'Define the spatial reference of the rhumb line. Dim spatialReferenceFactory2 As ESRI.ArcGIS.Geometry.ISpatialReferenceFactory2 = New ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmentClass Dim spatialReference2 As ESRI.ArcGIS.Geometry.ISpatialReference2 = CType(spatialReferenceFactory2.CreateSpatialReference(spatialReference), ESRI.ArcGIS.Geometry.ISpatialReference2) 'Initialize the MeasurementTool and define the properties of the line. 'These properties include the line type, which is a rhumb line in this case, and the 'spatial reference of the line. Dim measurementTool As ESRI.ArcGIS.DefenseSolutions.IMeasurementTool = New ESRI.ArcGIS.DefenseSolutions.MeasurementToolClass measurementTool.SpecialGeolineType = ESRI.ArcGIS.DefenseSolutions.cjmtkSGType.cjmtkSGTRhumbLine measurementTool.SpecialSpatialReference = spatialReference2 'Determine the distance and azimuth of the rhumb line based on the 'start and end point coordinates. measurementTool.ConstructByPoints(fromPoint, toPoint) 'Return the Distance Return measurementTool.Distance End Function