2009-08-24 21 views
6

Qualche suggerimento su ricerche di posizione complete automatiche che si integrano con dati di posizione di Google o Bings?Completamento automatico della ricerca posizione che si integra con il geocoding di bing/google

Sto cercando di catturare la posizione dei miei utenti al momento della registrazione, attualmente ho una casella di testo libero. Voglio avere una sorta di auto completamento che guidi l'utente a inserire più informazioni igienizzate, idealmente vorrei anche geo-codificare l'utente.

Attualmente sto utilizzando il jQuery autocomplete per la ricerca automatica, ma questo mi richiede di fornire i dati sulla posizione, che non ho o non voglio mantenere.

risposta

7

Se non si desidera mantenere il proprio database di posizioni (buono per voi!), Quindi si potrebbe guardare Freebase e il loro plug-in Freebase Suggest per jQuery. Faranno tutto il completamento automatico e persino l'interfaccia utente di suggerimento per te e potrai specificare che desideri solo completare automaticamente le posizioni (o solo le contee degli Stati Uniti o qualsiasi altra cosa).

Esistono dizionari geografici che possono fornire il database dei nomi di località ma non eseguiranno automaticamente l'interfaccia utente di completamento automatico. GeoNames, ad esempio, ha una bella serie di web services, che è possibile abbinare con il completamento automatico di jQuery.

+0

un pò freddo, ma è molto centric degli Stati Uniti, e il wiki come pop-up sono un po 'nervosa eccessivo. – Dan

+0

I dizionari geografici possono fornirti un database più completo di nomi. (Ho aggiornato la mia risposta con alcuni collegamenti.) – npdoty

+0

Inoltre, se non ti piacciono i volantini di Freebase Suggest, suggerisco '{" flyout ":" false "}'. – npdoty

2

Facciamo qualcosa di simile per il campo "indirizzo di fatturazione" sul https://bombsheets.com/ - è necessario fare una chiamata AJAX per ottenere le opzioni di completamento automatico:

$(".address-autocomplete").autocomplete('/get_address', { 
    delay: 250, 
    scrollHeight: 400, 
    matchSubset: false, 
    cacheLength: 10, 
    minChars: 3 
}); 

e quindi utilizzare un server-side geolocalizzazione API per ottenere gli indirizzi effettivi (usiamo l'eccellente GeoKit di Rails).

Vedere this question per un colore aggiuntivo.

0
<script> 
     function init() { 
      var input = document.getElementById('locationTextField'); 
      var autocomplete = new google.maps.places.Autocomplete(input); 

      ///Start for getting lat and lang 

      google.maps.event.addListener(autocomplete, 'place_changed', 
       function() { 
        var place = autocomplete.getPlace(); 
        var lat = place.geometry.location.lat(); 
        var lng = place.geometry.location.lng(); 
        document.getElementById("lat").innerHTML = "Lat: "+lat+"<br />Lng: "+lng; 
       } 
      ); 

      ////End 
     } 

     google.maps.event.addDomListener(window, 'load', init); 
    </script> 
Problemi correlati