2015-12-01 17 views
8

Tôi muốn nhận kết quả tìm kiếm cho một quốc gia cụ thể. Tôi đã cố gắng thiết lập Latitude và kinh độ, nhưng nó có thể bao gồm các kết quả của các nước khác gần quốc gia yêu cầu!Làm cách nào để nhận được kết quả cụ thể theo quốc gia trong API Google Địa điểm dành cho Tự động hoàn thành trong Android?

Tôi đã thấy các câu hỏi khác đề xuất để vượt qua &components=country:COUNTRY_NAME trong URL yêu cầu (Tôi đã xem nó here). Nhưng tôi muốn chuyển yêu cầu từ API Google Địa điểm.

Tôi đang sử dụng phương pháp sau đây:

Places.GeoDataApi.getAutocompletePredictions (mGoogleApiClient, constraint.toString(), mBounds, mPlaceFilter);

Nhưng tôi không thể tìm thấy cách nào để chuyển tên quốc gia để nhận kết quả cho quốc gia cụ thể. (Tôi đã thử truyền tên quốc gia trong URL yêu cầu và nó đang hoạt động.) Nhưng làm thế nào để đạt được điều tương tự bằng cách sử dụng phương pháp Places.GeoDataApi.getAutocompletePredictions()?

Hoặc có cách nào khác để đạt được điều này mà không gửi tên quốc gia trong URL yêu cầu không?

Trả lời

13
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder(). 
        setTypeFilter(Place.TYPE_COUNTRY).setCountry("IN").build(); 

Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) 
          .setFilter(typeFilter) 
          .build(this); 
+4

setCountry đang hoạt động. Chỉ điều mà nó yêu cầu com.google.android.gms: play-services-places: 9.6.1. Kiểm tra https://developers.google.com/android/guides/releases –

0

Có 2 cách bạn có thể thực hiện việc này.

  1. Sử dụng dấu gạch ngang cho quốc gia của bạn để hạn chế kết quả. (Nhưng đây sẽ là giới hạn hình chữ nhật.

2 Bạn nên sử dụng api dịch vụ web. nó cũng hoạt động với android.

http://codetheory.in/google-place-api-autocomplete-service-in-android-application/

Bạn có thể sử dụng các loại địa chỉ và các thành phần địa chỉ để giới hạn kết quả sử dụng API này trong cách mà bạn mong muốn:

https://developers.google.com/maps/documentation/geocoding/intro#Types

+2

Xin chào @shreyas, tôi đã thử cả hai. Nhưng tôi muốn chuyển nó từ Google API. Tôi muốn nó bởi vì tôi muốn hiển thị phản ứng nhanh của người dùng trong AutoCompleteTextView trong khi trong JSON đầu tiên tôi cần phải tìm dữ liệu từ JSON và sau đó hiển thị nó dưới dạng danh sách. Vì vậy, lựa chọn tốt hơn cho tôi là sử dụng Google API. Vậy có cách nào để làm điều đó mà không cần sử dụng Dịch vụ Web không? –

2

Với javascript bạn có thể sử dụng hạn chế phần như dưới đây mã, cố gắng viết lại cho Android:

var options = { 
    // bounds : boundsByCity, 
    types: ["geocode"], 
    componentRestrictions: { country: "IN" } 
}; 

//Create the search box and link it to the UI element 
var input = document.getElementById('pac-input'); 
var temp = new google.maps.places.Autocomplete(input, options); 
+4

Câu trả lời của bạn không cung cấp thông tin để thực hiện điều này trong android. Vui lòng đăng mã liên quan đến android vì câu hỏi này đề cập đến nó. –

+0

@those người upvoted câu trả lời này: làm thế nào bạn đã thực hiện nó trong java? – lukle

4

Loại bộ sưu tập (regions) chỉ thị Places dịch vụ để trở kết quả nào phù hợp với các loại sau đây:

  • địa phương
  • sublocality
  • postal_code
  • nước
  • administrative_area_level_1
  • administrative_area_level_2

The (vùng) loại bộ sưu tập không được hỗ trợ trong Google Places API for Android.

tham khảo từ: Cẩm nang của Google Place Types.

Nếu bạn muốn thực hiện điều này,

  • Sử dụng LatLng giới hạn với khu vực cụ thể của đất nước của bạn được xác định bởi độ và vĩ độ để hạn chế các kết quả.

  • Bạn cũng có thể sử dụng Google Địa điểm Web Service.

mẫu: Đối với việc hạn chế nước bạn thông qua dịch vụ Web, hiển thị kết quả của đất nước Ấn Độ.

URL: https://maps.googleapis.com/maps/api/place/autocomplete/json?key=AIzaSyCkvow9LlFNOywy8lzaekn-xROBZRsSFvU&input=a&types=(cities)&components=country:ind

Lưu ý:Nếu bạn muốn áp dụng bộ lọc country API Google Places, không may bạn phải sử dụng WebService như của bây giờ có được không Lọc/Phương pháp có sẵn trong API Android để hạn chế theo quốc gia (không bao gồm Giới hạn LatLng).

+1

Làm cách nào để áp dụng bộ lọc thành phố? –

Các vấn đề liên quan