我目前正在使用 Maps V1 API 中的 ItemizedOverlay
类,该类跟踪当前选择的标记(如果有)。 Maps V2 中是否有类似的功能来确定当前选择的标记?此外,是否有一种方法可以以编程方式选择新标记?
我目前正在使用 Maps V1 API 中的 ItemizedOverlay
类,该类跟踪当前选择的标记(如果有)。 Maps V2 中是否有类似的功能来确定当前选择的标记?此外,是否有一种方法可以以编程方式选择新标记?
是的。
要确定选中哪个标记,将 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();
}
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;
}
});