新しい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
をクリックすると、この特定のスポットオブジェクトに関する別のアクティビティに移動できるようにしたい
これが正しい答えかどうかは本当にわかりませんが、この問題について私が作成したこのブログ投稿を見てください。
Marker
はfinal
なので、Marker
内のMap
とデータをリンクすることで簡単に解決できます。たとえば、HashMap<Marker, YourDataClass>
またはHashMap<Marker, String>
これはすべてを説明するチュートリアルです: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html
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);
マーカーデータの詳細については、 ここにドキュメントがあります です。
試す 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'
}