MapView onCLick Event Listener



所以我一直在尝试检测MapView的点击事件,以便通过点击启动方法。

尝试标准onClickListeneronTouch的任何变体都是不好的。

我不想添加叠加层来"捕获"地图某个部分的点击。我希望地图继续响应拖动、缩放等。

任何帮助将不胜感激。

因此,显然解决方案非常简单。我想它是在最后一个支持库之一中添加的。谷歌地图现在支持onMapClick。

mMapView.getMap().setOnMapClickListener(new OnMapClickListener()
                {
                    @Override
                    public void onMapClick(LatLng arg0)
                    {
                        android.util.Log.i("onMapClick", "Horray!");
                    }
                });

在新版 Google Play 服务中,您应该在映射准备就绪后,在onMapReady(GoogleMap map);回调处调用该方法。

 @Override
public void onMapReady(GoogleMap googleMap) {
    googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener()
    {
        @Override
        public void onMapClick(LatLng arg0)
        {
            android.util.Log.i("onMapClick", "Horray!");
        }
    });
}
public class MapView  implements OnMapReadyCallback, GoogleMap.OnMarkerClickListener {
   @Override
   public boolean onMarkerClick(Marker marker) {
       println("click marker");
   }
}

这是 Kotlin 中的解决方案

简单地图点击方法:

googleMap.setOnMapClickListener {
        Toast.makeText(mContext, "Map Clicked", Toast.LENGTH_SHORT).show()
    }

标记点击方法:

googleMap.setOnMarkerClickListener { marker ->
        Toast.makeText(mContext, "Marker Title: ${marker.title}", Toast.LENGTH_SHORT).show()
        false
    }

最新更新