我正在使用以下代码获取纬度和经度。始终依赖网络提供商可以吗?
public static String getLatitudeLongitudeString() {
LocationManager lm = (LocationManager) GlobalApplication
.getAppContext().getSystemService(Context.LOCATION_SERVICE);
Location location = lm
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location == null) {
return "";
} else {
Geocoder geocoder = new Geocoder(GlobalApplication.getAppContext());
try {
List<Address> user = geocoder.getFromLocation(
location.getLatitude(), location.getLongitude(), 1);
double lat = (double) user.get(0).getLatitude();
double lng = (double) user.get(0).getLongitude();
return lat + "," + lng;
} catch (Exception e) {
Trace.e("Failed to get latitude and longitude", e);
return "";
}
}
}
最佳答案
老实说,它“取决于”。但我会说评论this article并找出选项的最佳组合是什么。您可能希望被动提供程序 (Froyo+) 从其他应用程序捕获一些 GPS 更新……也取决于您使用它的目的。如果它是一个 map 应用程序,那么您需要 GPS,但如果它只是用于“您在旧金山”类型的文本,那么不太准确就可以了...
关于java - 从网络读取经纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11552008/