【发布时间】:2015-08-30 08:09:18
【问题描述】:
我创建了一个标记并将其放置在地图上长按。我唯一的问题是我必须抬起手指,再次长按标记(虽然我第一次真的没有按下标记,它实际上是地图),然后我才能拖动它。这是默认功能,可以正常使用。
我更喜欢的是当我放下标记时,能够在第一次长按地图时开始拖动。我想知道是否有某种方法可以手动触发拖动事件,其中标记在创建后立即捕捉到我的手指位置,然后可以拖动并放置在我想要的位置。
这是相关代码,谢谢!
GoogleMap gMap;
@Override
public void onMapLongClick(LatLng latLng) {
MarkerOptions markerOptions = new MarkerOptions().position(latLng)
.title(null).draggable(true);
gMap.addMarker(markerOptions);
//I would like to be able to start dragging the marker here
}
【问题讨论】:
-
不是在 onMapLongClick 事件中立即添加标记,如果您只是在地图上添加一个标记图标,当您在地图上按下并拖动时,它会跟随您的手指坐标,然后创建并当您停止按地图时放置标记?我想不出其他方法,因为您必须在地图上实际放置标记并松开,然后才能单击标记并移动它。
-
@Zach 对以上内容有任何希望吗?
-
@JennoRichiBenat 我最终通过在地图上添加叠加层来完成概念验证工作。在 x ms 的覆盖触摸上,在手指拖动的位置添加一个图像,然后在您抬起手指时在地图上放置一个标记(并删除图像)。我也许可以挖掘代码它在某个地方,我最终没有在任何生产产品中实现它,因为很难判断您的手指是在现有标记上还是应该创建一个新标记,将来仍然可能会查看它不过。
-
@JennoRichiBenat 值得注意的是,现有制造商问题的一种解决方法是使地图触摸时间略长于拖动事件的标记长按超时,并在拖动开始时取消触摸事件.并不是说它不是 hacky,但我认为它会起作用
标签: java android google-maps