将标记拖动限制为特定国家/地区



我可以限制将地图中的标记拖动到特定国家吗?由于我的应用程序的某些功能,我不希望用户将标记拖到印度以外。

是的,您可以限制标记的放置位置。

看看GoogleMap.OnMarkerDragListener。您将看到此接口有三种方法。

  • onMarkerDrag(Marker marker)
  • onMarkerDragEnd(Marker marker)
  • onMarkerDragStart(Marker marker)

首先,您必须收听onMarkerDrag事件。为此,请将侦听器设置为映射实例,例如:

mMap.setOnMarkerDragListener(new OnMarkerDragListener() {
    @Override
    public void onMarkerDragStart(Marker marker) {
        // ...
    }
    @Override
    public void onMarkerDragEnd(Marker marker) {
        // Use this method to detect when the user stopped dragging the marker.
    }
    @Override
    public void onMarkerDrag(Marker marker) {
        // Listen to this method to check the marker position.
    }
});

每次尝试将标记拖动到某个位置时都会调用该方法。

一旦检测到该事件,您可以通过调用 myMarker.getPosition() 来持续检查标记位置,并将其与某个边界进行比较。请参阅 LatLngBounds 类及其生成器以获取更多信息。

如果标记越过该边界,请通过调用标记 setDraggable 方法使其"不可拖动",如下所示:

myMarker.setDraggable(false)

然后,在 onMarkerDragEnd 方法上,使其再次可拖动,否则用户在越过边界后将无法拖动标记:

myMarker.setDraggable(true)

相关内容

  • 没有找到相关文章

最新更新