当您拖动Google地图图钉时,尝试输出Lat和Long,我添加了一个监听器,但它似乎无法正常工作。
使用此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);
答案 0 :(得分:1)
你没有像这样组合事件监听器:
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);