计算谷歌地图V3中两点之间的距离

如何计算Google maps V3中两个标记之间的距离? (类似于V2中的distanceFrom函数。)

谢谢..


如果你想自己计算一下,那么你可以使用Haversine公式:

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

var getDistance = function(p1, p2) {
  var R = 6378137; // Earth’s mean radius in meter
  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; // returns the distance in meter
};

实际上似乎在GMap3中有一种方法。 这是google.maps.geometry.spherical命名空间的静态方法。

它将两个LatLng对象作为参数,并将使用6378137米的默认地球半径,但如果需要,默认半径可以用自定义值覆盖。

确保你包含:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script>

在你的头部。

电话会是:

google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);

在新的V3几何库中有computeDistanceBetween(lat,lng)

链接地址: http://www.djcxy.com/p/81495.html

上一篇: Calculate distance between two points in google maps V3

下一篇: Is it OK? clearOverlays() in GMap API V2 to Google Maps API V3?