簡體   English   中英

Android Java 谷歌地圖 api v2 :: 如何檢查標記在谷歌地圖上的圓圈內 android api v2

[英]Android Java google maps api v2:: how check with markers are within a circle on google maps android api v2

如何檢查圓半徑內是否存在標記以及如何僅啟用圓區域下存在的那些標記?

我使用圓選項在點擊標記時在地圖上創建圓。 我只想要圓圈內的那些標記可見。

$$mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        CircleOptions circle = new CircleOptions();
        circle.center(latLng).fillColor(Color.LTGRAY).radius(1000);
        mMap.addCircle(circle);
        // circle.`enter code here`
        return true;
    }
});

這應該很容易。 你的圓有一個緯度點和半徑值。 計算每個點到圓心的距離。 誰的距離小於半徑,他們在你的圈子里,剩下的不在你的圈子里。 這是查找兩個緯度之間距離的代碼。

private double distance(double lat1, double lon1, double lat2, double lon2) {
      double theta = lon1 - lon2;
      double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
      dist = Math.acos(dist);
      dist = rad2deg(dist);
      dist = dist * 60 * 1.1515;
       return (dist);
    }

   private double deg2rad(double deg) {
      return (deg * Math.PI / 180.0);
    }
   private double rad2deg(double rad) {
      return (rad * 180.0 / Math.PI);
    }

您應該擁有之前用於向地圖添加標記的 latlng 列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM