在我的应用程序中,我使用位置管理器来获取经度和纬度。但是,将“连接”漫游到地图位置时,不会立即与最近的位置“连接”。有时它在工作之前最多需要重启五次。其他时候需要更多。
这是我正在做的事情,
LocationManager locationManager;
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
String provider = LocationManager.GPS_PROVIDER;
Location location =locationManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
myLocationManager = (LocationManager)getSystemService(
Context.LOCATION_SERVICE);
myLocationListener = new MyLocationListener();
myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,myLocationListener);
在onLocationChanged
double Lat = argLocation.getLatitude();
double Long = argLocation.getLongitude();
Longitude = Double.toString(Long);
Latitude = Double.toString(Lat);
我做错了什么?
答案 0 :(得分:0)
我注意到你正在使用GPS提供商,在某些情况下需要更长时间才能找到自己。我建议使用网络提供商的初始位置:
Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
我用这个初始值得到了相当精确的结果,它是一个很好的起点,同时用户继续使用应用程序,同时在后台进程中可以获得更好的结果。 This guide提供了一些有用的最佳做法。