[英]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.