我画了很多多边形。其中一些重叠。我希望能够检测到多边形内部的点击,并显示一个对话框,说明在多边形内部单击了它(应该在点击时检测到该多边形)。这种属性可以通过 ItemizedIconOverlay 看到,我们可以通过点击 OverlayItem 来检测所有 OverlayItem。如何在多边形上实现这个?
我绘制和添加多边形的方式是:
MyPolygon myNewPolygon = new MyPolygon(this);
myPolygon.setPoints(Polygon.pointsAsCircle(new GeoPoint(38.948714, -76.831918), 20000.0));
map.getOverlays().add(myPolygon);
myNewPolygon.setPoints(Polygon.pointsAsCircle(new GeoPoint(38.851777, -77.037878), 20000.0));
map.getOverlays().add(myNewPolygon);
最佳答案
有多种答案,具体取决于您想要实现的目标。
简单的情况:如果您只想有一个气泡开口,那么只需为您的多边形设置一个信息窗口,如教程中所述。
如果您想要其他任何东西:对于多边形,没有可用的监听器,而对于标记和折线则有可用的监听器(也许是请求的增强?)。
因此,您可以做的是子类 Polygon - 就像您对 MyPolygon 所做的那样。然后重写 onTap 方法 - 或者最有可能的 onSingleTapConfirmed - 并实现您需要的行为。
查看 Polygon.onSingleTapConfirmed来源可能会有所帮助(例如 HitTest )。
关于maps - 如何在osmdroid中的Polygon中获取onTap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32977376/