2012-08-04 5 views
5

Ich versuche, die Google Places Autocomplete zu sortieren, um die Ergebnisse von der nächsten zu einem Punkt zu sortieren. Ich habe einen Code wie diesen ...Google platziert Autocomplete - Standort und Radius funktioniert nicht

var defaultPlace = new google.maps.LatLng(49.227463, 16.546097); 

var optionsAuto = { 
    location: defaultPlace, 
    radius: 20000, 
    types: ['geocode'], 
    componentRestrictions: { 
     country: 'cz' 
    } 
}; 

var autocomplete = new google.maps.places.Autocomplete(inputStart, optionsAuto); 

die Typen und componentRestrictions funktioniert super, aber die Lage und Radius scheint nicht zu funktionieren.

+0

Warum glauben Sie, dass es nicht funktioniert? – geocodezip

+0

weil die Ergebnisse immer noch in der gleichen Reihenfolge sind ... – adam

Antwort

5

Blick auf die documentation

Darin heißt es:

Radius | Definiert den Abstand (in Metern), innerhalb dessen die Place-Ergebnisse zurückgegeben werden. Der maximal zulässige Radius beträgt 50 000 Meter. Beachten Sie, dass der Radius nicht enthalten sein muss, wenn rankby = Abstand (wie unter Optionale Parameter unten beschrieben) angegeben ist.

Es klingt wie die optionalen Parameter will: rankby = Abstand:

rankby | Entfernung. Diese Option sortiert Ergebnisse in aufsteigender Reihenfolge nach ihrer Entfernung vom angegebenen Standort. Die Ranglistenergebnisse nach Entfernung legen einen festen Suchradius von 50 km fest. Ein oder mehrere Schlüsselworte, Namen oder Typen sind erforderlich.

die auch in der javascript service

verfügbar ist

Working Example

+0

Nun, der rankby = Abstand sieht genau so aus, wie ich es brauche. Ich habe versucht, es so in meinem Code zu verwenden: var optionsAuto = { Lage: defaultPlace, rankBy: google.maps.places.RankBy.DISTANCE, Typen: [ 'geocode'], componentRestrictions: { Land: ' cz ' } }; aber es hat nicht funktioniert. Kannst du mir sagen, was die richtige Verwendung ist? Danke – adam

+0

funktioniert gut für mich, wenn ich der Dokumentation folge. Siehe das Arbeitsbeispiel, das ich meiner Antwort hinzugefügt habe. – geocodezip

+0

Ich habe die gleichen Optionen, aber es funktioniert immer noch nicht. Denken Sie, dass das Problem möglicherweise darin besteht, dass ich die Standardautovervollständigung verwende? – adam

0

Es ist möglich, dass jemand mit mir nicht vereinbaren kann In meinem Fall definiert i den Radius ohne Anführungszeichen, dh aber wie unten

var request = { 
    location: pyrmont, 
     bounds: map.getBounds(), 
    radius: 2000, 
    zoom: 15, 
    types: ['restaurant'] 
    }; 

Also machte es keinen Unterschied auf Radius und zeigte das Ergebnis unabhängig von Radius, aber wenn ich Anführungszeichen darauf anwendete, scheint Radius Parameter b e arbeiten

var request = { 
    location: pyrmont, 
     bounds: map.getBounds(), 
    radius: '2000', 
    zoom: 15, 
    types: ['restaurant'] 
    };