2012-07-18 149 views
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 ""; 
     } 
    } 
} 

回答

1

老實說它「依賴」。但我會說審查this article並找出選項的最佳組合。您可能需要一個被動提供商(Froyo +)從其他應用程序捕獲一些GPS更新......也取決於您使用的是哪個。如果它的地圖應用程序,那麼你想要的GPS,但如果它只是爲「你在舊金山」類型的文字,那麼準確性就不錯了...

+0

文章真的很有見地。 – ssk 2012-07-21 22:08:17

+0

很高興我能幫忙:) – 2012-07-22 18:28:23

0

它取決於Salil在你的用例中提到。換句話說,它將歸結爲您需要的位置詳細信息的粒度。例如,如果您要編寫天氣應用程序,那麼在大多數情況下,瞭解城市就足夠了。如果您正在尋找隨着用戶移動而更新地圖,那麼您將需要很好的位置,最好由GPS提供商提供。