如何计算谷歌地图V3中两个标记之间的距离?(类似于distanceFrom
函数inV2。)
谢谢..
发布于 2009-10-01 09:07:36
如果你想自己计算,那么你可以使用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
};
发布于 2011-02-02 20:59:31
实际上,在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);
发布于 2015-04-07 20:04:38
使用2点的GPS纬度/经度的示例。
var latitude1 = 39.46;
var longitude1 = -0.36;
var latitude2 = 40.40;
var longitude2 = -3.68;
var distance = google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(latitude1, longitude1), new google.maps.LatLng(latitude2, longitude2));
https://stackoverflow.com/questions/1502590
复制相似问题