-1

このコードを使用して、Googleマップにマーカーを描画しています(画面に表示されていないマーカーを非表示にします)

for (MyMapPointModel item : items) {
            // If the item is within the the bounds of the screen
            if (bounds.contains(item.getLatLng())) {
                // If the item isn't already being displayed
                if (!visibleMarkers.containsKey(item.getId())) {
                    // Add the Marker to the Map and keep track of it with
                    // the HashMap
                    // getMarkerForItem just returns a MarkerOptions object
                    customMarker = getMap().addMarker(getMarkerForItem(item));
                    visibleMarkers.put(item.getId(), customMarker);
                    drawMarker(item.getLatLng(), item.getThumbUri(), item.getId());
                }
            } else { // If the marker is off screen
                // If the course was previously on screen
                if (visibleMarkers.containsKey(item.getId())) {
                    // 1. Remove the Marker from the GoogleMap
                    visibleMarkers.get(item.getId()).remove();
                    // 2. Remove the reference to the Marker from the
                    // HashMap
                    visibleMarkers.remove(item.getId());

                }
            }
        }

ハッシュマップに項目 ID を持つマーカーを保存しています。テープ マーカーの詳細を含むアクティビティを呼び出したいのですが、onMarkerClick リスナーから項目 ID を取得できません (彼はマーカー オブジェクトのみを提供します)。私は何かを逃していますか?誰かがより良いアイデアを持っていますか?

4

3 に答える 3

1

そして、私はハッシュマップにアイテムIDを持つマーカーを保存しています私はハッシュマップを使用しています

その特定のデータ構造を他の場所でうまく使用していると思いますので、便利です。

ただし、あなたの問題については、onをキーとしてHashMap<String, Integer>使用する必要があるようです。これにより、指定されたその.getId()MarkerIntegerMarker

または、独自の情報ウィンドウを作成している場合は、 のタイトルまたはスニペット フィールドを使用しMarkerて整数の文字列表現を保持し、getTitle()またはgetSnippet()を使用してその値を直接取得できます。

于 2013-09-25T16:25:43.890 に答える