2011年7月26日火曜日

Google Maps JavaScript API V3で、2点間の距離を取る方法


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のインスタンスです。