javascript - 谷歌地图 apiv3 'click' 和 'dragend' 单监听器

标签 javascript google-maps-api-3

通过单击我的代码来检索纬度和经度,它工作正常。想知道是否可以在单个事件监听器中组合“单击”和“拖动”(如果不能)。将不胜感激什么是合适的选择。

这就是我一直在做的事情。

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/

相关文章:

javascript - 使用 JQuery Mobile 和 jquery-ui-map 的 Google map

google-maps-api-3 - 编辑圆后如何获取半径... google maps api

javascript - 如何使用导入语法加载三轨道控件?

javascript - 将 div id 值存储在 JS/JSP 中的变量中

javascript - 谷歌地图 : "click to see this area on google maps" - how to keep the markers

javascript - 从 google map 或 place api 中提取形状

google-maps - Java - Google map 将地址转换为坐标

javascript - Adobe Air 共享数据库文件

javascript - 修复了滚动 div 内的 div

javascript - localStorage 是在混合移动应用程序中保存授权 token 的首选位置吗?