在Google地图上绘制标记时是否可以禁用标记?

时间:2015-08-18 06:07:57

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

我正在使用 google map api v2 开发应用。我必须在地图上画出每个地区的风,我对此没有任何问题。问题是,风正在完全填满我的地图,因此打算点击任何其他标记将会出现风。有没有办法在设置时禁用该特定标记的点击?

Marker marker = mMap.addMarker(new MarkerOptions().position(point).title("wind"));
marker.setIcon(BitmapDescriptorFactory.fromBitmap(OthersUtil.getRotatedBitmap(MapActivity.this, ws, windForecasts.get(i).wd)));

这是我添加风标记的方法。我发现的唯一工作就是这个

 @Override
 public boolean onMarkerClick(Marker marker) {
 if(marker.getTitle().toString().equals("wind")){
                onMapClickListener.onMapClick(marker.getPosition());
            }
}else{
another marker clicked
}

enter image description here

这就是它的样子。在这张图片中,我有2个标记,我不想点击风标记。

没有marker.setClickable(false)

4 个答案:

答案 0 :(得分:0)

如果您只想禁用标记点击事件,请使用以下代码:

map.setOnMarkerClickListener(new OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            return true;
        }
    });

答案 1 :(得分:0)

试试这个:

 @Override
    public boolean onMarkerClick(final Marker marker) {

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

我希望它会有所帮助!

答案 2 :(得分:0)

我用这种方法来区分标记:

添加标记后,请将其添加到Wind标记上的 snippet("wind") ,并将 snippet("") 传递到另一个地图标记

@Override
public boolean onMarkerClick(final Marker arg0) {
    if (arg0.getSnippet().contains("wind")) {
    } else{
    // Click of another marker
    }
}

答案 3 :(得分:0)

您可以使用Map<Marker, Object>,其中Object是代表与风标记或其他标记相关的数据的任何内容,如下所示:

hashMap.put(map.addMarker(MarkerOptions), obj));

然后通过onMarkerClick()中的地图检索对象,检查是否是&#34;风对象&#34;或不,你已经完成了。