首页 > web前端 > js教程 > 如何计算 Google 地图 V3 中两个标记之间的距离?

如何计算 Google 地图 V3 中两个标记之间的距离?

Barbara Streisand
发布: 2024-11-28 14:54:12
原创
853 人浏览过

How to Calculate the Distance Between Two Markers in Google Maps V3?

如何计算 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板