如何使用Maps V2 Android API选择标记?

noi*_*lla 5 android google-maps-android-api-2

我目前正在使用ItemizedOverlayMaps V1 API中的类,它跟踪当前选择的标记(如果有).Maps V2中是否有类似的功能来确定当前选择的是哪个标记?另外,有没有办法以编程方式选择新标记?

Dis*_*Dev 16

是.

要确定选择了哪个标记,请将OnInfoWindowClickedListener添加到GoogleMap:

//mMap is an instance of GoogleMap
mMap.setOnInfoWindowClickListener(getInfoWindowClickListener());
Run Code Online (Sandbox Code Playgroud)

覆盖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();
        }
    };      
}
Run Code Online (Sandbox Code Playgroud)

并跟踪所选标记,可能使用实例变量.

要以编程方式选择标记,您必须保留所有标记的列表,然后获取一个标记并调用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();
}
Run Code Online (Sandbox Code Playgroud)