web-dev-qa-db-ja.com

Android Google Maps v2-マーカーにオブジェクトを追加

新しいGoogle Maps Android API v2でマーカーにオブジェクトを追加するにはどうすればよいですか?ですから、InfoWindowをクリックすると、オブジェクトと何か?

public void addSpotOnMap(Spot spot) {
    getMap().addMarker(new MarkerOptions()
            .position(new LatLng(spot.getParseGeoPoint().getLatitude(), spot.getParseGeoPoint().getLongitude()))
            .title(spot.getName())
            .snippet(spot.getCategory())
            .draggable(false));

}

これにより、オブジェクトの場所、タイトル、スニペットが設定されます。 InfoWindowをクリックすると、この特定のスポットオブジェクトに関する別のアクティビティに移動できるようにしたい

24
dumazy

これが正しい答えかどうかは本当にわかりませんが、この問題について私が作成したこのブログ投稿を見てください。

Markerfinalなので、Marker内のMapとデータをリンクすることで簡単に解決できます。たとえば、HashMap<Marker, YourDataClass>またはHashMap<Marker, String>

これはすべてを説明するチュートリアルです: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html

37
dumazy

Play Services v9.4.0以降、マーカーに直接任意のオブジェクトを設定できるようになりました。

データを保存するには:

Marker marker = getMap().addMarker(new MarkerOptions()
        .position(lat, lng)
        .title(spot.getName());

CustomObject myData = new CustomObject();
marker.setTag(myData);

次に、データを取得します。

CustomObject myRestoredData = (CustomObject)marker.getTag(myData);

マーカーデータの詳細については、 ここにドキュメントがあります です。

21
Kio Krofovitch

試す Android-maps-extensions そのライブラリでは、setdataメソッドでマークするオブジェクトを追加し、データ呼び出しメソッドgetDataを取得できます。

続きを読む

Object getData() and setData(Object) on Marker, Circle, GroundOverlay, Polygon, Polyline or TileOverlay

gradleから任意のバージョンのGoogle Play Servicesを使用できます

dependencies {
    compile 'com.androidmapsextensions:Android-maps-extensions:2.2.0'
    compile 'com.google.Android.gms:play-services-maps:8.1.0'
}
1
Mina Fawzy