maps - 如何在osmdroid中的Polygon中获取onTap?

标签 maps polygon openstreetmap android-maps osmdroid

我画了很多多边形。其中一些重叠。我希望能够检测到多边形内部的点击,并显示一个对话框,说明在多边形内部单击了它(应该在点击时检测到该多边形)。这种属性可以通过 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/

相关文章:

c# - 如何查找坐标点是否在边界内

math - 多边形的点公式

mysql - 查找距离 map 上的点最近的分区

ubuntu - 立交桥 API 调度程序失败,地址已在使用 98

python - Django floppyforms OSMPointWidget 不显示 map

openstreetmap - openstreetmap 的高程 API

python - 交互式 Bokeh map

mysql - 地理数据存入数据库用于报告

找到地球上 100 个最长且陡度超过 30 度的斜坡的算法?

google-maps - 谷歌地图多边形到 SVG 路径