Map3D/MapGuide API中如何计算两点间的距离?

简介:


下面代码演示了Map 3D API中如何计算两点间的地球大圆距离和欧几里得距离,直接看代码:


[CommandMethod("ComputeDistance")]
public void ComputeDistance()
{
   double x1 = -87.7104750022991;
   double y1 = 43.7017449116101;
   double x2 = -87.703061972587;
   double y2 = 43.7016702994388;
   Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
   //Get coordinate system of current map
   AcMapMap currentMap = AcMapMap.GetCurrentMap();
   string srsWkt = currentMap.GetMapSRS();
   //ed.WriteMessage("srs = " + srsWkt + "\n");
   MgCoordinateSystemFactory coordSysFactory = new MgCoordinateSystemFactory();
   MgCoordinateSystem coordSys = coordSysFactory.Create(srsWkt);
   //compute gread circle distance
   double distance = coordSys.MeasureGreatCircleDistance(x1, y1, x2, y2);
   distance = coordSys.ConvertCoordinateSystemUnitsToMeters(distance);
   ed.WriteMessage("gread circle dist = " + distance.ToString() + "\n");
   //compute Euclidean distance
   distance = coordSys.MeasureEuclideanDistance(x1, y1, x2, y2);
   distance = coordSys.ConvertCoordinateSystemUnitsToMeters(distance);
   ed.WriteMessage("Euclidean distance = " + distance.ToString() + "\n");
   //Another method, compute the distance from Newyork to Boston
   MgCoordinateSystemMeasure coordSysMeasure = coordSys.GetMeasure();
   double dist = coordSysMeasure.GetDistance(-74.806394, 40.714169, -71.061342, 42.355892);
   dist = coordSys.ConvertCoordinateSystemUnitsToMeters(dist);
   ed.WriteMessage(" distance = " + dist.ToString() + "\n");
}

 核心代码在MapGuide中也适用。

作者: 峻祁连
邮箱:junqilian@163.com 
出处: http://junqilian.cnblogs.com 
转载请保留此信息。




本文转自峻祁连. Moving to Cloud/Mobile博客园博客,原文链接:http://www.cnblogs.com/junqilian/archive/2011/08/29/2158329.html ,如需转载请自行联系原作者
相关文章
|
机器学习/深度学习 定位技术 容器
百度地图高级开发:map.getDistance计算多点之间的距离并输入矩阵
百度地图高级开发:map.getDistance计算多点之间的距离并输入矩阵
311 0
|
10月前
|
分布式计算 JavaScript 前端开发
JS中数组22种常用API总结,slice、splice、map、reduce、shift、filter、indexOf......
JS中数组22种常用API总结,slice、splice、map、reduce、shift、filter、indexOf......
115 0
|
7月前
|
存储 API
Map常用API
Map常用API
49 2
|
4月前
|
API
时间操作[计算时间差]免费API接口教程-{"code":200,"msg":"0天11时6分40秒"}
此API用于获取两个时间戳之间的格式化时间差。支持POST和GET请求,需提供用户ID、用户KEY及两个时间戳作为参数。返回状态码及时间差或错误信息。示例URL:https://cn.apihz.cn/api/time/zjgapi.php?id=88888888&key=88888888&time1=1710925735&time2=1710927735。建议使用个人ID与KEY以避免调用限制。
|
7月前
|
存储 算法 Java
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
|
8月前
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
8月前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
151 1
|
8月前
|
JSON JavaScript API
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
223 0
|
算法 Java API
浅谈日出日落的计算方法以及替代工具 - 日出日落 API
如果你想知道精确的日落日出时间,又或者你想设计一个日出日落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是日出日落的计算方法以及替代工具 - 日出日落 API 。
1056 0
|
10月前
|
存储 算法 Java
【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque
【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque
136 0

热门文章

最新文章