Android Java谷歌地图api v2 ::如何在Google Maps android api v2上用标记检查圆内 [英] Android Java google maps api v2:: how check with markers are within a circle on google maps android api v2

查看:103
本文介绍了Android Java谷歌地图api v2 ::如何在Google Maps android api v2上用标记检查圆内的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何检查圆形半径内是否存在标记,以及如何仅启用圆形区域内存在的标记?

How to check if markers are present within radius of circle and how to enable only those marker which are present under the area of circle?

单击标记后,我使用了圆选项在地图上创建了圆.我只希望圆圈内的那些标记可见.

I used circle option to create circle on map on click of marker. I just want only those markers visible which are inside the circle.

$$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;
    }
});

推荐答案

应该很容易.您的圆具有点和半径值.计算每个点到圆心的距离.谁的距离小于半径,它们在您的圆中,其余不在.这是查找两个latlng之间的距离的代码.

It should be pretty easy. Your circle has a latlng point and radius value. Calculate distance of each point from the circle center. Whose distance is less than the radius, they are in your circle and remaining are not. Here is the code to find distance between two latlngs.

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列表.

You should have list of latlngs that you used earlier to add markers to map.

这篇关于Android Java谷歌地图api v2 ::如何在Google Maps android api v2上用标记检查圆内的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆