8

Obecnie używam podanego kodu, ale ogranicza to tylko sugestie do jednego kraju. Widziałem jedną implementację, ale jej przy użyciu jQuery i chcę to zrobić bez użycia jQuery.Jak mogę ograniczyć autouzupełnianie Biblioteki Miejsc Google Maps do sugestii tylko jednego miasta?

var input = document.getElementById('searchTextField'); 
var options = { 
    //types: ['(cities)'], 
    componentRestrictions: { country: 'pk' } 
}; 
var autocomplete = new google.maps.places.Autocomplete(input, options); 

Odpowiedz

17

spróbuj dodać właściwość bounds do obiektu options jesteś przechodzącej do konstruktora Autocomplete, jak pokazano w tym kodzie:

var southWest = new google.maps.LatLng(25.341233, 68.289986); 
var northEast = new google.maps.LatLng(25.450715, 68.428345); 
var hyderabadBounds = new google.maps.LatLngBounds(southWest, northEast); 

var options = { 
    bounds: hyderabadBounds, 
    types: ['establishment [or whatever fits your usage]'], 
    componentRestrictions: { country: 'pk' } 
}; 

Jeśli chcesz, Autocomplete granice, aby były napędzane przez bieżącej rzutni mapy, można powiązać granice mapie do Autocomplete ten sposób:

autocomplete.bindTo('bounds', map); 

lub, jeśli to działa lepiej w aplikacji, masz również możliwość ustalenia granic wyraźnie razie potrzeby:

autocomplete.setBounds(someOtherBounds); 

To może oznaczać, że należy utworzyć domyślną miasto, jak ja z Hyberabad w powyższym przykładzie . Możesz też pozwolić użytkownikom wybrać z listy miast, aby rozpocząć, a następnie ustawić rzutnię mapy do wybranego miasta. Autocomplete zasugeruje nazwy miast, jeśli zaczynasz z tylko componentRestrictions z country 'PK', jak już robisz. Będziesz wiedział, co najlepiej sprawdza się w twojej aplikacji.

Wreszcie, to nie całkowicie i całkowicie ogranicza Autocomplete tylko do miasta, ale osiągnie wynik, który chcesz tak ściśle, jak to możliwe obecnie.

+0

http://hittheroad.ie/ umożliwia autouzupełnianie tylko w Irlandii i nie ma innych sugestii. jak to jest możliwe? – ihimv

+0

Przepraszamy za to głupie pytanie, ale jak znaleźć granice dla określonego miasta w danym kraju? –

+0

@SiddharthAjmera: To nie jest głupie, ale uzyskasz lepsze wyniki, jeśli: otworzysz nowe pytanie, podasz więcej szczegółów na temat tego, co dokładnie chcesz osiągnąć, podasz przykład obecnego kodu i wyjaśnisz, dlaczego ten kod nie działa . –

2

Znalazłem niesamowite przykłady ograniczania lub ograniczania wyników wyszukiwania według kraju przy użyciu klasy Autocomplete, tj. Istnieje metoda o nazwie setComponentRestrictions, która pozwala ustawić kraj (właściwość), znaleziony tutaj -https: //developers.google. pl/maps/documentation/javascript/reference # ComponentRestrictions

Zobacz przykłady https://code.google.com/p/gmaps-samples-v3/source/browse/trunk/places/2012-may-hangout/autocomplete.html?r=290.

Powiązane problemy