我正在制作地图应用程序,我希望用户在地图上放置标记,从对话框片段中选择半径。如何检查用户是否在该循环区域内。我想从用户那里获取半径输入,然后检查。
答案 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函数.. !!