如何根据android中的当前位置查找最近的1000米经纬度,以从sql lit数据库中获取最近的位置
问问题
506 次
3 回答
2
我不知道您为什么要使用手机数据库来存储您的所有位置。使用服务器端更安全。假设您的数据库表中保存了纬度和经度,则仅在查询中需要修改。以下是解决我的问题的 SQL 查询:
"SELECT * FROM places WHERE (acos(sin(places.lat * 0.0175) * sin($userLat * 0.0175) + cos(places.lat * 0.0175) * cos($userLat * 0.0175) * cos(($userLon * 0.0175) - (places.lon * 0.0175))) * 3959 <= $locateRadius)"
//userLat and userLon refer to your current location
于 2015-06-16T18:19:16.470 回答
0
我不知道您说“sql lite 数据库”是什么意思,因为当前位置不应存储在手机上的任何数据库中,除非您将其明确存储在其他应用程序中。
这应该在您的主要活动中:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationlistener = new mylocationlistener();
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationlistener);
...
private class mylocationlistener implements LocationListener{
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Log.d("latitude", location.getLatitude());
Log.d("longitude", location.getLongitude());
}
}
}
于 2012-09-05T04:39:27.717 回答
0
于 2012-09-05T04:44:10.867 回答