Google マップ V3 でマーカー間の距離を計算する方法
地図上の 2 点間の距離を計算することは一般的なタスクであり、Google Maps V3 は、これを行うための包括的な API を提供します。最も簡単な方法の 1 つは、地球の曲率を考慮して 2 つの地理座標間の距離を計算する Haversine 公式を使用することです。
Haversine 公式
Hasversine 式は 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 マップ上の 2 つのマーカー間の距離を計算するには、単にマーカーの座標を次のように渡します。 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());
距離変数には 2 つのマーカー間の距離がメートル単位で含まれます。
以上がGoogle マップ V3 で 2 つのマーカー間の距離を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。