android - 谷歌地图错误 : Marker's position is not updated after drag

标签 android google-maps

我设置了一个标记并将其可拖动状态设置为 true。但是当我调用 marker.getPosition() 时,我总是得到相同的位置,就像标记的位置在拖动结束后没有更新一样。

mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map_place))
        .getMap();

LatLng MYLOCATION = new LatLng(Double.valueOf(myLat), Double.valueOf(myLng));
marker = new MarkerOptions()
    .position(MYLOCATION)
    .title(getString(R.string.map_title_my_location)).draggable(true);
mMap.addMarker(marker).showInfoWindow();
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(MYLOCATION, 18));
close.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {
    // TODO Auto-generated method stub
    LatLng pos = marker.getPosition();
    Toast.makeText(activity, "Lat: " + pos.latitude + "; Long: " + pos.longitude, Toast.LENGTH_LONG).show();
  }
});

作为我定义的类变量:

GoogleMap mMap;
MarkerOptions marker;

有什么想法吗?!

最佳答案

这是一个老问题,但由于我自己也遇到了同样的问题,所以解决方案如下:您需要先为 map 实例设置 OnMarkerDragListener (mMap.setOnMarkerDragListener(... )) 用于更新标记位置值。您实际上不需要在监听器实现方法中执行任何操作(您可以在任何您喜欢的地方使用 marker.getPosition()),它们只需要存在即可。

更新

现在这也记录在 https://developers.google.com/maps/documentation/android-api/marker#marker_drag_events

You can use an OnMarkerDragListener to listen for drag events on a marker. To set this listener on the map, call GoogleMap.setOnMarkerDragListener. To drag a marker, a user must long press on the marker. When the user takes their finger off the screen, the marker will stay in that position. When a marker is dragged, onMarkerDragStart(Marker) is called initially. While the marker is being dragged, onMarkerDrag(Marker) is called constantly. At the end of the drag onMarkerDragEnd(Marker) is called. You can get the position of the marker at any time by calling Marker.getPosition().

关于android - 谷歌地图错误 : Marker's position is not updated after drag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14829195/

相关文章:

java - https 连接安卓

Android:如何配置内核?

java - 访问静态内部类中外部类的方法

javascript - ng-map只打开远程KML文件而不打开本地文件?

android - Google Maps V2 setLocationSource 删除了蓝色的 MyLocation 图标

javascript - 错误折线谷歌地图

android - Log.wtf 与未处理的异常

Android HttpPost 崩溃,无法调试?

android - 如何在我们自己的 Android 应用程序上使用 KML 绘制叠加层?

javascript - HTML 输入表单和 Javascript