通过单击我的代码来检索纬度和经度,它工作正常。想知道是否可以在单个事件监听器中组合“单击”和“拖动”(如果不能)。将不胜感激什么是合适的选择。
这就是我一直在做的事情。
google.maps.event.addListener(map,'click', function(event) {
document.getElementById("latbox").value = event.latLng.lat();
document.getElementById("lngbox").value = event.latLng.lng();
addMarker(event.latLng);
});
}
function addMarker(location) {
if (!marker) {
marker = new google.maps.Marker({
position: location,
map: map,
draggable:true,
animation: google.maps.Animation.DROP
});
}
// Otherwise, simply update its location on the map.
else { marker.setPosition(location); }
}
我试过这样做 google.maps.event.addListener(map,'click','dragend', function(event)
但无济于事。如果有人想修改这个marker.setPosition(location);
有动画:google.maps.Animation.DROP
..提前致谢。
最佳答案
没有为多个事件应用监听器的内置方法。
当您的问题是您不想定义回调函数两次时,您可以使用非匿名函数或为 1 个事件定义监听器并在另一个事件触发时触发该事件:
google.maps.event.addListener( map, 'click',
function(e){ alert('clicked or dragged');} );
google.maps.event.addListener( map, 'dragend', function(){
google.maps.event.trigger(this, 'click');} );
动画相关:
除了使用 marker-methods(setAnimation,setPosition) 来设置 marker-options,您还可以使用 setOptions 方法一次设置多个选项:
marker.setOptions({ position : location,
animation : google.maps.Animation.DROP});
关于javascript - 谷歌地图 apiv3 'click' 和 'dragend' 单监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301297/