как настроить непрозрачность маркера leaaflet?

#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 .