我正在Android上开发Google Maps应用。通过将它们作为OverlayItems添加到ItemizedOverlay,我可以显示许多GeoPoint。这对于显示它们并在单击它们时显示一个漂亮的框非常有用,但是我试图将信息放在它显示的框中。

因此,我用自己的类扩展了ItemizedOverlay,并且覆盖了onTap (final GeoPoint p, final MapView mapView)。一开始我以为这很简单,因为其中一个参数是GeoPoint,所以我确切知道单击了哪个GeoPoint。但是,据我所知,GeoPoint参数是用户实际触摸的位置的GeoPoint。给定用户可以触摸并仍然触发onTap的范围,GeoPoint对于准确知道实际触摸了哪个GeoPoint并不是很有帮助。

我目前正在对照所有现有的GeoPoints检查参数GeoPoint,并查看它是否最接近。这似乎是一个超级hacky抽象反转。有没有更好的方法来知道实际使用了什么?

最佳答案

而不是onTap (final GeoPoint p, final MapView mapView),您应该重写该方法:

@Override
protected boolean onTap(int index){
    //you code here
}


index将使您指向正确的OverlayItem

问候。

关于java - 识别触发onTap调用的GeoPoint,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13610473/

10-11 15:10