2012-12-14 75 views
23

如何將對象添加到新的谷歌地圖Android API v2中的標記? 所以,如果我們點擊InfoWindow,我們可以用對象做些什麼?Android Google Maps v2 - 將對象添加到標記

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)); 

} 

這設置對象的位置,標題和片段。但我希望能夠去關於這個特定的Spot對象的另一個活動,如果我點擊InfoWindow

+0

您可以使用[android-maps-extensions](https://code.google.com/p/android-maps-extensions)擴展Marker和Polygon類,並允許您設置並從中獲取對象 – primax79

回答

37

不確定這是否是正確的答案,但看看這篇關於這個問題的博文:

由於Markerfinal,它的這個可以很容易地通過在MapMarker數據連接來解決,例如HashMap<Marker, YourDataClass>HashMap<Marker, String>

這裏有一個教程,說明一切: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html

+0

我也沒有看到任何其他的方式。 – Vincent

+0

感謝您發佈解決方案。 –

+1

請不要添加鏈接專用答案,請在此提供解決方案摘要SO – avalancha

1

嘗試android-maps-extensions它的圖書館,在那裏你可以通過SetData方法添加對象標記和檢索數據調用方法的getData

Read more

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

從搖籃您可以使用谷歌的任何版本的播放服務

dependencies { 
    compile 'com.androidmapsextensions:android-maps-extensions:2.2.0' 
    compile 'com.google.android.gms:play-services-maps:8.1.0' 
} 
12

從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); 

更多infomration上標記數據,here are the docs

+0

我知道這是一個老問題,但我希望他們會添加像他們在iOS中的userData選項。 –

相關問題