我目前正在使用ItemizedOverlay
Maps V1 API 中的类,它跟踪当前选择的标记(如果有)。Maps V2 中是否有任何类似的功能来确定当前选择了哪个标记?另外,有没有办法以编程方式选择一个新的标记?
问问题
9861 次
2 回答
17
是的。
要确定选择了哪个标记,请将 OnInfoWindowClickedListener 添加到您的 GoogleMap:
//mMap is an instance of GoogleMap
mMap.setOnInfoWindowClickListener(getInfoWindowClickListener());
覆盖 OnInfoWindowClickListener 内部的 onInfoWindowClicked() 方法:
public OnInfoWindowClickListener getInfoWindowClickListener()
{
return new OnInfoWindowClickListener()
{
@Override
public void onInfoWindowClick(Marker marker)
{
Toast.makeText(getApplicationContext(), "Clicked a window with title..." + marker.getTitle(), Toast.LENGTH_SHORT).show();
}
};
}
并跟踪选定的标记,可能使用实例变量。
要以编程方式选择标记,您必须保留所有标记的列表,然后获取一个句柄并调用 showInfoWindow(),类似于以下内容:
//markerList is just a list keeping track of all the markers you've added
//to the map so far, which means you'll have to add each marker to this
//list as you put it on the map
Marker marker = this.markerList.get(someObjectYoureShowingAMarkerFor.getId());
if(marker != null)
{
marker.showInfoWindow();
}
于 2013-01-14T17:57:51.067 回答
1
您可以使用 OnMarkerClickListener。
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Toast.makeText(getApplicationContext(), "Clicked a marker with title..." + marker.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
于 2016-08-04T17:15:14.887 回答