计算谷歌地图V3中两点之间的距离
2022-08-29 23:44:52
如何计算谷歌地图V3中两个标记之间的距离?(类似于 V2 中的函数。distanceFrom
谢谢。。
如何计算谷歌地图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命名空间的
静态方法。
它将两个对象作为参数,并将使用6378137米的默认地球半径,尽管如有必要,可以使用自定义值覆盖默认半径。LatLng
确保包括:
<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);