MyLocationOverlay

Androidには地図を表示するMapViewというクラスがあって、その上にアイコンや図形などを重ねるOverlayクラスを親クラスにもつMyLocationOverlayというものを使うと現在位置の表示などができて便利。ただ、地図上に何枚もレイヤーを重ねあわせる場合、なぜか強制終了されてしまう。2,3枚重ねる程度なら問題ないけれど、これが10枚とかになるとダメ。
ためしにMyLocationOverlayを使わずに、LocationManagerを使ってレイヤー上に自位置を表現するアイコンを配置、その上に地図上にアイコンを配置するレイヤーを同じように重ねてみた。自位置を表示するレイヤーもアイコンを表示するレイヤーと同じ扱い。こうすると200枚以上重ねてもまったく問題なかった。こんなに重ねられるのも驚きだったけれど。自位置のGPS精度を表現するアニメーションはないけれど、これで十分。
MyLocationOverlayではGPSの精度なども含めた自位置の表示のアニメーションがあるので、扱いが特殊なのかもしれない。iPhoneアプリを作っていた時も、自位置を表示するビューの上に重ねるとエラーになってたのを思い出した。備忘録として書いておきます。

カテゴリー: Android, iPhone, プログラム   パーマリンク

コメントは受け付けていません。