【发布时间】:2014-01-02 07:25:22
【问题描述】:
您能否看看这个Demo,并告诉我如何在未选中复选框时使标记可拖动。请注意,所有标记都有自己的关联复选框,这意味着用户可以锁定他们想要的每个标记(不是全部在一起)。最初,所有标记在加载到 page 时都未选中。最后,当标记检查为锁定时,我需要更改图标。
var contentString = ' -- Lock <input name="your_name" value="your_value" type="checkbox">';
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var infowindow = new google.maps.InfoWindow({ content: "" });
var data = {
"markers": [{
"latitude": 11.606503,
"longitude": 122.712637,
"title": "Copenhagen"
}, {
"latitude": 11.585988,
"longitude": 122.757084,
"title": "Barcelona"
}
]
};
locations.length = 0;
for (p = 0; p < data.markers.length; p++) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(data.markers[p].latitude, data.markers[p].longitude),
map: map,
draggable: true,
title: "marker " + p,
id: p
});
bindMarker(marker);
bindInfoWindow(marker, map, infowindow, data.markers[p].title);
}
function bindMarker(marker) {
google.maps.event.addListener(marker, 'dragend', function () {
marker.setIcon('https://www.google.com/mapfiles/marker_green.png');
});
google.maps.event.addListener(marker, 'click', function () {
});
}
function bindInfoWindow(marker, map, infowindow, strDescription) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(strDescription + contentString);
infowindow.open(map, marker);
});
}
});
**
更新
function bindMarkerDrag(marker){
google.maps.event.addListener(checkbox, "click", function(){
draggable: false
//marker.setClickable(checkbox.checked);
});
}
然后我添加
bindMarkerDrag(marker);
在循环内部这是一个Demo,但不起作用
【问题讨论】:
-
添加另一个监听dragstart的监听器并勾选复选框值。
-
谢谢 putvande,能否请您告诉我是否应该再次将润湿剂添加到记号笔中?比如:google.maps.event.addListener(如果是这样的话,我应该采取什么行动?
-
我尝试添加一些不起作用的代码,你能看看更新看看我做的是否正确吗?谢谢
-
请看更新演示
标签: google-maps google-maps-api-3 google-maps-markers