2015-10-26 14 views
16

Amacım, Google Rehber Android API'sinin Otomatik Tamamlama sonuçlarını yalnızca belirli bir ülkeye (ABD) sınırlamaktır.Otomatik Tamamlama aramasını Google Rehber'deki belirli bir ülkeyle sınırla Android API

Aşağıdaki API kullanıyorum: LatLngBounds bu işi yapmak gerekiyordu gibi

 PendingResult<AutocompletePredictionBuffer> results = 
       Places.GeoDataApi 
         .getAutocompletePredictions(mGoogleApiClient, constraint.toString(), 
           mBounds, mPlaceFilter); 

görünüyor.

  1. Evet ise, o zaman LatLngBounds for United States değerleri nedir?

  2. LatLngBounds'u bir ülke için almak için hangi kaynağı kullandınız?

  3. LatLngBounds bir rectange - yani sonuçta başka ülkeleri de içerebilir. Buna ne dersin?

  4. Bunu yapmanın daha iyi bir yolu var mı? iki LatLng alır yani sınır güneybatı diğeri değerleri ve diğer sınır kuzeydoğu konumu ve dikdörtgenin diğer iki puan

    LatLngBounds (LatLng southwest, LatLng northeast) 
    

    :

cevap

5

LatLngBounds yapıcı yöntemi tanımı aşağıda benziyor önemsiz olarak hesaplanır.

If yes, then what are the values of LatLngBounds for United States? 

benim kaba tahminim ben olursam yanlış, güneybatı EnlBoy değerler 32,6393, -117,004304 olurdu değil ve kuzeydoğu EnlBoy değerleri 44,901184, ABD için -67,32254 olacaktır.

Which source did you use to get LatLngBounds for a country? 

Genellikle gerekli yerlerde işaretleyici koyarak bu EnlBoy parametrelerini kontrol etmek için http://www.findlatitudeandlongitude.com/ kullanın.

LatLngBounds is a rectange - so it can include other countries in the result as well. What about that? 

Evet, yukarıdaki sınırlar tamamen dikdörtgen olurdu doğru ve sınırları kullanarak sadece ABD'ye sonuçları kısıtlamak için mümkün değildir.
Bunun nedeni, dikdörtgenin [sınırlar] yapacağı iki Latlng noktası [SE & NW] kullanılarak hesaplanacağından ve diğer iki noktanın önemsiz olarak hesaplanacağıdır.

Is there a better way to do it? 

Evet, bu kullanarak sonuçları kısıtlamak için adres türlerini ve adres bileşenlerini kullanabilirsiniz .. API nasıl kullanılacağını
http://codetheory.in/google-place-api-autocomplete-service-in-android-application/

Google Rehber Web Servis API instead.Below öğretici açıklar kullanabilirsiniz API İstediğiniz Şekilde: https://developers.google.com/maps/documentation/geocoding/intro#Types Linkte belirtilen türleri kullanarak ülke, bölge ve diğer çeşitli türlere göre kısıtlama yapabilirsiniz.

Umut eder!

P.S: Birisi belirli bir ülkeye Play Hizmetleri API'sinde Sınırları kullanmayı kısıtlayabilecekse, gerçekten harika olurdu!

+0

Teşekkür ederiz! Web Hizmeti API'si çalışır. –

+0

Serin! Mutlu Kodlama :) – Droidwala

+0

@ K.K sorununun cevabı olarak kaldırılmasının bir nedeni var mı? – Droidwala

16

Google Play Services v9.6'dan itibaren, otomatik tamamlama önerilerinize bir ülke filtresi ayarlayabilirsiniz. Play Hizmetleri sürümü Sen kullanarak ülke kodlarını değiştirebilir

AutocompleteFilter autocompleteFilter = new AutocompleteFilter.Builder() 
          .setTypeFilter(Place.TYPE_COUNTRY) 
          .setCountry("US") 
          .build(); 
Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) 
            .setFilter(autocompleteFilter) 
            .build(this); 

en az v9.6 olduğundan emin olun onların ISO 'Aplha 2' Codes

6

Eğer PlaceAutocompleteFragmentkullanırken böyle ayarlayabilirsiniz ise:

AutocompleteFilter autocompleteFilter = new AutocompleteFilter.Builder() 
         .setTypeFilter(Place.TYPE_COUNTRY) 
         .setCountry("US") 
         .build(); 

mAutocompleteFragment.setFilter(autocompleteFilter); 
İlgili konular