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



如何根据android中的当前位置找到最近的1000米经纬度,以从sql-lit数据库中获得最近的位置

我不知道你为什么要使用手机数据库来存储你的所有位置。使用服务器端更安全。假设数据库表中保存了纬度和经度,则只需要在查询中进行修改。下面是一个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

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

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

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

我不知道你说"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());                
        }               
    }
}

最新更新