如何计算 Google 地图 V3 中标记之间的距离
计算地图上两点之间的距离是一项常见任务,Google Maps V3 提供了一个全面的 API 来执行此操作。最直接的方法之一是使用半正弦公式,它考虑地球曲率来计算两个地理坐标之间的距离。
半正弦公式
半正矢公式可以用 JavaScript 实现,如下所示:
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 };
示例用法
要使用上述公式计算 Google 地图上两个标记之间的距离,只需将标记的坐标作为参数传递给 getDistance 函数即可。例如:
var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(51.508742, -0.120850), map: map }); var marker2 = new google.maps.Marker({ position: new google.maps.LatLng(40.712784, -74.005941), map: map }); var distance = getDistance(marker1.getPosition(), marker2.getPosition());
距离变量现在将包含两个标记之间的距离(以米为单位)。
以上是如何计算 Google 地图 V3 中两个标记之间的距离?的详细内容。更多信息请关注PHP中文网其他相关文章!