GoogleMap v3 距離計測方法

GoogleMaps APIメモ

距離を計測するにはgoogle.maps.geometryライブラリを使用する。


var placeA = new google.maps.LatLng(35.786293, 140.072937);
var placeB = new google.maps.LatLng(35.558708, 139.446716);
var placeC = new google.maps.LatLng(35.95989, 138.202515);
// 2点間の距離
var distance1 = google.maps.geometry.spherical.computeDistanceBetween(placeA, placeB);
document.write(distance1 + “メートル”);
// 3点以上の合計距離
var distance2 = google.maps.geometry.spherical.computeLength(new Array(placeA, placeB, placeC));
document.write(distance2 + “メートル”);


■最初に出てたエラー
TypeError: google.maps.geometry is undefined

原因はAPI読込みの時に「libraries=geometry」と明記していなかったため。
<script type=”text/javascript” src=”http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false”>

javascript配列宣言時エラー

PHPだと配列宣言で以下のように後ろの『,』を付けっぱなしでもエラーにならない。
$arr = array(“test1″ , “test2″ , “test3″,);
であれば何かと楽なので意図的に『,』を付けていましたが、
javascriptで検証すると。

①var arr = [“test1″ , “test2″ , “test3″,]; ⇒○
②var arr = new Array(“test1″ , “test2″ , “test3″,); ⇒エラー

理屈はよくわかりませんが②だけエラーとなります。

※ちなみにJSON形式で検証すると

var jso = {
1 : “test1″,
2 : “test2″,
3 : “test3″,
};

・firefox ⇒ ○
・chrome ⇒ ○
・IE(9)⇒ エラー

IEだけエラー。

【結論】
いらないカンマは書かない。(他言語でも習慣づける)