それはとても簡単にできるはずです。まず、すべてのマーカーへの参照を保持する必要があります。次に、ドラッグ動作を切り替えるには、マーカーを繰り返し処理し、各マーカーでenableDragging()
またはdisableDragging()
メソッドを呼び出すだけです。
GMarkerOptions.draggable
これが機能するには、オプションを に設定してマーカーを初期化true
する必要がありますが、既にこれを行っていると思います。
完全に機能する例を次に示します。
<!DOCTYPE html>
<html>
<head>
<script src="http://maps.google.com/maps?file=api&v=2&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>