8

Ich verwende derzeit den angegebenen Code, aber dies beschränkt nur die Vorschläge auf ein Land. Ich habe eine Implementierung gesehen, aber es verwendet jQuery und ich möchte es tun, ohne jQuery zu verwenden.Wie kann ich die automatische Vervollständigung der Google Maps Places-Bibliothek auf Vorschläge beschränken, die nur für eine Stadt gelten?

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

Antwort

17

Versuchen das Hinzufügen einer bounds Eigenschaft zum options Objekt, das Sie an den Autocomplete Konstruktor werden, wie in diesem Code gezeigt:

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' } 
}; 

Wenn Sie die Autocomplete Grenzen wollen durch das aktuelle Ansichtsfenster angesteuert werden von der Karte können Sie die Grenzen der Karte, um die Autocomplete auf diese Weise binden:

autocomplete.bindTo('bounds', map); 

Oder, wenn es besser in der Anwendung funktioniert, können Sie auch die Möglichkeit haben, die Grenzen explizit festlegen, wann immer notwendig:

autocomplete.setBounds(someOtherBounds); 

Dies, dass Sie eine Standard-Stadt schaffen kann bedeuten, wie ich oben mit Hyberabad im Beispiel tat . Oder Sie erlauben Ihren Benutzern, aus einer Liste von zu startenden Städten auszuwählen und dann das Karten-Ansichtsfenster auf die ausgewählte Stadt zu setzen. Die Autocomplete wird Städtenamen vorschlagen, wenn Sie mit nur der componentRestrictions von country 'PK' starten, wie Sie bereits tun. Sie werden wissen, was am besten für Ihre Anwendung funktioniert.

Schließlich beschränkt dies nicht wirklich und vollständig die Autocomplete auf nur die Stadt, aber es wird das gewünschte Ergebnis so genau wie derzeit möglich erreichen.

+0

http://hittheroad.ie/ erlaubt die automatische Vervollständigung nur in Irland und keine anderen Vorschläge. wie ist das möglich? – ihimv

+0

Sorry für diese dumme Frage, aber wie finde ich die Grenzen für eine bestimmte Stadt in einem Land? –

+0

@SiddharthAjmera: Es ist nicht albern, aber Sie werden bessere Ergebnisse erzielen, wenn Sie: eine neue Frage öffnen, mehr Details über genau das, was Sie erreichen möchten, ein Beispiel Ihres aktuellen Codes und erklären, warum dieser Code nicht funktioniert . –

2

Ich habe tolle Beispiele gefunden, um die Suchergebnisse nach Land mit der Autocomplete-Klasse einzuschränken oder einzuschränken, dh es gibt eine Methode namens setComponentRestrictions, mit der Sie das Land (Eigenschaft) hier -https: //developers.google festlegen können. com/maps/documentation/javascript/reference # ComponentRestrictions

Bitte überprüfen Sie https://code.google.com/p/gmaps-samples-v3/source/browse/trunk/places/2012-may-hangout/autocomplete.html?r=290 für Beispiele.

Verwandte Themen