Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/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
Android 地图触摸覆盖和项目化覆盖_Android_Google Maps - Fatal编程技术网

Android 地图触摸覆盖和项目化覆盖

Android 地图触摸覆盖和项目化覆盖,android,google-maps,Android,Google Maps,我有一个地图视图,上面有一个显示标记的ItemizedOverlay。此覆盖还覆盖onTap,以在点击标记时执行操作 我的地图还包括一个普通的覆盖,它覆盖onTouchEvent,以便在地图上任何其他地方被触摸时执行操作 但是,当用户点击标记时,将调用正常覆盖中的ontochevent,以及ItemizedOverlay中的onTap 所以我的问题是:有没有办法在点击标记时不调用(或忽略)onTouchEvent 谢谢。是的,有一个非常简单的解决方案。答案来自Java继承的工作方式。基本上,It

我有一个地图视图,上面有一个显示标记的
ItemizedOverlay
。此覆盖还覆盖
onTap
,以在点击标记时执行操作

我的地图还包括一个普通的
覆盖
,它覆盖
onTouchEvent
,以便在地图上任何其他地方被触摸时执行操作

但是,当用户点击标记时,将调用正常
覆盖
中的
ontochevent
,以及
ItemizedOverlay中的
onTap

所以我的问题是:有没有办法在点击标记时不调用(或忽略)onTouchEvent


谢谢。

是的,有一个非常简单的解决方案。答案来自Java继承的工作方式。基本上,ItemizeOverlay扩展了覆盖,所以您所需要做的就是不要在onTap()的ItemizeOverlay覆盖中调用super.onTap()方法。据我所知,这应该可以做到。如果它不起作用,一定要让我知道,我会为您提供一个替代解决方案。

项化覆盖在
上方,并让您的
onTap
返回false。

我已经没有调用super.onTap()。由于我有两个独立的覆盖层,我不确定这将如何工作无论如何。然而,你确实让我意识到我可以将它合并成一个覆盖,在同一个覆盖中使用onTouch和onTap。然而,在调用onTap时仍然调用onTouch。顺便问一下,您使用ItemizedOverlay和Overlays的目的是什么?我真的想不出一个需要同时使用两者的用例?ItemizedOverlay是用来显示标记的。我使用普通覆盖来检测用户何时点击地图,以便我可以在点击的位置加载新标记(并删除旧标记)。如果您使用普通覆盖来检测用户何时点击地图。我不知道你为什么要这么做,只需重写MapView类并在地图上使用一个手势检测器来检测地图上的点击,以下是自定义MapView的代码和自定义侦听器的接口www.pastebin.com/kUrm9zFg至少这是我为我的应用程序所做的,它工作得非常好,如果使用链接中的代码,则可以使用如下内容:mapView.setOnSingleTapListner(新OnSingleTap Listener(){@Override public boolean OnSingleTap(MotionEvent arg1){///},在该方法中,您只需为该地质点创建一个新的ItemIzeOverlay(可从MotionEvent获得,并使用map.getProjection()。这样就无需使用覆盖,只需使用ItemizedOverlays和显示标记,并使用自定义地图单击侦听器来检测地图上的点击并创建点。相信我,这是可行的,我有一个应用程序正在生产,这段代码工作得很好。如何确保一个覆盖高于另一个?我是否只需先添加覆盖,然后n ItemizedOverlay?如果是这样,我会在onTap中为ItemizedOverlay返回false…仍然没有运气