Existe-t-il un moyen de limiter la saisie automatique Google Adresses à la recherche dans les rues d’une ville?

Puis-je limiter la recherche aux rues d’une ville lorsque vous utilisez la AutocompleteAutocomplete Google Adresses?

Vous pouvez définir les options de AutocompleteAutocomplete pour utiliser le type de geocode , ce qui limitera les résultats renvoyés aux adresses:

 var input = document.getElementById( 'searchTextField' ); var options = { bounds: yourBounds, types: ['geocode'] }; autocomplete = new google.maps.places.Autocomplete( input, options ); 

Il n’existe aucun moyen de limiter les résultats aux rues, mais vous obtiendrez en grande partie ce que vous voulez. Si vous définissez correctement vos yourBounds , peut-être limitées à la zone d’une ville, vous serez aussi proche que possible.

Mise à jour répondant au commentaire:

Si vous souhaitez commencer par entrer une ville, vous pouvez lier les limites de la carte aux limites de la AutocompleteAutocomplete , ce qui permettra à la carte de définir automatiquement sa fenêtre lorsqu’une ville est sélectionnée dans la AutocompleteAutocomplete :

 var options = { bounds: yourBounds, types: ['(cities)'] }; autocomplete = new google.maps.places.Autocomplete( input, options ); // This will bind the map's bounds to the Autocomplete's bounds: autocomplete.bindTo('bounds', map); 

Ensuite, vous pouvez mettre à jour les Autocomplete la AutocompleteAutocomplete , similaires à ceux ci-dessus, pour qu’il renvoie des adresses:

 autocomplete.setTypes( [ "geocode" ] ); 

À partir de là, vous pouvez lire les documents de l’API de la bibliothèque de lieux .

Juste un exemple de code HTML (twitter bootstrap 3 compatible :))

 

Bitte zuerst die Stadt oder PLZ eingeben.

Je pense que le code est explicite, juste l’essayer

  

DEMO: JSFIDDLE

Une autre démo plus avancée

Définissez les types sur les régions .

 var input = document.getElementById( 'searchTextField' ); var options = { bounds: yourBounds, types: ['(regions)'] }; autocomplete = new google.maps.places.Autocomplete( input, options ); 

J’espère que ça aide..

Je recherchais un moyen de restreindre la saisie street_number automatique de lieux au niveau street_number mais street_number n’en ai pas trouvé.

La meilleure solution que je puisse trouver est de vérifier le composant street_number dans le résultat des street_number et de présenter une notification à l’utilisateur en cas d’absence.

Exemple de code:

 var searchbox = document.getElementById('location'); var options = { types: ['geocode'] }; autocomplete = new google.maps.places.Autocomplete(searchbox, options); google.maps.event.addListener(autocomplete, 'place_changed', function() { var place = autocomplete.getPlace(); var foundStreet = false; for (var i = 0; i < place.address_components.length; i++) { var c = place.address_components[i]; for (var j = 0; j < c.types.length; j++) { if (c.types[j] == "street_number") { foundStreet = true; break; } } if (foundStreet) break; } if (!foundStreet) alert("Not a valid street number, add some pretty message to the user."); console.log(place); });