undocumented google maps API リファレンス

引き続き google maps API でちょっと外に出たことをやろうとする日々。今回やりたかったのは、指定した座標を地図の真中でなくて、右上のほうに持っていくこと。

地図の中央座標は緯度経度で指定しないといけないけれど、もって行きたいところはピクセル数でしか表現できない。だから1ピクセルが緯度経度でどれぐらいかを知る必要があるのだけれどAPIにそんなのはない。けど、どこかで変換しているのは確実なので探したらすぐ見つかった。

getLowestZoomLevel()と同じ map.spec にあるメンバ。

map.spec.getBitmapCoordinate(lat, lon, zoomLevel)
指定した座標 (lat, lon) のピクセルでのオフセットがGSizeでかえってくる。オフセットの原点は不明。非常に大きな数字が返ってくるのでDOMエレメントの右上でないのは確かです。
map.spec.getLatLng(x, y, zoomLevel)
getBitmapCoordinate()の逆。DOMエレメント上のピクセル位置 (x, y) を渡すと緯度経度が返ってくる。地図系による差の吸収もこのへんでやってくれているらしい。

getLowestZoomLevel()はソースを読めば、zoomをだんだん増やしていって指定された範囲が収まったときにループを抜けるという原始的方法。範囲にnullとかNaNとか入っていると固まるのはループから抜けられなくなっていたからだな….

多分まだつづく。


About this entry