如何根据android中的当前位置找到最近的100米纬度和经度

时间:2012-09-05 04:32:01

标签: android

如何根据android中的当前位置找到最近的1000米纬度和经度从sql lit数据库到最近的地方

3 个答案:

答案 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)

实际上,我猜你的问题更多是关于算法的,对吗?

本文档描述了几何近似的数据结构和算法,可能对您有所帮助。

https://www.box.com/s/7lomb99vsmjsh77ud4eh