Android Google Maps v2 - 将对象添加到标记

dum*_*azy 24 android google-maps-markers google-maps-android-api-2

我们如何在新的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));

}
Run Code Online (Sandbox Code Playgroud)

这将设置对象的位置,标题和片段.但是如果我点击这个,我想能够去关于这个特定Spot-object的另一个活动InfoWindow

dum*_*azy 37

不确定这是否是正确答案,但请看一下我对此问题所做的博文:

因为Marker就是final,它是这可以很容易由数据与链接来解决Marker在一个Map,例如HashMap<Marker, YourDataClass>HashMap<Marker, String>

这是一个解释所有内容的教程:http: //bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html


Kio*_*tch 20

从Play Services v9.4.0开始,您现在可以直接在标记上设置任何对象!

要保存数据:

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

CustomObject myData = new CustomObject();
marker.setTag(myData);
Run Code Online (Sandbox Code Playgroud)

然后检索你的数据:

CustomObject myRestoredData = (CustomObject)marker.getTag(myData);
Run Code Online (Sandbox Code Playgroud)

有关标记数据的更多信息,请参阅以下文档.