奇怪 - 拖动时Android标记位置没有被更新,除非我向地图添加一个监听器

时间:2014-12-17 08:21:06

标签: android google-maps android-maps-v2 android-maps

我有一个mapfragment,用户可以将标记拖动到所需的位置。完成后,他们按下" Save"按钮。

由于我对标记位置不感兴趣,直到用户按下Save,我认为不需要听众,所以我将Marker对象放在一边,并在保存时再次阅读。

selectLocationMarker = map.addMarker(new MarkerOptions().position(myLoc).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)).draggable(true));

...用户做东西并最终按下保存。在我的保存处理程序方法中:

Log.d(TAG, "performsave selectlocation now has lat;" + selectLocationMarker.getPosition().latitude + ";lon;" + selectLocationMarker.getPosition().longitude);

但是,我注意到我的标记对象位置始终具有初始位置,即使它已被拖动!

所以,我在我的地图上添加了一个OnMarkerDragListener,以查看拖动是否有效。它做了,而且更重要的是,我注意到我的标记然后突然变得更新了! 我刚刚添加了一个

 map.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {.....

使用空方法。如果我将其注释掉,拖动时我的标记lat / lon值不会更新。如果我有听众,则更新值。

这对我来说很奇怪。关于Markers的谷歌文档说:

You can get the position of the marker at any time by calling Marker.getPosition()

这似乎是一个奇怪的错误,我错过了什么?

0 个答案:

没有答案