【问题标题】:Is it possible to disable a marker while drawing it on google map?在谷歌地图上绘制标记时是否可以禁用标记?
【发布时间】:2015-11-10 22:28:41
【问题描述】:

我正在使用 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
}

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

没有marker.setClickable(false)

【问题讨论】:

  • 不,这种解决方法并不完美,有时即使我点击了另一个标记,它也会像风一样点击。我实际上是在寻找像这样的东西 marker.setClickable(false) 。但我认为它只是在那里在 v3 中

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


【解决方案1】:

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

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

【讨论】:

  • 是的,我知道,但我也有不同的标记需要点击。
【解决方案2】:

试试这个:

 @Override
    public boolean onMarkerClick(final Marker marker) {

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

希望对你有帮助!

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 设置不同标记的标题是一样的吧?我正在检查这样 if(marker.getTitle().toString().equals("wind")){ }else{ another marker }
    • 我知道您使用 title 并从中得到了一些问题。我没有使用标题来区分。但是我使用了 sn-p 并且在每个标记上都可以完美地工作。如果您遇到与此相同的问题,则必须检查将 title/sn-p 值传递为“wind”的位置。那里可能出了点问题。
    • 嗯,好的理解..实际上我的问题是当 2 个标记彼此靠近时..风图像上的点击区域很大,因此总是点击风标记。现在我减少了风图像的点击区域并解决了问题..无论如何感谢这是一个新信息..
    【解决方案4】:

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

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

    然后通过onMarkerClick() 中的地图检索对象,检查是否是“风对象”,然后就完成了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多