首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在任何情况下,如何求出两个经度点之间的距离?

在任何情况下,如何求出两个经度点之间的距离?
EN

Stack Overflow用户
提问于 2019-11-26 16:13:16
回答 1查看 745关注 0票数 1

我是latitude-longitude的新手,我尝试用给定的值计算两点之间的距离。我想要几英里的距离。我在Anylogic网站上找到了一个方法,如下所示

代码语言:javascript
复制
default double getDistance(double startLat,
                           double startLon,
                           double endLat,
                           double endLon)

按两个指定点之间的路由计算距离。返回:两个指定点之间的距离,以米为单位。

(资料来源:https://help.anylogic.com/index.jsp?topic=%2Fcom.anylogic.help%2Fhtml%2Fjavadoc%2Fcom%2Fanylogic%2Fengine%2Fgis%2FIGISRouteProvider.html)

但是,当我用lat-long运行两组点时,

代码语言:javascript
复制
Point 1:
latitude:41.40174, longitude: -72.0201
Point 2:
latitude:45.332, longitude:-73.2215

这给了我一段距离的4.1098062654025815米,在任何逻辑上;哪一个是wrong.Could,请你帮助我洞察我可能做错了什么?谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-11-27 11:17:03

出什么事了

您目前正在使用来自实用程序的标准距离函数,它使用输入作为笛卡尔坐标,而不是作为地理纬度和逻辑:

代码语言:javascript
复制
public static final double getDistance(double x1,double y1,double x2,double y2)

Returns the distance between two given points (x1, y1) and (x2, y2)
Parameters:x1 - the x coordinate of the first pointy1 - the y coordinate of the first pointx2 - the x coordinate of the second pointy2 - the y coordinate of the second point
Returns:the distance between points

如何修复它

为了计算纬度和经度的地理距离,您必须访问ShapeGISMap对象附带的函数。

代码语言:javascript
复制
double  getDistanceByRoute(double latFrom, double lonFrom, double latTo, double lonTo)
Calculates length of route from one point to another.
代码语言:javascript
复制
double  getDistance(double latFrom, double lonFrom, double latTo, double lonTo)
Returns distance, in meters, between 2 given points

您可以通过从SpaceMarkup调色板(这里的实例名为map)添加一个GIS来访问它们,并引用它:

代码语言:javascript
复制
map.getDistanceByRoute(41.40174,-72.0201,45.332,-73.2215);

附加提示

通过使用(键入函数名的第一部分,然后是CTRL +空格栏)并查看JavaDoc,始终可以检查上下文中是否确实使用了正确的函数:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59055106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档