Google Maps JavaScript API V3 をいじっていて、2点間の距離が取りたくなった。ルート計算ではない。
{こんなもん簡単だろ}
と思って、マニュアルページに行ってみたが、それっぽいものが全然見つからない。
ちょっと調べてみるとV2の時はGLatLngクラスに、距離計算メソッドあったらしいが、V3のLatLngクラスには、そんなものありゃしない。くそー。でも、
{ないわけないだろ}
と真面目に調べたらあったのでメモっときます。
Google Maps JavaScript API V3には、追加のライブラリがあって2点間の距離を取るには、Geometry Libraryなるものが必要。
でこいつを使うには、通常
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>のようにGoogleのAPIをリンクしているところで
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>こうやって、使用ライブラリを指定してやらねばならない。
参考:
・ 追加ライブラリの使い方
・ Geometry Libraryの使い方
あとは、
var distance = google.maps.geometry.spherical.computeDistanceBetween(posA, posB);で一発。posA, posBはLatLngのインスタンスです。