2017-07-12 20 views
0

我正在構建一個應用程序,該應用程序使用lat long向Toast顯示當前地址。我使用地理編碼器將緯度轉換爲地址,但情況是,在某些設備上地址工作正常,但在某些設備中它的崩潰。然後,我調試那些崩潰的設備上的應用程序,我發現在地理編碼器行之後,它跳轉到捕獲(Exception),而不執行其他行。 那麼,有沒有其他方式可以通過lat獲得位置。如何從lat中獲取地址,而不是使用地理編碼器

還有另外一個問題有同樣的問題here,但是這並沒有給出太多的解決方案,所以我再次問它。

我的地理編碼塊

if (mLastLocation != null) { 
     double latitude = mLastLocation.getLatitude(); 
     double longitude = mLastLocation.getLongitude(); 
     try { 
      geocoder = new Geocoder(this, Locale.getDefault()); 
      addresses = geocoder.getFromLocation(latitude,longitude,1); 
      if (addresses != null && addresses.size() > 0){ 
       String address = addresses.get(0).getAddressLine(0); 
       String city = addresses.get(0).getLocality(); 
       String state = addresses.get(0).getAdminArea(); 
       String country = addresses.get(0).getCountryName(); 
       String postalCode = addresses.get(0).getPostalCode(); 
       Toast.makeText(getApplicationContext(), "Your address is: " +address+ " "+city+ " " + state+ "\n" +country+ " "+ postalCode, Toast.LENGTH_LONG).show(); 
      } 

     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
+0

請參閱此鏈接https://stackoverflow.com/questions/45004239/is-there-any-way-to-get-city-name-for-google-place-picker-android/45004308?noredirect=1#評論76989519_45004308 –

+0

謝謝@NancyY,但我認爲你使用了相同的代碼,但是我會試一試。 – Neck

+0

在那個鏈接中,我還添加了一個備用解決方案,您可以嘗試 –

回答

1

你可以簡單的打穀歌,地圖Web服務傳遞的經度和緯度。它只是一個GET-Method網絡服務。

http://maps.googleapis.com/maps/api/geocode/json?latlng=32,75&sensor=true

更換lat和長用自己的經緯度&長。

+0

Geocoder不工作的真正原因是因爲NetworkLocator在行動中喪生。可能是由於內存不足,或者您使用任務管理器來終止所有服務? –

+0

謝謝男人,會試試看.. – Neck

相關問題