Подтвердить что ты не робот

Есть ли способ изменить размер значков значков в зависимости от уровня масштабирования в листовке?

Я делаю проект для школы, и мне нужно изменить размеры значков маркеров в зависимости от уровня масштабирования на карте листовки. Есть ли простой способ сделать это? Любой учебник в Интернете? Заранее спасибо за помощь!!!

4b9b3361

Ответ 1

Чтобы изменить размер маркеров при увеличении/уменьшении масштаба, вам необходимо обработать событие.

map.on('zoomend', function() { });

Событие zoomend будет вызываться всякий раз, когда карта закончила масштабирование или выход. См. API здесь.

Теперь внутри этой функции вы можете вызвать свой собственный код, чтобы изменить размер маркеров. Например, скажем, вы хотели сделать простой подход и установить размер маркера круга равным размеру уровня масштабирования карт. См. API для CircleMarker здесь

// Create some marker that will be resized on the map zooming
var myMarker = new L.CircleMarker([10,10], { /* Options */ });

map.on('zoomend', function() {
  var currentZoom = map.getZoom();
  myMarker.setRadius(currentZoom);
});

Теперь, когда карта приближается или уходит, размер маркера изменится.

Ответ 2

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

    map.on('zoomend', function() {
        var currentZoom = map.getZoom();
        var myRadius = currentZoom*(1/2); //or whatever ratio you prefer
        var myWeight = currentZoom*(1/5); //or whatever ratio you prefer
            layername.setStyle({radius: myRadius, weight: setWeight});
    });

имя_пользователя будет заменено именем любого слоя, который у вас есть, который содержит circleMarkers... и, конечно же, вы можете изменить фракции по своему вкусу в соответствии с вашими потребностями.

Я предполагаю, что проект школы OP закончен, но я надеюсь, что это поможет другим, у кого есть тот же вопрос!