如何計算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中文網其他相關文章!