检查用户是不是在半径范围内
Posted
技术标签:
【中文标题】检查用户是不是在半径范围内【英文标题】:Check if user is within a radius检查用户是否在半径范围内 【发布时间】:2015-07-27 18:30:14 【问题描述】:我正在制作一个地图应用程序,我希望用户在地图上放置一个标记,从对话框片段中选择半径。如何检查用户是否存在于该圆形区域内。我想从用户那里获取半径输入,然后检查。
【问题讨论】:
欢迎您! :-) 你尝试了什么?能否请您添加相关代码? 看看这个:***.com/questions/30431230/… 这个:***.com/questions/30170271/… 【参考方案1】:您可以计算用户点到中心的距离。如果小于半径,则用户在半径内。
A - 点,B - 中心,R - 半径
如果距离(A,B)
可能 android SDK 有内置的方法可以做到这一点。
【讨论】:
【参考方案2】: 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函数中..!!
【讨论】:
以上是关于检查用户是不是在半径范围内的主要内容,如果未能解决你的问题,请参考以下文章