如何根据运输类型计算距离

时间:2012-09-21 08:28:50

标签: google-maps-api-3 google-maps-markers

如何使用谷歌地图API根据交通类型计算两个地方之间的距离?

我需要设计类似谷歌地图本身的东西,设置原点和目的地然后设置运输类型(汽车,步行,公共交通),然后根据它们计算距离。

我的应用程序是一个Web应用程序而不是移动应用程序。

3 个答案:

答案 0 :(得分:1)

如果要计算两个地理坐标之间的距离,则可以使用高速公式。两点之间的距离相同。如果你想根据运输计算距离,我想你必须自己手动完成。

rad = function(x) {return x*Math.PI/180;}

distHaversine = function(p1, p2) {
  var R = 6371; // earth's mean radius in km
  var dLat  = rad(p2.lat() - p1.lat());
  var dLong = rad(p2.lng() - p1.lng());

  var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
          Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) * Math.sin(dLong/2) * Math.sin(dLong/2);
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  var d = R * c;

  return d.toFixed(3);
}

编辑:要根据不同的交通方式显示路径,您可以像下面一样调用网址。我不知道这是不正确的做法。

"http://maps.google.com/maps?saddr=" + currentLatitude+","+currentLongitude+"&daddr="+fixedLatitude+","+fixedLongitude;

答案 1 :(得分:1)

我认为你的意思是“方向”

看一下doc的这一部分:

https://developers.google.com/maps/documentation/directions/#TravelModes

小心,你有Usage Limits

答案 2 :(得分:0)

我使用距离矩阵来解决问题,谢谢大家。