複数のポイントを含むマップ オーバーレイがあり、それぞれに独自の番号付きマーカーがあります。ポイントは、描画したい順序でオーバーレイに表示されます (つまり、マーカー 0 から 10 まで - 10 が最新のポイントです)。地図を表示すると、緯度の高い順に点が描かれているように見えます。これは、私の場合、ポイント 7 のマーカーがポイント 10 のマーカーの上に描画される可能性があることを意味します。マーカーがマップ上に配置される順序を制御する方法はありますか?
1 に答える
1
私はそれを見つけました-次のコードを追加しましたが、うまくいくようです。これにより、緯度の昇順ではなく、オーバーレイと同じ順序でアイテムが強制的に描画されます。
興味深いことに、別の順序 (たとえば、逆順) を選択すると、マップは要求どおりに表示され、以前のエントリが後のエントリにオーバーレイされます。つまり、両方のマップ座標が同じ場合、ポイント 7 はポイント 10 の上に描画されます。ただし、ポイント 7 として表示されているものをタップすると、onTap メソッドはポイント 10 のインデックスを提供します (おそらくシーケンスで 10 番目に描画されたため)。これにより、混乱が生じる可能性があります。次に、ポイントを表示するように要求した順序を覚えて、実際にどのエントリが一番上にあるかを判断するのはあなた次第です。
@Override
protected int getIndexToDraw(int drawingOrder) {
// Log.d("getIndexToDraw", "drawing order: " + drawingOrder); //just my debug
return drawingOrder; // forces order to follow overlay item sequence
// return super.getIndexToDraw(drawingOrder); // default code - ie Latitude order
}
于 2012-05-23T20:50:59.683 に答える