我在我的应用程序中使用 Google Maps API(带有 MVC 的 ASP.NET)。
我有一个坐标数组(每个坐标都由纬度和经度组成),我们称它为“起点”(可以是多边形、折线或标记)和另一个坐标数组,我们称之为“目的地”(可以是多边形、折线或标记)。
我想计算“起点”和“终点”之间的最短距离。我该怎么做?
最佳答案
嗯,从数学的 Angular 来看:
你的问题是找到空间中的一个点和矢量线或平面之间的最短距离。
因此,如果您的坐标位于 [a1,a2,a3]
和 [b1,b2,b3]
之类的数组中,则这两个点之间的距离在 3 维中空间就像具有三个元素的勾股定理:
sqrt[(a1-b1)²+(a2-b2)²+(a3-b3)²]=d(a,b)
。
我知道这没有考虑地球的曲率,但对于“短”距离,这并不重要。
如果您了解一些数学知识,那么维基百科文章也可能对您有所帮助。 http://en.wikipedia.org/wiki/Euclidean_distance#Three_dimensions
编辑 12.08.14:
考虑到地球的曲率,你可以做一个简单的计算:
(1) 你已经知道地球的距离
(2) 你知道大约。地球半径
已知起点 (A) 和目的地 (B) 后,您现在可以构建一个以地球中心 (C) 为中心的三 Angular 形。您现在执行此操作以计算 (C) 处的 Angular (sin/cos/tan)。使用该 Angular ,您现在可以获得地球的长度(包括曲率)。
([地球边界]/360°)*[(C) 处的 Angular ] = 从 (A) 到 (B) 在地球曲率上的距离。
关于javascript - 如何使用 JavaScript 获取 Google map 上两个形状之间的最短距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153284/