『Google Map』上で表示されるアイコンが何メートル相当か知りたい!
アンドロイドでマップを表示させ、マップ上をタップする事で
目的のアイコンを選択する処理を検討している。
ときに画面上の選択範囲は、何メートルに相当するのか?
つまり、1ドットは、何メートル四方って話。
グーグルマップは、自由に拡大縮小できるので
そのつど、メートル/ドットは、変化する。
この値が分からないと、正しく選択範囲と
マップ上の範囲が対応しない…。
だが、この辺りの事は、あんまり書いていないらしく
簡単に検索には、引っかかなかった…。(T_T)
ドットとメートルを変換する数値は、どこかにあるはずだ!
との信念の下、探してみた。
そしたら、「mMapView.mConverter.mInverse.native_instance」に
格納されていた。
どうやら千分の一ミリメートルが基準のようだ。
…
ここで一言。
探すの結構大変だった…(^^ゞ
…
は、置いといて…。
所が、メンバーを直接参照できないので
今度は、参照用のメソッドを探さなくてはならない。
…
結局、見つからなかった…。
でも、逆の機能のメソッドは、見つかった。
float pixel = mapView.getProjection().metersToEquatorPixels(float meter);
なので、一手間かけて目的の処理にする。
float range = radius * 1000 / mapView.getProjection().metersToEquatorPixels(1000);
これで目的は、達した!
…次に行ける…。
| 固定リンク
コメント