ホームページ > ウェブフロントエンド > jsチュートリアル > Google マップ V3 で 2 つのマーカー間の距離を計算する方法

Google マップ V3 で 2 つのマーカー間の距離を計算する方法

Barbara Streisand
リリース: 2024-11-28 14:54:12
オリジナル
914 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート