Osmdroid 4.3 - 在叠加层上双击

Osmdroid 4.3 - double taps on overlays

我已将 Osmdroid 4.3 导入到我的应用程序中,但我在点击显示的叠加层时遇到问题。在我移动到地图上之后,我必须双击叠加层以显示我想要的内容,然后,当我点击另一个叠加层时,它只需要单击(=正确的方式,应用程序已编程)。

问题是,有人在使用最新的 osmdroid 时在点击地图上的对象时遇到过同样的问题吗?或者与我之前的 3.0.8 版本相比有什么变化吗?

感谢

编辑:

Osmdroid 3.0.8 - 我可以平移地图,浏览地图,左,右,上,下。我在地图上显示了兴趣点。我可以双击来缩放,捏合缩放来放大或缩小。我单击 POI,然后显示有关 POI 的所有可用详细信息。

Osmdroid 4.3 - 我可以平移地图,和以前一样。唯一的区别是,当我点击 POI 项目时,地图什么都不做。然后,如果我再次点击该点或者我想平移地图都没有关系。两个手势现在相同,我看到显示的 POI 详细信息。将 POI 添加到地图时,我使用扩展 OverlayItem 的自定义 class。为什么需要双标签?为什么在我看来,显示的 OverlayItems 现在来自地图 "separated"?因为第一次触摸它们似乎我必须 "active them first",然后再触摸(无论是哪种触摸)完成我的工作并显示 POI 详细信息。

我没有对源代码做任何改动,只是交换了库。我做错了什么?

编辑2:

我想我发现了 osmdroid 3.0.8 和 4.3 之间的变化。在我的应用程序中,我正在评估 OnItemGestureListener 及其方法 onItemSingleTap 单击了哪个 POI。在 OnTouchEvent 中,我正在显示 POI 详细信息。在 Osmdroid 3.0.8 中,当点击 POI 时,有调用层次结构 1) onItemSingleTap 2)onTouchEvent。在 osmdorid 4.3 中,它们的调用被切换,所以 1)OnTouchEvent 2)OnItemSingleTap,所以我的第一次触摸没有产生任何结果。

我想我发现了 osmdroid 3.0.8 和 4.3 之间的变化。在我的应用程序中,我正在评估 OnItemGestureListener 及其方法 onItemSingleTap 单击了哪个 POI。在 OnTouchEvent 中,我正在显示 POI 详细信息。在 Osmdroid 3.0.8 中,当点击 POI 时,有调用层次结构 1) onItemSingleTap 2)onTouchEvent。在 osmdorid 4.3 中,它们的调用被切换,所以 1)OnTouchEvent 2)OnItemSingleTap,所以我的第一次触摸没有产生任何结果。

解决方案是:在 onTouchEvent 中,我从手指触摸的位置获取 IGeoLocation。然后我查找数据库并找到所有坐标围绕我的触摸且距离小于阈值的 POI。此阈值(例如 +-0,010 纬度和 +-0,10 经度)必须针对每个缩放设置不同。例如。缩放 16 时,阈值为 0,001(仅单击 1 个 POI 时,我不想看到远处点的选择),缩放 12 时,我将阈值设置为 0,125,因此我的手指仅选择了一些在一起的 POI而不是整个地图。因此,如果您的应用程序能够触摸多个 POI,请注意 Osmdroid 4.3 中的这一变化。