2017-03-09 25 views
-1

場所が選択されたときに完全な住所を取得したいと考えています。ここに私のシナリオの例があります。私はUttaraを選択すると、私は()place.getNameを適用した場合Google PlaceAutoCompleteのフラグメントから完全な住所を取得するにはどうすればよいですか?

enter image description here

は、私だけUttaraを取得します。 place.getAddress()を適用すると、バングラデシュのUttaraしか取得できません。どのように私はUttara、Dhaka、Dhaka Division、Bangladeshを手に入れることができますか?これだけすることはできplace.getAddess()

PlaceAutocompleteFragment places= (PlaceAutocompleteFragment) 
       getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment_pick); 
     LinearLayout ll = (LinearLayout) places.getView().findViewById(R.id.place_autocomplete_fragment_pick); 
     ll.setPadding(-7,-7,-7,-7); 
     etPickPlace = (EditText)places.getView().findViewById(R.id.place_autocomplete_search_input); 
     etPickPlace.setTextColor(getResources().getColor(R.color.colorPrimaryDark)); 
     etPickPlace.setTextSize(18.0f); 
     AutocompleteFilter typeFilter = new AutocompleteFilter.Builder() 
       .setCountry("BD") 
       .build(); 

     places.setFilter(typeFilter); 
     places.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
      @Override 
      public void onPlaceSelected(Place place) { 
       //Here I want to get the full pick up address 
       pickAddress = place.getAddress().toString(); 
       // Toast.makeText(getApplicationContext(),place.getName(),Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onError(Status status) { 
       Toast.makeText(getApplicationContext(),status.toString(), Toast.LENGTH_SHORT).show(); 

      } 

     }); 

答えて

3

は、ここに私のコードスニペットです.....みんなを助けてください。完全なアドレスとより正確なものが必要な場合は、GeoCode APIを実装する必要があります。

次のクラスは、渡された緯度および経度座標のアドレスを取得するための逆ジオコーディングのキー要素です。私たちは、入力したコードは、ここで逆ジオコーディングのためのジオコーダのGoogle APIのアクセスおよびその他すべての通り、都市、ピン/郵便番号のようなアドレスのラインと

LocationAddress.javaこれを達成するために役立ちます

public class LocationAddress { 

private static final String TAG = "LocationAddress"; 
public static void getAddressFromLocation(final double latitude, final double longitude, 
              final Context context, final Handler handler) { 
    Thread thread = new Thread() { 
     @Override 
     public void run() { 
      Geocoder geocoder = new Geocoder(context, Locale.getDefault()); 
      String result = null; 
      try { 
       List<Address> addressList = geocoder.getFromLocation(
         latitude, longitude, 1); 
       if (addressList != null && addressList.size() > 0) { 
        Address address = addressList.get(0); 
        StringBuilder sb = new StringBuilder(); 
        for (int i = 0; i < address.getMaxAddressLineIndex(); i++) { 
         sb.append(address.getAddressLine(i)).append("\n"); 
        } 
        sb.append(address.getLocality()).append("\n"); 
        sb.append(address.getPostalCode()).append("\n"); 
        sb.append(address.getCountryName()); 
        result = sb.toString(); 
       } 
      } catch (IOException e) { 
       Log.e(TAG, "Unable connect to Geocoder", e); 
      } finally { 
       Message message = Message.obtain(); 
       message.setTarget(handler); 
       if (result != null) { 
        message.what = 1; 
        Bundle bundle = new Bundle(); 
        result = "Latitude: " + latitude + " Longitude: " + longitude + 
          "\n\nAddress:\n" + result; 
        bundle.putString("address", result); 
        message.setData(bundle); 
       } else { 
        message.what = 1; 
        Bundle bundle = new Bundle(); 
        result = "Latitude: " + latitude + " Longitude: " + longitude + 
          "\n Unable to get address for this lat-long."; 
        bundle.putString("address", result); 
        message.setData(bundle); 
       } 
       message.sendToTarget(); 
      } 
     } 
    }; 
    thread.start(); 
} 
} 

希望を取得しますあなたの要件。あなたの参考のために

Click Here

コーディングハッピー!

+0

ありがとうございました。しかし、私は、場所オートコンプリートフラグメントからのアドレスが欲しいです。ここには - https://developers.google.com/places/android-api/autocomplete – tahsinRupam

+2

期待どおりの結果が得られるように、同じページで「場所の予測をプログラムによって取得する」をしっかりチェックします。あなたが解決策を見つけることを望みます。 –

+0

私は前にそれらの手順を見てきましたが、今私は全く新しいビジョンでこれを見ています!感謝の男、私は間違いなく私は望む結果を得るまで、さまざまな組み合わせを試してみます。 – tahsinRupam

関連する問題