Google マップ V3 のマーカー間の距離を計算する方法
地図上の 2 点間の距離を計算するのは一般的なタスクであり、Google Maps V3 は、これを行うための包括的な API を提供します。最も簡単な方法の 1 つは、地球の曲率を考慮して 2 つの地理座標間の距離を計算する Haversine 公式を使用することです。
Haversine 公式
ハバーサイン公式は、次のように 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 つのマーカー間の距離がメートル単位で含まれるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3