javascript - 谷歌地图拖动标记问题

标签 javascript jquery events google-maps marker

我想在用户拖动标记时提醒用户 map 上的新位置。显然,当我拖动标记时,监听器甚至不会触发。我希望我的用户能够选择在 map 上放置标记并且能够拖动它。单击并拖动 map 的另一侧可以更改标记位置,但是当我尝试添加用于拖动 map 的监听器以弹出菜单警报时,它不起作用。谢谢

var LatLng = new google.maps.LatLng(lat,lng);
        var marker;
        var mapOptions = {
          center: LatLng,
          zoom: 16,
          minZoom:12,
          maxZoom:18,
          panControl:false,
          scrollwheel: false,
          rotateControl:false,
          streetViewControl:false,
          keyboardShortcuts:false,
          mapTypeControl: false,
          scaleControl: false,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };


        var Gmap = new google.maps.Map($('#map_canvas').get(0),mapOptions);


        // adding pointer by clicking on mac
        google.maps.event.addListener(Gmap, 'click', function(e) {
            if (marker) {
                marker.setPosition(e.latLng);
            }else{
                marker = new google.maps.Marker({
                    position: e.latLng,
                    map: Gmap,
                    draggable:true
                });
            }

              Gmap.panTo(marker.getPosition());


        });

         google.maps.event.addListener(marker, 'dragend', function() {
             alert('Show something here');
        });

最佳答案

监听器不起作用,因为当您定义监听器时,标记未定义。您需要将其放置在定义标记的功能 block 中:

google.maps.event.addListener(Gmap, 'click', function(e) {
    if (marker) {
        marker.setPosition(e.latLng);
    } else {
        marker = new google.maps.Marker({
            position: e.latLng,
            map: Gmap,
            draggable:true
        });

        google.maps.event.addListener(marker, 'dragend', function() {
             alert('Show something here');
        });
    }

    Gmap.panTo(marker.getPosition());
});

查看实际效果 right here .

关于javascript - 谷歌地图拖动标记问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890924/

相关文章:

javascript - 当 HTML 可能有子元素时,如何使用 Javascript 将 HTML 文本替换为新文本

javascript - 如果我保留tinymce工具栏,文本区域将无法工作

jquery - 在不使用 ID 或类的情况下使用 jQuery 隐藏 <div>

java - 如何使用 GWT EventBus

javascript - 如何阻止 javascript 事件冒泡?

javascript - 如何设置依赖关系以及如何编译 npm 模块?

javascript - 即使重新选择相同的选项,也会为选择运行更改事件

javascript - JQuery UI 滑动问题

jquery - 使用 jQuery 插件设计模式调用方法

javascript - 如何在 React-js 中为捕获阶段注册事件处理程序?