其他分享
首页 > 其他分享> > android – 使用具有多层ItemizedOverlay的OnTap(int i)

android – 使用具有多层ItemizedOverlay的OnTap(int i)

作者:互联网

我必须在mapview上显示多个(大约600个,所有可点击以显示有关它们的信息)覆盖项目.对于性能问题,我认为将它们分组到不同的ItemizedOverlay类是明智的,因为每个组都会显示关于它们的不同类型的信息. (特别是项目是机场,VOR,NDB以及有关航空的事情).

我的问题是,如果我把它们分成几个班并展示它们,那么表现就是超级.地图流畅.但是当我在第一层顶部添加第二层时,第一层上的项目变得不可点击.

当我读了很多,并使用Log.i方法调试时,我意识到每个图层都被点击,但只有OnTap(Geopoint point,MapView mapview)方法被调用.调用super.onTap(point,mapview)不起作用.我需要onTap(int index)方法来识别标记. (我的课程中有两种方法(在我阅读了很多例子之后)).

所以我该怎么做?有什么方法可以解决我的问题吗?我不想进入沉重的方法,例如将点击的坐标与所有叠加项坐标进行比较以找到任何接近的东西.

提前致谢.

解决方法:

onTop(以及任何其他触摸事件在android上运行)的方式是它将ping所有坐标处的对象,直到其中一个onTaps(或任何其他触摸事件)返回true.在这种情况下,您的onTap(Geopoint point,MapView mapview)方法返回true.这会消耗该触摸事件,并且不会将其传递给任何其他onTap事件.如果使onTap事件返回false,则其他onTap事件将被ping.我希望这有帮助.

标签:android,google-maps,android-mapview,itemizedoverlay
来源: https://codeday.me/bug/20190613/1233124.html