javascript - 如何使用 JavaScript 获取 Google map 上两个形状之间的最短距离?

标签 javascript google-maps google-maps-api-3 maps distance

我在我的应用程序中使用 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/

相关文章:

javascript - 我不能发布到谷歌?

javascript - Ember Controller 模型钩子(Hook)从未被调用

JavaScript innerHTML

javascript - AngularJS - 用圆圈将步行距离添加到 ngMaps

javascript - 主干关系 - 深层嵌套模型/集合

JavaScript 仅检测陆地或水域 Google map

javascript - 鼠标悬停在 Google map 中的 KMLLayer 上的手形光标

android - 如何获取谷歌地图API key

javascript - 谷歌地图 - SVG 标记被切断

api - 谷歌地方 API : Using Multiple Name Parameters in the Places Search