2012-05-30 18 views
4

我必须在mapview上显示多个(大约600个,全部可点击以显示关于它们的一些信息)叠加项目。对于性能问题,我认为将它们分组到不同的ItemizedOverlay类是明智的,因为每个组都将显示关于它们的不同类型的信息。 (特别是项目是机场,VOR,NDB和航空等)。使用OnTap(int i)与多层的ItemizedOverlay

我的问题是,如果我把它们分类并显示它们,性能是超级的。地图流动流利。但是当我在第一层上添加第二层时,第一层上的项目变得不可点击。

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

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

在此先感谢。

回答

7

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

+0

谢谢**非常**。这个伎俩。我不知道那些真实或错误的价值观在处理什么。 :) –

+0

是的,我也花了一些时间。很高兴有帮助! :) –

相关问题