我有一个简单的“地方”课程:
public class Plac{
String name;
int id;
LatLng latlng;
public Product(String name, int id, LatLng latlng) {
this.name = name;
this.id= id;
this.latlng = latlng;
}
}
并且我将“ Places”添加到ArrayList中,如下所示:(请注意,名称不是唯一的)
ArrayList<Place> places = new ArrayList<Place>();
places.add(new Place("McDonald's", 1));
places.add(new Place("McDonald's", 2));
places.add(new Place("McDonald's", 3));
我正在这样向我的Google地图添加标记:
for(Place place : places)
map.addMarker(new MarkerOptions().position(place.latlng).title(place.name);
我想知道如何为正在添加到地图的每个标记添加一个侦听器。我尝试使用
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
}
});
哪个有效,但是,我唯一能做的就是获取不是唯一的标记的标题,因此我无法真正找到正在单击的“确切”“放置”对象。有任何想法吗?谢谢
你可以只用LatLng
从调用返回的对象getPosition()
的Marker
唯一标识每个Marker
,并找到自己在比赛中places
的数组。
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
LatLng latLon = marker.getPosition();
//Cycle through places array
for(Place place : places){
if (latLon.equals(place.latlng)){
//match found! Do something....
}
}
}
});
说明文件:
https://developer.android.com/reference/com/google/android/gms/maps/model/Marker.html
http://developer.android.com/reference/com/google/android/gms/maps/model/MarkerOptions.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句