2010-10-30 23 views
19

Chcę przedstawić moim użytkownikom pole tekstowe, w którym mogą wpisać swój adres. Podczas wpisywania adresu chcę przekazać użytkownikom sugestie/podpowiedzi dotyczące adresu, który próbują wpisać. Obawiam się także znaczenia tego adresu (np. Że adres nie jest adresem w połowie drogi na całym świecie).Adres autouzupełniania + Google Maps API

Czy to możliwe? Używam jQuery.

+0

Prawdopodobnie nie jest to pytanie jQuery. Potrzebujesz typu u innych dostawców, którzy podadzą ci adresy w czasie wykonywania, takie jak usługi QAS. – kobe

+0

Nie wiem, czy są wolni dostawcy, wdrożyliśmy w naszej firmie i używaliśmy QAS. – kobe

+0

http://www.qas.com/home.htm, sprawdź, czy to właśnie próbujesz wdrożyć. – kobe

Odpowiedz

48

Możesz użyć Google Places API, aby uzyskać autouzupełnianie adresu. Po wybraniu adresu pole address_components zawiera dane adresu strukturalnego (np. Ulica, miasto, kraj) i może być łatwo przekształcone w oddzielne pola.

Oto krótki pokaz pracy:

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    </head> 
    <body> 
     <input type="text" id="address" style="width: 500px;"></input> 

     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places&language=en-AU"></script> 
     <script> 
      var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {}); 

      google.maps.event.addListener(autocomplete, 'place_changed', function() { 
       var place = autocomplete.getPlace(); 
       console.log(place.address_components); 
      }); 
     </script> 
    </body> 
</html> 
+0

Czy istnieje sposób automatycznego wypełnienia różnych danych wejściowych? Więc jeśli zaczynasz od wpisania pierwszego wiersza i dajesz opcję adresu, po kliknięciu na niego automatycznie wypełnia on adres na wielu wejściach? –

+0

Jak mogę pokazać wybraną lokalizację na mapie? Pomóż mi – Erum

+0

Wow, to było niewiarygodnie łatwe i proste, dzięki człowieku! – Brian

6

https://github.com/ubilabs/geocomplete powinien działać dla Ciebie. Będziesz także mógł pokazać mapę, jeśli to konieczne.

Jeśli korzystasz z wtyczki bez wyświetlania mapy, w polu tekstowym musisz wyświetlić logo "powered by Google".

4

Uruchomiona wersja odpowiedzi @Maksym Kozlenko Dla tych, jak chcą zobaczyć to w akcji.

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
 
    </head> 
 
    <body> 
 
     <input type="text" id="address" style="width: 500px;"></input> 
 

 
     <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places&language=en-AU"></script> 
 
     <script> 
 
      var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {}); 
 

 
      google.maps.event.addListener(autocomplete, 'place_changed', function() { 
 
       var place = autocomplete.getPlace(); 
 
       console.log(place.address_components); 
 
      }); 
 
     </script> 
 
    </body> 
 
</html>

2

Musisz użyć klucza API.

zobacz referencje here.

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    </head> 

    <body> 
     <input type="text" id="address" style="width: 500px;"></input> 

     <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBIWSqJ5-3D-UviE0ZLO4U6AjhVcn58y4g&libraries=places&callback=initMap"></script> 
     <script> 
      function initMap(){ 
       var autocomplete = new google.maps.places.Autocomplete($("#address")[0], {}); 

       google.maps.event.addListener(autocomplete, 'place_changed', function() { 
        var place = autocomplete.getPlace(); 
        console.log(place.address_components); 
       }); 
      } 
     </script> 
    </body> 
</html> 
Powiązane problemy