【问题标题】:google map marker drag event no working in android谷歌地图标记拖动事件在android中不起作用
【发布时间】:2018-01-09 09:34:36
【问题描述】:

我正在做一个包含多个标记的 android 应用程序。我想做标记长按事件,我知道MarkerDragListener 可以帮助我做到这一点。这是我用于MarkerDragListener的代码:

@Override
public void onMapReady(final GoogleMap googleMap) {
    Log.d(TAG, "onMapReady()");
    mGoogleMap = googleMap;
    mGoogleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

    mGoogleMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
        @Override
        public void onMarkerDragStart(Marker arg0) {
            // TODO Auto-generated method stub
            Log.d("System out", "onMarkerDragStart..."+arg0.getPosition().latitude+"..."+arg0.getPosition().longitude);
        }

        @SuppressWarnings("unchecked")
        @Override
        public void onMarkerDragEnd(Marker arg0) {
            // TODO Auto-generated method stub
            Log.d("System out", "onMarkerDragEnd..."+arg0.getPosition().latitude+"..."+arg0.getPosition().longitude);

        }

        @Override
        public void onMarkerDrag(Marker arg0) {
            // TODO Auto-generated method stub
            Log.i("System out", "onMarkerDrag...");
        }
    });

    mGoogleMap.setOnMarkerClickListener(this);
}

但是 Drag 事件对我不起作用,请有人帮我解决一下。

【问题讨论】:

    标签: android google-maps marker


    【解决方案1】:

    来自offlicial documentation

    默认情况下标记不可拖动。您必须在将标记添加到地图之前使用MarkerOptions.draggable(boolean) 或在将标记添加到地图后使用Marker.setDraggable(boolean) 将标记明确设置为可拖动。

    意味着您必须首先使标记可拖动,如下所示:

    static final LatLng POSITION = new LatLng(-31.90, 115.86);
    Marker marker = mGoogleMAp.addMarker(new MarkerOptions()
                          .position(PERTH)
                          .draggable(true));
    

    之后,您将观察到调用的 onMarkerDragStart(...) 和 onMarkerDragStart(...) 回调

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-28
      • 2014-12-04
      • 2016-04-10
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      相关资源
      最近更新 更多