2017-02-26 2 views
1

Ich habe ein Eingabefeld, wo nur Adressen zurückgeben.Google Maps API Autocomplete - Wie gibt man nur den Straßennamen aus?

Aber wenn ich einen Straßennamen eingeben, geben das Eingabefeld den Straßennamen plus ein Komma und die Stadt der Straße zurück.

ich folgenden Code habe:

<script src="http://maps.google.com/maps/api/js?libraries=places&region=de&language=de&sensor=false"></script> 
<input id="strasse" type="text" size="50"> 

$(function(){  

    var input = document.getElementById('strasse');   
    var autocomplete = new google.maps.places.Autocomplete(input, { 
     types: ["address"] 
    });   

    $("#strasse").focusin(function() { 
     $(document).keypress(function (e) { 
      if (e.which == 13) { 
       infowindow.close(); 

      } 
     }); 
    }); 
}); 

Beispiel:

Ich trete "Teststreet" Output = "Teststreet, München"

Die Rückkehr sollte nur "Teststreet".

Gibt es eine Möglichkeit, alles nach dem "," (vielleicht über jQuery) zu löschen?

+0

http://stackoverflow.com/questions/10125189/google-maps-autocomplete-output-only-address-without-country-and-city –

+2

Mögliche Duplikate von [Google maps Autocomplete: Ausgabe nur Adresse ohne Land und Stadt ] (http://stackoverflow.com/questions/10125189/google-maps-autocomplete-output-only-address-without-country-and-city) –

Antwort

2

können Sie die place_changed Ereignis-Listener verwenden und dann entscheiden, was Sie von möchten, was zurückgegeben wird:

<script> 
    var input = document.getElementById('strasse'); 
    var autocomplete = new google.maps.places.Autocomplete(input, { 
      types: ["address"] 
     });  
    $(function(){  

     autocomplete.addListener('place_changed', fillInAddress); 

     $("#strasse").focusin(function() { 
      $(document).keypress(function (e) { 
       if (e.which == 13) { 
        infowindow.close(); 

       } 
      }); 
     }); 
    }); 

    function fillInAddress() { 
     // Get the place details from the autocomplete object. 
     var place = autocomplete.getPlace(); 
     if (typeof place.address_components[0] !== "undefined") { 
      $(input).val(place.address_components[0].long_name); 
     } 
    } 
    </script> 

Es gibt auch eine sehr schöne Demo von dem, was here erreicht werden kann.

In diesem Fall verwenden wir long_name des Typs route, der zurückgegeben wird. Einfach console_log(place.address_components);, um die vollständige Liste anzuzeigen, die zurückgegeben wird.

+0

Vielen Dank! Das war, wonach ich gesucht habe. – Harvix

Verwandte Themen