use*_*637 7 java android google-maps google-maps-markers
我有一个简单的"地方"课程:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在向这样的ArrayList添加"Places":( 注意名称不是唯一的)
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));
Run Code Online (Sandbox Code Playgroud)
我正在为我的Google地图添加标记,如下所示:
for(Place place : places)
map.addMarker(new MarkerOptions().position(place.latlng).title(place.name);
Run Code Online (Sandbox Code Playgroud)
我想知道如何为每个添加到地图的标记添加一个监听器.我试过用
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
}
});
Run Code Online (Sandbox Code Playgroud)
但是,我唯一可以做的就是得到标记的标题,这不是唯一的,所以我无法真正找到点击哪个EXACT"Place"对象.有任何想法吗?谢谢
Dan*_*ent 11
你可以只用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....
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
文档:
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
归档时间: |
|
查看次数: |
5575 次 |
最近记录: |