当你拖动谷歌地图引脚时,我已经添加了一个监听器,但它似乎不工作。
使用这个api: https://developers.google.com/maps/documentation/javascript/examples/places-searchbox
所以获取latlng只是这个例子的一个附加功能,但我不明白为什么它不在输入中输出latlng。
google.maps.event.addListener(markers, 'dragstart', 'dragend', function (event) {
document.getElementById("lat").value = event.LatLng.lat();
document.getElementById("long").value = event.LatLng.lng();
});
<input id="lat" name="lat" val="51.5000" />
<input id="long" name="long" val="0.1167" />
编辑:设法在字段中输出latLng,但我如何在拖动标记时更新latLng ?
var locPositionLat = place.geometry.location.lat(),
locPositionLng = place.geometry.location.lng();
$('#lat').val(locPositionLat);
$('#lng').val(locPositionLng);
google.maps.event.addListener(markers, 'dragend', function(event) {
document.getElementById('lat').value = event.locPositionLat;
});
标记:
var newMarker = new google.maps.Marker({
map: map,
title: place.name,
position: place.geometry.location,
animation: google.maps.Animation.DROP,
draggable: true
})
// Create a marker for each place.
markers.push(newMarker);
不能这样组合事件侦听器:
google.maps.event.addListener(markers, 'dragstart', 'dragend', function (event) {
只做:
google.maps.event.addListener(markers, 'dragend', function (event) {
如果您需要对dragend和dragstart使用相同的函数,请先创建该函数,然后在两个事件侦听器中引用它。
function updateCoords(event) {
document.getElementById("lat").value = event.latLng.lat();
document.getElementById("long").value = event.latLng.lng();
}
google.maps.event.addListener(markers, 'dragstart', updateCoords);
google.maps.event.addListener(markers, 'dragend', updateCoords);