Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换拖动添加为可拖动的Google地图标记_Javascript_Google Maps_Google Maps Markers - Fatal编程技术网

Javascript 切换拖动添加为可拖动的Google地图标记

Javascript 切换拖动添加为可拖动的Google地图标记,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,我正在开发一个GoogleMapAPIv2应用程序,从数据库中加载标记。然后,用户可以将这些标记拖动到新位置并保存到数据库中 我将这些标记添加为可拖动,但我不希望用户能够意外地拖动它们。因此,我添加了一个按钮来启用拖动,然后再次按下以禁用它 唯一的问题是我不确定如何切换拖动标记的功能而不重新加载它们,因为地图上可能有几百个标记,可能需要一些时间 有什么办法可以做到这一点吗 谢谢,这应该很容易做到。首先,您需要保留对所有标记的引用。然后,要切换拖动行为,只需遍历标记并对每个标记调用or方法 要使其

我正在开发一个GoogleMapAPIv2应用程序,从数据库中加载标记。然后,用户可以将这些标记拖动到新位置并保存到数据库中

我将这些标记添加为可拖动,但我不希望用户能够意外地拖动它们。因此,我添加了一个按钮来启用拖动,然后再次按下以禁用它

唯一的问题是我不确定如何切换拖动标记的功能而不重新加载它们,因为地图上可能有几百个标记,可能需要一些时间

有什么办法可以做到这一点吗


谢谢,这应该很容易做到。首先,您需要保留对所有标记的引用。然后,要切换拖动行为,只需遍历标记并对每个标记调用or方法

要使其工作,必须使用
GMarkerOptions.draggable
选项将标记初始化为
true
,但我假设您已经在这样做了

下面是一个完全有效的示例:

<!DOCTYPE html>
<html> 
<head>
   <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false" 
           type="text/javascript"></script>
</head> 
<body onunload="GUnload()">
   <div id="map" style="width: 400px; height: 300px"></div> 

   <input type="button" value="Toggle Drag" onclick="toggleDrag()">

   <script type="text/javascript"> 
      var map = new GMap2(document.getElementById("map"));
      var point = new GLatLng(51.49, -0.12);
      var marker = new GMarker(point, { draggable: true });

      map.setCenter(point, 8);
      map.addOverlay(marker);

      function toggleDrag() {
        if (marker.draggingEnabled()) {
          marker.disableDragging();
        }
        else {
          marker.enableDragging();
        }
      }
   </script> 
</body> 
</html>

VarMap=新的GMap2(document.getElementById(“map”);
var点=新玻璃(51.49,-0.12);
var marker=新的GMarker(点,{draggable:true});
地图设定中心(点8);
添加覆盖图(标记);
函数toggleDrag(){
if(marker.draggingEnabled()){
marker.disabledrading();
}
否则{
marker.enabledrading();
}
}