我正在使用Google地图收集标记数据以包含在表单提交中。我的问题是,用户可以在提交之前添加任意数量的标记位置。我想限制它,以便只能添加1个标记。这是我的代码:
GEvent.addListener(map, "click", function(overlay, latlng) {
if (latlng) {
marker = new GMarker(latlng, {draggable:true});
GEvent.addListener(marker, "click", function() {
var html = "<table>" +
"<tr><td>Name:</td> <td><input type='hidden' id='name'/> </td> </tr>" +
"<tr><td>Address:</td> <td><input type='hidden' id='address'/></td> </tr>" +
"<tr><td>Type:</td> <td><select id='type'>" +
"</select> </td></tr>" +
"<tr><td></td><td></td></tr>";
marker.openInfoWindow(html);
});
map.addOverlay(marker);
}
});
答案 0 :(得分:1)
只需定义一个全局标志并在添加标记时进行设置:
var map;
var noMarker = true;
...
if (latlng && noMarker) {
...
map.addOverlay(marker);
noMarker = false;
OR:
myListener = GEvent.addListener(map, "click", function(overlay, latlng) {
...
map.addOverlay(marker);
GEvent.removeListener(myListener);
答案 1 :(得分:0)
您可以在用户点击后删除该事件(请参阅the bottom of this page) - 或者,您可以使用存储的marker
变量,并在他们点击您的地图时随时删除旧变量新的(取决于你想做什么)。