2009-08-24 27 views
6

¿Alguna sugerencia agradable sobre búsquedas de ubicación automática completa, que se integran con algo así como los datos de ubicación de Google o Bings?Autocompletar búsqueda de ubicación que se integra con bing/google geocoding

Quiero capturar la ubicación de mis usuarios al registrarse, actualmente tengo un cuadro de entrada de texto libre. Deseo tener algún tipo de autocompletar que guíe al usuario a ingresar información más desinfectada; idealmente, también me gustaría geocodificar al usuario.

Actualmente estoy usando el jQuery autocomplete para el autosearch, pero esto requiere que proporcione los datos de ubicación, que no tengo ni deseo mantener.

Respuesta

7

Si no desea mantener su propia base de datos de ubicaciones (¡bien por usted!), Entonces puede consultar Freebase y su Freebase Suggest plugin para jQuery. Harán toda la autocompletación e incluso la IU de sugerencias para usted y usted puede especificar que solo desea completar automáticamente las ubicaciones (o solo los condados de EE. UU., O lo que sea).

Existen diccionarios geográficos que pueden proporcionar la base de datos de nombres de ubicación, pero no harán la IU de autocompletar por usted. GeoNames, por ejemplo, tiene un buen conjunto de web services, que puede combinar con jQuery Autocompletar.

+0

un poco frío, pero es muy centrada en los Estados Unidos, y el wiki como los pop-ups son un poco excesivo. – Dan

+0

Los diccionarios geográficos pueden proporcionarle una base de datos de nombres más completa. (He actualizado mi respuesta con algunos enlaces.) – npdoty

+0

Además, si no te gustan los flyouts de Freebase Suggest, te sugiero '{" flyout ":" false "}'. – npdoty

2

hacemos algo similar para el campo "Dirección de facturación" en la https://bombsheets.com/ - lo que necesita hacer una llamada AJAX para obtener las opciones de autocompletar:

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

y luego usar un servidor del lado de la API de geolocalización de conseguir las direcciones reales (utilizamos el excelente GeoKit de Rails).

Vea this question para obtener un color adicional.

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> 
Cuestiones relacionadas