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计算多点之间的距离并输入矩阵
575 0
|
分布式计算 JavaScript 前端开发
JS中数组22种常用API总结,slice、splice、map、reduce、shift、filter、indexOf......
JS中数组22种常用API总结,slice、splice、map、reduce、shift、filter、indexOf......
603 0
|
存储 API
Map常用API
Map常用API
207 2
|
SQL 存储 大数据
Dataphin V5.0:支持创建异步调用API,实现慢 SQL 复杂计算的直连消费
本文介绍了数据服务产品中异步调用的应用场景与优势,包括大数据引擎查询、复杂SQL及大规模数据下载等场景,解决了同步调用可能导致的资源浪费和性能问题。通过创建异步API、测试发布以及权限申请等功能,实现高效稳定的服务提供。以电商订单查询为例,展示了如何利用异步调用提升系统性能与用户体验。
484 9
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
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以避免调用限制。
395 8
|
算法 Java API
浅谈日出日落的计算方法以及替代工具 - 日出日落 API
如果你想知道精确的日落日出时间,又或者你想设计一个日出日落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是日出日落的计算方法以及替代工具 - 日出日落 API 。
2773 0
|
存储 算法 Java
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
733 1