Javascript - 将地图叠加限制为1个标记

时间:2010-12-24 17:27:30

标签: javascript google-maps

我正在使用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);
          }
        });

2 个答案:

答案 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变量,并在他们点击您的地图时随时删除旧变量新的(取决于你想做什么)。