Подтвердить что ты не робот

Есть ли способ использовать Карты Google для автозаполнения местоположения пользователей?

Там текстовое поле для людей, чтобы ввести их местоположение. По мере того, как люди печатают, они должны видеть Автозаполнение Google Map Suggest.

Затем, как только они выберут что-то из автозаполнения, мне бы понадобилось предупреждение для lat/long.

Возможно ли использовать Google Карты для этих двух задач?

Моя цель - получить человека Lat/long, самым простым способом. В идеале... есть ли плагин для этого?

4b9b3361

Ответ 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());

Это должно удовлетворять обоим вашим требованиям.

Ответ 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

Этот пример не автозаполняется по мере их ввода, но было бы относительно легко расширить его, чтобы сделать это.