Отображение нескольких полигонов на Картах Google и переключение видимости каждого полигона - PullRequest
0 голосов
/ 16 апреля 2019

Я хочу, чтобы переключить видимость каждого полигона, используя флажок.Я попытался сделать это, и код прекрасно работает только для 1 полигона.Однако, если я подам заявку на несколько полигонов, это не сработает.

Это функция

function toggleLayer(toggleLayer,id)
        {
            if ($('#'+id).is(':checked')) {
                toggleLayer.setMap(map);
            }
            else
            {
                toggleLayer.setMap(null);
            }
        }

, и здесь я вызвал функцию

  <input id="cbx" type="checkbox" class="invisible" onClick="toggleLayer(polygn,'cbx')">

IОснован на: Полигоне Карт Google показывать / скрывать переключатель с флажком Заранее спасибо.

1 Ответ

1 голос
/ 16 апреля 2019

Вы передаете polygn var в вашу функцию, поэтому она будет скрывать только последний (тот, который содержит этот var).В вашем цикле вы помещаете их все в массив polyprojectgoogle, так что эту переменную вы должны передать и выполнить цикл для всех элементов внутри него.Примерно так (я позволил себе переименовать функцию с «s», чтобы она соответствовала ее новой функциональности, и изменить имя параметра, чтобы оно не совпадало с именем функции):

function toggleLayers(layers,id)
    {
        var i, l = layers.length;
        if ($('#'+id).is(':checked')) {
            for(i = 0; i < l; i++){
                layers[i].setMap(map);
            }
        }
        else
        {
            for(i = 0; i < l; i++){
                layers[i].setMap(null);
            }
        }
    }

и назовите это так:

<input id="cbx" type="checkbox" class="invisible" onClick="toggleLayers(polyprojectgoogle,'cbx')">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...