点击谷歌地图中的特定标记时,通过其ID和索引获取地图标记

时间:2015-11-18 09:41:29

标签: android

我在我的某个应用程序中使用了地图。我想知道在点击标记时获取标记的关联对象的常用/有效方法是什么。 而且我也想知道什么是当前的标记索引。

3 个答案:

答案 0 :(得分:0)

mMap.addMarker(new MarkerOptions()                           
.position(MELBOURNE)                           
.title("Melbourne")                           
.snippet(KEY + "Population: 4,137,400"));

    @Override
    public boolean onMarkerClick(Marker marker) { 
       String s = marker.getSnippet()

    }

答案 1 :(得分:0)

试试这个

     {
private Marker myMarker;    

private void setUpMap()
{
    .......
    googleMap.setOnMarkerClickListener(this);

    myMarker = googleMap.addMarker(new MarkerOptions()
                .position(latLng)
                .title("My Spot")
                .snippet("This is my spot!")
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
    ......
}

@Override
public boolean onMarkerClick(final Marker marker) {

    if (marker.equals(myMarker)) 
    {
        //handle click here
    }
}

}

答案 2 :(得分:0)

Here你可以看到HashMap示例。

您可以创建一个全局HashMap变量,如

HashMap< Marker, YourClass> hashMap=new HashMap<Marker, YourClass>();

当你在地图上添加标记时,将标记作为键,将对象作为值,如

MarkerOptions options = new MarkerOptions();
                        options.position(new LatLng(Lat, Lng));
                        options.icon(BitmapDescriptorFactory
                        .fromResource(R.drawable.ic_your_marker));
                        Marker mMarker = googleMap.addMarker(options);
                        mMarker.setTitle("Title");
                        hashMap.put(mMarker,YourClassObject);

然后覆盖onMarkerClick方法,如

@Override
    public boolean onMarkerClick(Marker marker) { 
      YourClass obj=(YourClass) hashMap.get(marker);
//now you can use corresponding object
    }