1

固定されていない量のマーカーをマップに動的に追加しています。各マーカーは、POCO クラスの 1 つのインスタンスに関連付けられています。

ユーザーがマーカーの 1 つをクリックすると、残りのデータがカスタム InfoWindow 内に表示されるように、それらをリンクする必要があります。

何を指示してるんですか?

PS: ユーザーがマップをパンまたはズームするたびに新しいマーカーを追加しますが、アプリのオーバーロードが心配です。目に見えないマーカーは処分されていますか?

4

2 に答える 2

5

HashMap などを使用することをお勧めします。オブジェクトのリストを反復処理してそれらのマーカーを作成するときに、オブジェクトの ID をキーとして、マーカーを値として使用して、マーカーもリストに追加します。

private HashMap<Integer, Marker> markerMap = new HashMap<Integer, Marker>();

...

for(MarkerObject obj : this.markerObjects)
{
     //If the marker isn't already being displayed
     if(!markerMap.containsKey(obj.getId()))
     {
         //Add the Marker to the Map and keep track of it 
         this.markerMap.put(obj.getId(), this.mMap.addMarker(getMarkerForObject(obj)));
     }
}

次に、OnInfoWindowClickListener を使用して、マップ内のタップされたマーカーのオブジェクト ID を見つけ、対応するデータで何かを行うことができます (詳細を含む新しいアクティビティを開くなど)。

于 2013-01-14T18:07:46.803 に答える