2017-07-10 5 views
1

Googleプレイスピッカーから都市名を取得しようとしています。場所選択APIを使用して都市名を取得できる方法はありますか。私は単にAPIからそれを得ることができないことを知っているplace.getCity();以下は私のコードです。Googleプレイスピッカーのアンドロイドの都市名を取得する方法はありますか

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)); 

      } 
     } 
    } 

私は都市でnull値を必要としません。私はGeocoderがほとんどnull値を与えると読んでいます。

答えて

3

はまた、あなたのWebサービスを呼び出して、街を取得するには、JSONの結果を解析しようとすることができますジオコーダ

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(); 
} 

を使用してみてください。 placepickerから取得した緯度/経度を下のURLに渡すだけです。結果administrative_area_level_2で は都市

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

+0

エラー変更アドレスの種類を表しjava.util.Listにする

+0

あなたは正しくAddressクラス –

+0

インポートのjavaをインポートした場合を参照してください。 util.List; –

関連する問題