Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Osmdroid 如何覆盖KML事件?_Osmdroid - Fatal编程技术网

Osmdroid 如何覆盖KML事件?

Osmdroid 如何覆盖KML事件?,osmdroid,Osmdroid,我想添加当用户单击地图上的某个功能时将执行的逻辑 我注意到,当我在FolderOverlay上单击一个功能时,它会在地图上打开一个工具提示,在我单击的多边形旁边显示“名称”和“描述”。太好了 我阅读了FolderOverlay.java中的onTouchEvent,但无法理解该函数如何找到当前按下的多边形 以下是函数: @Override public boolean onTouchEvent(MotionEvent e, MapView mapView){ if (isEnabled(

我想添加当用户单击地图上的某个功能时将执行的逻辑

我注意到,当我在
FolderOverlay
上单击一个功能时,它会在地图上打开一个工具提示,在我单击的多边形旁边显示“名称”和“描述”。太好了

我阅读了
FolderOverlay.java
中的
onTouchEvent
,但无法理解该函数如何找到当前按下的多边形

以下是函数:

@Override public boolean onTouchEvent(MotionEvent e, MapView mapView){
    if (isEnabled())
        return mOverlayManager.onTouchEvent(e, mapView);
    else 
        return false;
}
简言之,如何将逻辑注册到“用户已单击地图上的某个功能”事件


谢谢

FolderOverlay只是其他覆盖的容器,所以它只是将触摸事件委托给包含的子对象。我不确定KML是如何在库中实现的,但它可能会生成封装在folderoverlay中的多边形/多段线。这些人员负责tap处理,并决定tap是否在其区域内。例如,这里是多边形等的来源。这个答案可能会有帮助,但在您的场景中可能很难使用。@JosefAdamcik感谢您的提示。您是对的,在我的示例中很难使用,因为多边形是从KML文档实例化的,而不是直接从我这里实例化的。但我会试试:)。如果您想到其他内容,请告诉我。FolderOverlay只是其他覆盖的容器,所以它只是将触摸事件委托给包含的子对象。我不确定KML是如何在库中实现的,但它可能会生成封装在folderoverlay中的多边形/多段线。这些人员负责tap处理,并决定tap是否在其区域内。例如,这里是多边形等的来源。这个答案可能会有帮助,但在您的场景中可能很难使用。@JosefAdamcik感谢您的提示。您是对的,在我的示例中很难使用,因为多边形是从KML文档实例化的,而不是直接从我这里实例化的。但我会试试:)。如果你有别的想法,请告诉我。