2013-04-08 69 views
9

我正在使用单张地图与markers即使可拖动= true,单张标记也不可拖动

当用户点击我的页面上的“编辑”时,我想使标记可拖动。如果我为每个标记设置属性draggable为true,则不起作用。

当我创建一个新的标记并从头开始设置属性时,它可以工作。

回答

13

你要做这样的:

marker.dragging.disable(); // marker.dragging.enable(); 

我第一次尝试只改变一个技术财产,但不the behavior

+0

太棒了,我准备把我的头发拉出来。 – autonomy 2014-09-19 21:17:42

+0

非常感谢。我想知道如何做到这一点,因为我也需要这样的功能! :) – 2014-10-21 09:31:32

+0

现在不适用于我。 'TypeError:[marker] .dragging is undefined' – mc0e 2015-12-18 08:11:32

1

受@ mc0e问题影响'undefined'。这是一个例子。

(基于来自Leafletjs.comLeafletjs quick start的代码)

  1. 打开Wikimedia maps(它是基于所讨论的框架)。
  2. 打开浏览器控制台(按Ctrl +Ĵ按Ctrl +ķ)把一个标记(您需要定义一个变量第一)。使用代码1。

代码-1在控制台:

var markerLondon = L.marker() 
    .setLatLng([51.5, -0.09]) 
    .bindPopup('Centre of London') 
    .addTo(map) 
    .openPopup(); 
  • 现在你有一个非拖动的标记。使用Code-2使标记可拖动。
  • 代码-2在控制台:

    markerLondon.dragging.enable(); 
    

    进一步阅读:Marker API reference。 PS:一旦维基媒体开始使用其他内容,您可以使用BigMap 2(也基于相同的框架)测试它以创建静态OpenStreetMap图像。