2012-08-04 21 views
5

Sto cercando di impostare il completamento automatico di Google Places per ordinare i risultati dal più vicino al punto. Ho un codice come questo ...Google effettua il completamento automatico - posizione e raggio non funzionanti

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); 

i tipi e componentRestrictions funziona benissimo, ma la posizione e il raggio non sembra funzionare.

+0

Perché credi che non funzioni? – geocodezip

+0

perché i risultati sono ancora nello stesso ordine ... – adam

risposta

5

sguardo al documentation

Essa afferma:

raggio | Definisce la distanza (in metri) entro cui restituire i risultati di Place. Il raggio massimo consentito è 50 000 metri. Notare che il raggio non deve essere incluso se è specificato rankby = distance (descritto in Optional parameters below).

E suona come si desidera che il parametro opzionale: rankby = distanza:

rankby | distanza. Questa opzione ordina i risultati in ordine crescente in base alla loro distanza dalla posizione specificata. I risultati della classifica per distanza imposteranno un raggio di ricerca fisso di 50 km. È richiesta una o più parole chiave, nomi o tipi.

che è disponibile anche il javascript service

Working Example

+0

Beh, il rankby = distanza sembra esattamente quello di cui ho bisogno. Ho cercato di usare in questo modo nel mio codice: var optionsAuto = { posizione: defaultPlace, rankBy: google.maps.places.RankBy.DISTANCE, tipi: [ 'geocode'], componentRestrictions: { Paese: ' cz ' } }; ma non ha funzionato. Puoi dirmi qual è l'uso corretto? Grazie – adam

+0

funziona bene per me se seguo la documentazione. Vedere l'esempio di lavoro che ho aggiunto alla mia risposta. – geocodezip

+0

Ho le stesse opzioni ma ancora non funziona. Pensi che il problema potrebbe essere che io uso il completamento automatico predefinito? – adam

0

E 'possibile che qualcuno potrebbe non essere d'accordo con me, ma nel mio caso ho definito il raggio senza virgolette cioè come qui di seguito

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

Quindi non ha fatto alcuna differenza sul raggio e ha mostrato il risultato indipendentemente dal raggio ma quando ho applicato le virgolette su di esso, il parametro radius sembra e working

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