javascript - 获取两点之间的最短距离

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

我需要计算两点之间的最短距离。我正在使用下面的函数来实现这一点。

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 .

最佳答案

球面距离是 a - b 的直线距离(当鸟飞行时)

您发布的 Google map 链接显示一条长 45 公里的街道。

编辑:要获得最短街道距离,您需要查看谷歌地图方向 API 而不是球形方法: https://developers.google.com/maps/documentation/directions/intro

关于javascript - 获取两点之间的最短距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44649630/

相关文章:

javascript - 如何访问未压缩到 nw.js 中的 nw 包中的本地资源

javascript - 如何通过 parent 高度获得纵横比?

javascript - 两个模型: Post and Tag, 如何使用Mongoose建立多对多关系?

javascript - AngularJS 范围没有注意到变化

javascript - 如何识别 map 上的谷歌地图标记

r - 使用 R 中的工具提示绘制县级数据

javascript - 如何按坐标或标题选择标记?

javascript - 保持 div 以视口(viewport)为中心

html - Angular Material : Force footer to bottom

javascript - 对比编辑后$resource结果修改情况