0

我正在编写一个利用 parse 进行云数据存储的应用程序。最近有人告诉我,我写这篇文章的人正在打开第二个位置,并且想知道用户正在哪个位置签入/记录数据。我在以下位置找到了谷歌代码:http: //developer.android.com/training/location/geofencing.html

它定义了如何使用地理围栏,以及如何获取最后一个已知的 gps/网络位置。
http://developer.android.com/guide/topics/location/strategies.html

但我不知道其中任何一个是否是我需要的。基本上我正在尝试执行以下操作:

  1. 用户启动应用
  2. 用户单击“签到”以签到健身房的课程
  3. 当“签入”活动加载时,用户可以单击一个类。在这个时间点,我想知道用户是否说......在中央纬度/经度的 5 英里内。这两个地点相距约 20 英里,因此粗略估计将它们放在几英里内应该没问题(它们在桑尼维尔还是圣何塞?)
  4. 当用户点击一个班级时,签到被发送到 Parse 数据库,连同位置(一个城市或另一个城市)

我不确定地理围栏是否适合这种情况,因为我只需要从一个点知道粗略区域..但是获取样本的基本位置似乎没有显示如何检查手机何时靠近某个点。

至此,我发现以下内容: http ://www.javacodegeeks.com/2011/01/android-proximity-alerts-tutorial.html

这似乎是最好的选择,除了它不断检查与设定点的“距离”,我需要告诉用户是否靠近一个或其他位置。

4

1 回答 1

2

可能是这样的:

Location me   = new Location("");
Location dest = new Location("");

me.setLatitude(myLat);
me.setLongitude(myLong);

dest.setLatitude(destLat);
dest.setLongitude(destLong);

float dist = me.distanceTo(dest);

然后,您可以重复第二个位置并存储两个距离,然后比较以查看最小的距离。

于 2013-07-18T20:03:31.507 回答