2017-07-10 72 views
1

我想從Google地方選擇器中獲取城市名稱。有什麼方法可以使用地點選擇器API獲取城市名稱。我知道我們不能簡單地通過將place.getCity();從API中獲得以下是我的代碼。有沒有什麼辦法可以讓Google地方選取器獲取城市名稱android

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     if(requestCode == REQUEST_PLACE_PICKER){ 

      if(resultCode==RESULT_OK){ 

       Place place = PlacePicker.getPlace(data,this); 

       final CharSequence name = place.getName(); 
       final CharSequence address = place.getAddress(); 
       final CharSequence phone = place.getPhoneNumber(); 
       final String placeId = place.getId(); 
       final LatLng latLng = place.getLatLng(); 

       if(place.getLocale() != null) { 
        String aname = place.getLocale().toString(); 
        areaname.setText(aname); 
       } 

       location.setText(address); 
       gname.setText(name); 
       latlon.setText(String.valueOf(latLng)); 

      } 
     } 
    } 

我不想在城市中有任何空值。我讀Geocoder會給大多爲空值。

回答

3

嘗試使用地理編碼

final Place place = PlacePicker.getPlace(this,data); 
Geocoder geocoder = new Geocoder(this); 
try 
{ 
    List<Address> addresses = geocoder.getFromLocation(place.getLatLng().latitude,place.getLatLng().longitude, 1); 
    String address = addresses.get(0).getAddressLine(0); 
    String city = addresses.get(0).getAddressLine(1); 
    //String country = addresses.get(0).getAddressLine(2); 

} catch (IOException e) 
{ 

    e.printStackTrace(); 
} 

你也可以嘗試調用Web服務並解析JSON結果得到的城市。 只需通過在下面的url中從placepicker獲得的lat/lng即可。 在結果administrative_area_level_2代表城市

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

+0

誤差變化地址類型的java.util.List

+0

看看你有沒有正確導入地址類 –

+0

進口爪哇。 util.List; –

相關問題