Google Static Maps API で地図検索
真夜中ナビ 深夜営業のお店探し モバイルにGPS検索を導入しました。
GPS検索と合わせて表示する地図には、先日正式にリリースされたGoogle Static Maps APIを採用しました。理由はケータイで使える無料地図APIがそれしかないからです…。
【実装方法】
1.GPSでユーザーの位置情報を取得
2. ユーザーの位置を中央にした地図を表示
3.地図の四隅の緯経度をもとに表示領域内のデータを検索
ありふれた3分クッキング(コーディング?)だと思ってました。
が、Google Static Maps API をなめてました。Google Maps API (PC)では、地図の四隅の緯経度が簡単に取得できるのですが、Google Static Maps API は(現段階)それができないみたいです。というか、よくよく考えると、ただ地図画像を取得・表示するだけのAPIなので、付加情報がなくて当然なのですが、、、。
確かなことは表示の際に地図サイズをピクセル指定するので、ズームレベル13のときには1pxが緯度で〜度、経度で〜度に相当するみたいだから……といったことを自前変換すれば良さそう。でも(大変そうで)ちょっとやってられないなぁと(と書いている今、意外と簡単な気がしてきた 笑 )
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
【追記】
Google Map API(Google Static Maps APIも同じ)の 1px を 緯度, 経度に換算する割合を調べました。
真夜中ナビモバイルのGPSサーチもこの値を用いて画面領域に応じた結果を取得するよう改良しました。
今のところ、表示領域内にうまくおさまっていることを確認しています。(Google のマーカーが大きいのでマーカーがはみ出ることはありますが…)
ズームレベル | 緯度 | 経度 |
---|---|---|
4 | 0.07102985701593262 | 0.08789062499999996 |
5 | 0.035653329851709825 | 0.0439453125 |
6 | 0.01783960605682246 | 0.02197265625 |
7 | 0.008921901503471562 | 0.010986328125 |
8 | 0.004461212666920833 | 0.0054931640625 |
9 | 0.0022307014445592088 | 0.00274658203125 |
10 | 0.0011153548138332426 | 0.001373291015625 |
11 | 0.0005576779183487624 | 0.0006866455078125 |
12 | 0.0002788380483197628 | 0.00034332275390625 |
13 | 0.00013941927584685488 | 0.000171661376953125 |
14 | 0.00006970963892225513 | 0.0000858306884765625 |
15 | 0.000034854804355024524 | 0.00004291534423828125 |
16 | 0.000017427406000880553 | 0.000021457672119140625 |
17 | 0.000008713703002420914 | 0.000010728836059570312 |
18 | 0.00000435685150142362 | 0.000005364418029785156 |
19 | 0.000002178425750720692 | 0.000002682209014892578 |
※ズームレベル3以下は実用性が薄いため省略
※調査方法:Google Map API のピクセル幅と緯度・経度の関係を見てください。
※たとえば、地図のズームレベルが14で、表示領域の横幅が 200px なら 経度に換算すると 200 * 0.0000858306884765625 度となります。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
で、ズームレベル13のときには、中心から800m四方のデータを検索すれば、まぁ、表示領域からはみ出ることはないか、という恥ずかしい実装で切り抜けることに!(プログラムに取り組む時間があれば変えようと思います:修正済)
【 PR 】
先日リリースした真夜中ナビ × MPAD 「おしゃれで楽しい手づくりのお店」- 店舗の新築・リフォームの新しいかたち -(PC専用)とあわせて新サービスを体験いただけると幸いです。
【ボケ】
(ドラゴンボールを探す)ドラゴンレーダーのディスプレイは確か円形をしていたハズですが、円形で位置検索って矩形に比べると遥かに難しいなぁ