Google maps v3 перетаскиваемый маркер
Я новичок в Google maps, и я пытаюсь его изучить.
marker = new google.maps.Marker(
{
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: results[0].geometry.location
});
Это моя позиция маркера, когда я инициализирую позицию маркера, чем я знаю название места (например: XY street, New York,), но из-за перетаскиваемой опции она меняется, и мой вопрос заключается в том, как я могу получить новое имя места, какой обработчик событий мне нужен.
2 ответов:
наконец я нашел ответ:
marker = new google.maps.Marker( { map:map, draggable:true, animation: google.maps.Animation.DROP, position: results[0].geometry.location }); google.maps.event.addListener(marker, 'dragend', function() { geocodePosition(marker.getPosition()); }); function geocodePosition(pos) { geocoder = new google.maps.Geocoder(); geocoder.geocode ({ latLng: pos }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { $("#mapSearchInput").val(results[0].formatted_address); $("#mapErrorMsg").hide(100); } else { $("#mapErrorMsg").html('Cannot determine address at this location.'+status).show(100); } } ); }
установите положение на карте с помощью lat / lang и сделайте маркер перетаскиваемым
используя lat / lang изначально устанавливает маркер в заданной точке на карте
переменная адреса используется для назначения заголовка. Его можно проигнорировать.
draggable: true делает маркер перетаскивать.
использовать прослушиватель событий google.карты.событие.addListener (маркер, 'dragend', функция(маркер) для прослушивания изменений в положении маркера
function showMap(lat,lang,address) { var myLatLng = {lat: lat, lng: lang}; var map = new google.maps.Map(document.getElementById('map_canvas'), { zoom: 17, center: myLatLng }); var marker = new google.maps.Marker({ position: myLatLng, map: map, title: address, draggable:true, }); google.maps.event.addListener(marker, 'dragend', function(marker){ var latLng = marker.latLng; currentLatitude = latLng.lat(); currentLongitude = latLng.lng(); jQ("#latitude").val(currentLatitude); jQ("#longitude").val(currentLongitude); }); }
Comments