检查用户是否在半径范围内

时间:2015-07-27 18:30:15

标签: android google-maps google-maps-markers

我正在制作地图应用程序,我希望用户在地图上放置标记,从对话框片段中选择半径。如何检查用户是否在该循环区域内。我想从用户那里获取半径输入,然后检查。

2 个答案:

答案 0 :(得分:0)

您可以计算用户点与中心之间的距离..如果它小于半径,则用户在半径范围内。

A - Point,B - Center,R - Radius

如果距离(A,B)< = R则用户在半径范围内。

Android SDK可能有内置的方法来实现这一目标。

答案 1 :(得分:0)

 float[] Check_distance = new float[2];//variable to take distance from our location to center of crcle
        String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());

        Location.distanceBetween(starting point latitude, starting point longitude,
               ending point latitude, ending point longitude, Check_distance);

 if( Check_distance[0] > (double)circ_rad){//circ_rad is the radius of the circle
                String status=user+"went outside GeoFence at: "+currentDateTimeString;
                addNotification(status);
                try {
                    connection.publish("iotm/tracking",status.getBytes(),QoS.AT_LEAST_ONCE, false);
                } catch (Exception e) {
                    e.printStackTrace();
                }

            } else {
                String status=user+" is inside GeoFence at time :"+currentDateTimeString;

                try {
                    connection.publish("iotm/tracking",status.getBytes(),QoS.AT_LEAST_ONCE, false);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

将上述代码放入onLocationchanged函数.. !!