0

我正在编写一个 android 应用程序,用户将使用网络位置使用粗略的位置进行地理定位。我希望用户能够将特定时间的位置保存到数据库(savedLocation)中,然后如果用户返回到savedLocation,(或者在该位置的粗略范围内,因为我正在起诉网络位置)我想要发射到广播接收器。我非常清楚如何将用户的位置保存到数据库中,并将其与当前位置等进行比较等。

然而,鉴于网络位置是一种相对不准确的确定位置的方法,确定用户何时接近该已保存位置的距离 X 内时,什么是一种好的方法。

4

1 回答 1

1

从您的问题中了解到,您正在跟踪用户的位置并将该位置保存到数据库中。现在您想在用户到达之前的位置时提示用户,但应该有一个特定的区域。如果是这样,那么您可以使用以下代码从纬度和经度了解用户所在的区域。

String latitude1, latitude2, longitude1, longitude2;
//Now Suppose you have some values in this variables. 
//In your case latitude1 and longitude1 is from database and latitude2 and longitude2 is from current Location.
float radius = 500; //Distance in meters

Location location1 = new Location("GPS");
location1.setLatitude(latitude1);
location1.setLongitude(longitude1);

Location location2 = new Location("GPS");
location2.setLatitude(latitude2);
location2.setLongitude(longitude2);

Float distance = location1.distanceTo(location2);
distance = Math.abs(distance);

//Here you can compare two distances 1. distance and 2. radius
if(distance <= radius) {
//Use is in a 500 meters radius. You can notify user by notification
}
于 2012-04-16T05:58:14.990 回答