2点間の距離 (GoogleMaps API3用に)

ブログ | 2010/8/17 18:46
api2だと、polylineの長さはgetLength()で取れるのだけれど、api3で見当たらない。
なので、以前PHPで書いたものから、Javascriptへ移植。1000km離れて1mも違わないから、きっとそんなに間違ってないのではないかと思われます。

function getPointsDistance(a,b){
 var pi = Math.PI;
 var lat1 = a.lat()*pi/180;
 var lng1 = a.lng()*pi/180;
 var lat2 = b.lat()*pi/180;
 var lng2 = b.lng()*pi/180;
 var deg = Math.sin(lat1)*Math.sin(lat2) + Math.cos(lat1)*Math.cos(lat2)*Math.cos(lng2-lng1);
 return 6378140*(Math.atan2(-deg,Math.sqrt(-deg*deg+1))+pi/2);
}

//確認
alert(getPointsDistance(new google.maps.LatLng(35.186225,136.898961),new google.maps.LatLng(43.133061,142.822265)));

これを使えばpolylineの距離も求められるでしょう、きっと。

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close