【问题标题】:How to make map object (eg: circle) clickable in android google maps v2?如何在 android google maps v2 中使地图对象(例如:圆圈)可点击?
【发布时间】:2013-03-20 14:50:52
【问题描述】:

Google 最近在 V2 中引入了圆形作为地图对象,并且可以轻松绘制: https://developers.google.com/maps/documentation/android/shapes#circles

有谁知道如何使它可点击,以便我可以打开信息窗口等...?

非常感谢您的帮助。

【问题讨论】:

    标签: android google-maps google-maps-android-api-2


    【解决方案1】:

    自 2016 年 6 月起,Google 引入了 CircleOptions 的可点击属性。

    https://developers.google.com/android/reference/com/google/android/gms/maps/model/CircleOptions#public-constructor-summary

    您也可以使用 Circle.setClickable(boolean) 方法并监听 OnCircleClickListener 事件。

    https://developers.google.com/android/reference/com/google/android/gms/maps/model/Circle.html#public-methods

    【讨论】:

      【解决方案2】:

      更新:

      您可能应该使用GoogleMap::setOnCircleClickListener

      旧答案:

      对于 Circles 应该很简单:使用 OnMapClickListener 和此代码:

      void onMapClick(LatLng position) {
      
          LatLng center = circle.getCenter();
          double radius = circle.getRadius();
          float[] distance = new float[1];
          Location.distanceBetween(position.latitude, position.longitude, center.latitude, center.longitude, distance);
          boolean clicked = distance[0] < radius;
      
      }
      

      如果你有更多的圆圈,你当然可以迭代它们。

      对于其他人,您必须自己进行代码检查。 Polygon的算法在网上不难找到。

      【讨论】:

      • 好吧,我今晚试试。是的,我将遍历多个圈子。
      • @HarshadMadaye 您可能看不到它们下方的地图。无论如何,您可以查看我的更新答案。
      • @MaciejGórski 我使用 mMap.setOnCircleClickListener 解决了我的问题,我在谷歌文档中找到了它,我让我的圈子 50% 透明,所以地图也是可见的。感谢兄弟的回复。
      【解决方案3】:

      这很简单 - mMap.setOnCircleClickListener(this);

      【讨论】:

        猜你喜欢
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多