【问题标题】:android google maps which polygon touchedandroid谷歌地图哪个多边形触及
【发布时间】:2016-01-12 23:37:09
【问题描述】:

我正在我的应用程序中绘制多个多边形。我创建了一个触摸检测监听器(感谢matiashPolygon Touch detection Google Map API V2) 但是我怎么知道哪个多边形被触及了?在检测侦听器中,我使用了 polygon.getID() 但我无法设置此 ID 值。它是随机的。如何设置 ID。

多边形创建:

            Polygon bol = myMap.addPolygon(new PolygonOptions()
                            .strokeColor(Color.argb(100,255,0,0))
                            .strokeWidth(3)
                            .geodesic(true)
                            .zIndex(1)
                            .clickable(true)
                            .addAll(koords)
            );

和听众:

    myMap.setOnPolygonClickListener(new GoogleMap.OnPolygonClickListener() {
        @Override
        public void onPolygonClick(Polygon polygon) {
            // Handle click ...
        }
    });

【问题讨论】:

  • 验证问题所需的代码...您如何创建多边形?通过代码或尝试在地图中放置标记,然后基于多个标记绘制?
  • 监听器为您提供作为函数参数触摸的多边形。如果您在创建多边形时(或稍后)未指定 ID,则 ID 是随机的

标签: android google-maps


【解决方案1】:

我找到了一种方法来存储我的多边形 ID。我无法修改多边形的 ID,但可以设置多边形 zIndex 的浮点值。

我使用 zIndex 的整数部分作为多边形的显示顺序,使用 zIndex 的小数部分作为我的 ID 值。

例如:4.12322 4是显示顺序,12322是我的ID。

【讨论】:

    【解决方案2】:

    最简单的解决方案是构建您自己的 CustomPolygon 类来扩展 Polygon 并添加一个可分配的唯一标识符。然后用这个类代替Android的Polygon

    【讨论】:

    • 多边形是最终类
    猜你喜欢
    • 2014-12-22
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 2011-12-03
    • 2012-06-15
    相关资源
    最近更新 更多