2006-12-27
雨のち晴れ

Google Maps 表示範囲の緯度経度を知るには

yuriko による 00:41:36 の投稿
カテゴリー: WordPressハック

Googlemap プラグインの調整完了では、地図の表示範囲にあたる緯度経度として、「中心から ±0.06 の経度ないし、±0.04 の緯度」というアドホックな方法としています。これは当サイトの地図ページ (縦横548px) において実測したものです;-) でも、それでは地図の大きさを変えたり、緯度が大きく違う場合に正しい範囲となりません。

で、Google Maps API では、きちんと対応されていて、GMAP2 クラスの getBounds() クラスを使えば、表示している範囲の緯度経度を GLatLngBounds オブジェクトで得られます。これでバンバンザイ、かと思いきや、これは JavaScript なので、PHP で書かれているプラグインからは直接は利用できません!!

現在、プラグインが緯度経度パラメーター付きで呼ばれたとき、XHTML の中に表示する地点を JavaScript として書き込んでしまっています。getBounds() 関数の返値を使うならば、プラグインが呼ばれた時点では XHTML にはマーカー位置を埋め込まず、地図表示時点で GDownloadURL() 関数を呼び出して、地点リストを JSON か何かの形式で読み込ませて、マーカーを表示させればよさそうです。

こうしてしまえば、地図をスクロールさせたり拡大率を変えたときも、表示するマーカーの位置を動的に変更できる気もしますね。もはやプラグインの大幅改造になりますから、もはや Plug ‘n’ Play Google Map Plugin の改造と言えなくなってきた気が……。