我已将Osmdroid 4.3导入到我的应用程序中,但是在点击显示的叠加层时遇到问题。在我移动地图后,我必须双击叠加以显示我想要的内容,然后,当我点击anotehr叠加时,它只需要单击(=正确的方式,应用程序已编程)。
问题是,任何人在拍摄地图上的物体时遇到与最新osmdroid相同的问题?或者我以前的3.0.8版本有什么变化吗?
THX
修改
Osmdroid 3.0.8 - 我可以平移地图,浏览地图,左,右,上,下。我在地图上显示了POI。我可以双击缩放,pinchzoom放大或缩小。我点击了POI,然后我显示了有关POI的所有可用详细信息。
Osmdroid 4.3 - 我可以平移地图,像以前一样经历。唯一的区别是,当我点击POI项目时,地图什么都不做。然后,如果我再次点击该点或我想平移地图无所谓。这两个手势现在都是一样的,我看到显示的POI细节。将POI添加到地图时,我使用的是扩展OverlayItem的自定义类。为什么需要双标签?为什么在我看来,显示的OverlayItems现在与地图“分开”了?因为第一次触摸它们似乎我必须“先激活它们”,并且通过另一种触摸(无论是什么样的触摸)完成我的工作并显示POI细节。
我没有对源代码进行任何更改,只交换了库。我做错了什么?
EDIT2:
我想我已经找到了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,所以我的第一次触摸不生成任何内容。
答案 0 :(得分: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,所以我的第一次触摸不生成任何内容。
解决方法是:在onTouchEvent中,我从触摸手指的地方获取IGeoLocation。然后我查找数据库,找到所有带有坐标的坐标,其距离低于阈值。必须以不同方式为每次缩放设置此阈值(例如+ -0,010 lat和+ -0,10 lon)。例如。当有缩放16时,阈值为0,001(当仅点击1个POI时,我不想看到远点的选择),当有缩放12时,我在0,125上设置阈值,所以我的手指只选择一些POI在一起,而不是整个地图。因此,如果您的应用程序能够触摸多个POI,请注意Osmdroid 4.3中的此更改。