如何根据android中的当前位置找到最近的1000米纬度和经度从sql lit数据库到最近的地方
答案 0 :(得分: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
答案 1 :(得分: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());
}
}
}
答案 2 :(得分:0)