2009-08-24 11 views
6

Jakieś miłe sugestie dotyczące automatycznych wyszukiwań kompletnych lokalizacji, które integrują się z takimi danymi jak Google czy Bings?Autouzupełnianie wyszukiwania lokalizacji, które integruje się z bing/google geokodowaniem

Chcę przechwycić lokalizację moich użytkowników przy rejestracji, aktualnie mam pole do wprowadzania tekstu. Chcę mieć coś w rodzaju autouzupełniania, które poprowadzi użytkownika do wprowadzenia bardziej zdezynfekowanych informacji, w idealnym przypadku chciałbym również zautomatyzować kod użytkownika.

Obecnie używam jQuery autocomplete dla autosearcha, ale wymaga to podania danych o lokalizacji, których nie chcę ani nie chcę utrzymywać.

Odpowiedz

7

Jeśli nie chcesz utrzymywać własnej bazy danych lokalizacji (dobrze dla ciebie!), Możesz spojrzeć na Freebase i ich wtyczkę Freebase Suggest dla jQuery. Zrobią dla Ciebie cały interfejs automatycznej realizacji, a nawet sugestii, i możesz określić, że chcesz automatycznie uzupełniać lokalizacje (lub tylko hrabstwa USA lub cokolwiek innego).

Istnieją gazetery, które mogą udostępniać bazę nazw lokalizacji, ale nie wykonują automatycznie interfejsu użytkownika. GeoNames, na przykład, ma ładny zestaw web services, który można dopasować do autouzupełniania jQuery.

+0

fajne, ale jego bardzo US centric oraz wiki jak pop-upy są abit przesadą. – Dan

+0

Gazetteers może dostarczyć pełniejszą bazę nazw. (Zaktualizowałem swoją odpowiedź kilkoma linkami.) – npdoty

+0

Ponadto, jeśli nie podoba ci się rozwijanie Propozycji Freebase, proponuję '{" flyout ":" false "}'. – npdoty

2

Robimy coś podobnego do „Adres rozliczeniowy” pola na https://bombsheets.com/ - trzeba zrobić wywołanie AJAX, aby uzyskać opcje autouzupełniania:

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

a następnie użyć geolokalizacja API po stronie serwera, aby uzyskać rzeczywiste adresy (korzystamy z doskonałej wersji Railsów GeoKit).

Aby uzyskać dodatkowy kolor, patrz this question.

2

Ta wtyczka jQuery korzysta z funkcji API Google Geocoding Javascript i autouzupełniania interfejsu jQuery UI.

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> 
Powiązane problemy