#javascript
Вопрос:
я работаю с api карт. я пытаюсь скрыть маркер, если уровень масштабирования ниже 15, и показать маркер, если уровень масштабирования больше 15. вот мой код :
const markerS = L.marker([0, 0], {icon: start}).addTo(mymap);
const api_url = 'json.php'
async function getjson() {
const response = await fetch(api_url);
const data = await response.json();
const start = (data[0])
const zoom = mymap.getZoom();
markerS.setLatLng([start.latitude, start.longtitude]);
if(zoom > 15) {
markerS.style.display == "block"
} else {
markerS.style.display = "none"
}
}
но логика «если» не работает. консоль.лог-шоу «Не пойман (в обещании) Ошибка типа: Не удается задать свойства неопределенного (настройка «отображение»)
в гетьсоне»
как я могу это исправить?
Комментарии:
1. Что такое
markerS
?2. для маркера на карте я пытаюсь показать маркер, если уровень масштабирования превышает 15. есть предложения?
3. В вашем вопросе отсутствует MCVE — пожалуйста, отредактируйте его в вопросе, чтобы мы могли хотя бы увидеть, что
markerS
это за переменная4. хорошо, я уже отредактировал свой вопрос, я забыл упомянуть переменные маркеры, извините, хе-хе
Ответ №1:
Экземпляры маркера листовки не являются элементами DOM — у них нет .style
свойства. У них, однако, есть setOpacity
метод.
Изменить
markerS.style.display == "block"
markerS.style.display = "none"
Для
markerS.setOpacity(100);
markerS.setOpacity(0);
соответственно.
Комментарии:
1. вау, как ты узнал, что я использую api листовок? вы, должно быть, очень опытны в javascript, я вам завидую. я уже протестировал ваш код, и он работает как шарм. большое вам спасибо за ваше руководство 🙂
2. Я никогда раньше ничего не делал с Листовкой, я только сейчас просмотрел документацию после того, как погуглил
L.marker
.