Javascript - ограничение наложения карты на 1 маркер - PullRequest
0 голосов
/ 24 декабря 2010

Я использую Google Map для сбора данных маркера для включения в отправку формы. Моя проблема в том, что пользователь может добавить столько маркеров, сколько он пожелает, перед отправкой. Я хотел бы ограничить его, чтобы можно было добавить только 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 ]

1 голос
/ 24 декабря 2010

Просто определите глобальный флаг и установите его при добавлении маркера:

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);
0 голосов
/ 24 декабря 2010

Вы можете удалить событие после того, как пользователь щелкнул по нему (см. внизу этой страницы ) - или, альтернативно, вы можете использовать сохраненную переменную marker и удалить старую в любое время, когда они нажимают на ваш файл.карта для размещения нового (в зависимости от того, что вы хотите сделать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...