Хорошо, я создал страницу с 8 слоями геойсона и 8 слоями маркеров. У меня так, один слой геойсона и один маркер за раз запускаются кнопкой на странице. Одновременно может отображаться только один слой геоджона и один слой маркера, так как я использовал цикл для удаления всех остальных слоев.
Я также добавил функцию resetMap, которая соответствует кнопке на странице, которая перебирает массив всех слоев и удаляет их с карты, если они отображаются.
Теперь япытаясь создать функцию showAllLayers, которая соответствует другой кнопке на странице, которая будет отображать все мои слои, просматривая массив всех моих слоев, и отображать их, если они еще не выполнены, но это просто не работает !!
Функция выглядит следующим образом:
function showAllLayers() {
let layers = [Frog1Layer, Frog2Layer, Frog3Layer, Frog4Layer, Frog5Layer, Frog6Layer, Frog7Layer, Frog8Layer,
Frog1Marker, Frog2Marker, Frog3Marker, Frog4Marker, Frog5Marker, Frog6Marker, Frog7Marker, Frog8Marker]
for (let i = 0; i < layers.length; i++) {
map.addLayer(layers[i]);
}
}
ошибка в консоли выглядит следующим образом:
TypeError: t is undefined4 leaflet.js: 5: 64519 addLayerhttps://unpkg.com/leaflet@1.5.1/dist/leaflet.js:5 файл showAllLayers: /// F: / Оценка ГИС 1 / MyScript.js: файл onclick 523: /// F: / Оценка ГИС 1 / ATTEMPT01.html: 1
так что, похоже, проблема в функции addLayer.
Каждый из моих слоев задан как глобальная переменная и выглядит следующим образом:
Frog1Layer = L.geoJson(Frog1, {
style: {
weight: 0.5,
color: 'white',
fillOpacity: 1,
fillColor: 'red',
}
Frog1Marker = L.marker([9.706891,-83.667942],
Может кто-нибудь понять, что не так? Я был озадачен этим целую вечность, так как другие мои массивы работают нормально, но каждый способ, которым я пытался использовать функцию addLayer, чтобы показать все свои слои сразу, вызывает эту ошибку.