Адрес автозаполнения + API Карт Google
Я хочу представить своим пользователям текстовое поле, в котором они могут ввести свой адрес. Когда они набирают свой адрес, я хочу предоставить пользователям предложения/прогнозы того, какой адрес они пытаются ввести. Я также обеспокоен релевантностью этого адреса (например, адрес не является адресом на полпути по всему миру).
Возможно ли это? Я использую jQuery.
Ответы
Ответ 1
Вы можете использовать API Google Адресов, чтобы иметь автозаполнение для адреса. Когда адрес выбран, поле address_components содержит данные структурированного адреса (например, улица, город, страна) и может быть легко преобразовано в отдельные поля.
Вот короткая рабочая демонстрация:
<!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
Взгляните на address-suggestion и демо. Он реализован с помощью jQuery и API геокодирования Google Maps.
Ответ 3
https://github.com/ubilabs/geocomplete должен работать на вас.
При необходимости вы также сможете отобразить карту.
Если вы используете плагин без отображения карты, вы должны отобразить логотип "powered by Google" в текстовом поле.
Ответ 4
Запуск версии @Максим Козленко ответ Для тех, кто хочет видеть это в действии.
<!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>
Ответ 5
Вы должны использовать ключ API.
См. ссылку здесь.
<!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>