javascript - leaflet.js - 单击时设置标记,拖动时更新位置

标签 javascript jquery maps marker leaflet

对于我正在进行的一个小项目,我需要能够在 leaflet.js 支持的图像 map 上放置一个标记,并在它被拖动时更新该标记的位置。我使用下面的代码来尝试这个,但它失败了。 我收到错误“标记未定义”。我不知道为什么它不起作用 - 也许你们可以帮助我? ;)

function onMapClick(e) {
    gib_uni();
    marker = new L.marker(e.latlng, {id:uni, icon:redIcon, draggable:'true'};
    map.addLayer(marker);
};

marker.on('dragend', function(event){
    var marker = event.target;
    var position = marker.getLatLng();
    alert(position);
    marker.setLatLng([position],{id:uni,draggable:'true'}).bindPopup(position).update();
});

最佳答案

在上面的代码片段中,添加事件处理程序时未定义标记。在创建标记后立即添加 dragend 监听器的位置尝试以下操作:

function onMapClick(e) {
    gib_uni();
    marker = new L.marker(e.latlng, {id:uni, icon:redIcon, draggable:'true'});
    marker.on('dragend', function(event){
            var marker = event.target;
            var position = marker.getLatLng();
            console.log(position);
            marker.setLatLng(position,{id:uni,draggable:'true'}).bindPopup(position).update();
    });
    map.addLayer(marker);
};

您还缺少新 L.Marker() 行末尾的括号。

您还在 setLatLng 调用中将 position 放入数组中,但它已经是一个 LatLng 对象。

关于javascript - leaflet.js - 单击时设置标记,拖动时更新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18575722/

相关文章:

javascript - 从 Fancybox iframe 调用 jQuery?

android - 将地理编码器限制为国家/地区

javascript - 谷歌图表在 php 中没有显示正确的行为

javascript - react |多重渲染

javascript - 元标记未修复移动浏览器初始缩放问题

javascript - Javascript/jQuery 中消失的变量内容

javascript - 如何检查字符串是否与javascript中的正则表达式匹配?

jquery - float Youtube iframe 嵌入

C++ - 遍历 map 的 map

maps - 如何打开谷歌地图正在使用的infoWindow?