Есть ли способ использовать Карты Google для автозаполнения местоположения пользователей?
Там текстовое поле для людей, чтобы ввести их местоположение. По мере того, как люди печатают, они должны видеть Автозаполнение Google Map Suggest.
Затем, как только они выберут что-то из автозаполнения, мне бы понадобилось предупреждение для lat/long.
Возможно ли использовать Google Карты для этих двух задач?
Моя цель - получить человека Lat/long, самым простым способом.
В идеале... есть ли плагин для этого?
Ответы
Ответ 1
Я установил демо здесь. Предполагаемая функциональность поддерживается Freebase плагином jquery.
<script type="text/javascript" src="./jquery-1.4.2.js"></script>
<link type="text/css" rel="stylesheet" href="http://freebaselibs.com/static/suggest/1.3/suggest.min.css" />
<script type="text/javascript" src="http://freebaselibs.com/static/suggest/1.3/suggest.min.js"></script>
<script type="text/javascript">
$(function() {
$("#address").suggest({type:'/location/citytown'});
});
</script>
Маркер добавляется с помощью google api v3
var marker = new google.maps.Marker({
position: latlng,
map: map,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
Позиция маркера добавляется в строку содержимого infoWindow
infowindow.setContent("<h3>Markers "+(marker_id+1)+" "+marker.position+"</h3>");
Полный javascript можно найти здесь
Ответ 2
API Google Maps V3 делает это очень просто. Используя исходный код эту страницу, просто найдите строку:
var place = autocomplete.getPlace();
и добавьте это сразу после него:
alert(place.geometry.location.toString());
Это должно удовлетворять обоим вашим требованиям.
Ответ 3
С точки зрения "плагинов для этого", современные браузеры, поддерживающие HTML5, имеют встроенный API геолокации. Статья в Википедии здесь.
YMMV
Ответ 4
Вы можете использовать API геокодирования Google Maps:
http://code.google.com/apis/maps/documentation/javascript/reference.html#Geocoder
И для простого примера в действии:
http://code.google.com/apis/maps/documentation/javascript/examples/geocoding-simple.html
Этот пример не автозаполняется по мере их ввода, но было бы относительно легко расширить его, чтобы сделать это.