【问题标题】:How do I select a marker using the Maps V2 Android API?如何使用 Maps V2 Android API 选择标记?
【发布时间】:2016-08-05 01:15:14
【问题描述】:

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

【问题讨论】:

    标签: android google-maps-android-api-2


    【解决方案1】:

    是的。

    要确定选择了哪个标记,请将 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();
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用 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;
              }
          });
      

      【讨论】:

        猜你喜欢
        • 2015-01-31
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        • 2015-11-23
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        • 1970-01-01
        相关资源
        最近更新 更多