如何计算 Google 地图 V3 中标记之间的距离
计算地图上两点之间的距离是一项常见任务,Google Maps V3 提供了一个全面的 API 来执行此操作。最直接的方法之一是使用半正弦公式,该公式考虑地球曲率来计算两个地理坐标之间的距离。
半正弦公式
The半正弦公式可以在 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 地图上两个标记之间的距离,只需将标记的坐标作为参数传递给获取距离函数。例如:
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());
距离变量现在将包含两个标记之间的距离(以米为单位)。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3