【发布时间】:2017-06-20 09:49:27
【问题描述】:
我需要计算两点之间的最短距离。我正在使用下面的函数来实现这一点。
var p1 = new google.maps.LatLng(6.71532762,80.06215197);
var p2 = new google.maps.LatLng(6.93234287,79.84870747);
var distance = document.getElementById('distance');
distance.innerHTML = distance.innerHTML+calcDistance(p1, p2);
//calculates distance between two points in km's
function calcDistance(p1, p2) {
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2);
}
这给出了 33.77 公里 作为距离。但是根据google maps,以上两点之间最短的距离应该是45.0公里。
我怎样才能得到那个值? (45.0 公里)
这里是jsfiddle link。
【问题讨论】:
-
请注意,您调用的方法是“google.maps.geometry.spherical .computeDistanceBetween”,我怀疑这是两点之间的大圆距离(即最短全球距离)。
-
我自己在谷歌地图中测量了距离,结果得到了 ~33.7 公里。编辑:我想你从路上的距离得到了 45 公里。如果您想通过道路测量距离,这不是您正在寻找的功能。 See this link for that
-
计算球面距离!= 通过道路行驶的距离。请说明您需要什么。
标签: javascript angularjs google-maps google-maps-api-3