1

我正在使用以下代码来获取纬度和经度。总是依赖网络提供商可以吗?

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 "";
        }
    }
}
4

2 回答 2

1

老实说,它“取决于”。但我想说查看这篇文章并找出选项的最佳组合是什么。您可能希望被动提供程序 (Froyo+) 从其他应用程序中获取一些 GPS 更新...还取决于您使用它的目的。如果它是一个地图应用程序,那么你需要 GPS,但如果它只是用于“你在旧金山”类型的文本,那么不太准确就可以了……

于 2012-07-19T00:40:22.587 回答
0

正如 Salil 在您的用例中提到的那样,这取决于您的用例。换句话说,它将归结为您需要的位置详细信息的粒度。例如,如果您要编写一个天气应用程序,那么在大多数情况下,了解城市就足够了。如果您希望在用户移动时更新地图,那么您将需要精确的位置,最好由 GPS 提供商提供。

于 2012-07-19T03:12:15.030 回答