Я ищу способ показать текст на карте Leaflet с помощью маркеров или чего-либо еще, не показывая значок. Я хочу показывать только текст и иметь возможность стилизовать и поворачивать его ... Есть предложения?
Я ищу способ показать текст на карте Leaflet с помощью маркеров или чего-либо еще, не показывая значок. Я хочу показывать только текст и иметь возможность стилизовать и поворачивать его ... Есть предложения?
Ответы:
Я решил свою проблему с помощью функции Leaflet L.DivIcon, которая представляет собой облегченный значок для маркеров, в котором вместо изображения используется простой элемент div ... Эти маркеры имеют параметры html и className, которые позволяют мне создавать ярлыки с использованием CSS. стили ...
Обновление для Leaflet 1.0: Начиная с Leaflet 1.0, плагин Leaflet.label является устаревшим, так как он был включен в ядро Leaflet как L.Tooltip
. Нет необходимости включать исходный скрипт, а синтаксис немного изменился. Пример использования:
var marker = new L.marker([39.5, -77.3], { opacity: 0.01 }); //opacity may be set to zero
marker.bindTooltip("My Label", {permanent: true, className: "my-label", offset: [0, 0] });
marker.addTo(map);
Стиль CSS может применяться к классу так же, как и раньше.
.my-label {
position: absolute;
width:1000px;
font-size:20px;
}
Также кажется, что непрозрачность маркера может быть полностью установлена на 0.
<script src="scripts/leaflet.label.js"></script>
С помощью плагина Leaflet Label метки напрямую связаны с маркерами, но вы можете установить непрозрачность маркера практически на ноль, чтобы видна была только метка. (Если установить непрозрачность маркера на 0, соответствующая метка также исчезнет.)
var marker = new L.marker([39.5, -77.3], { opacity: 0.01 });
marker.bindLabel("My Label", {noHide: true, className: "my-label", offset: [0, 0] });
marker.addTo(map);
Затем вы можете использовать CSS для стилизации ваших ярлыков так, как считаете нужным:
.my-label {
position: absolute;
width:1000px;
font-size:20px;
}
L.Tooltip
внутри onEachFeature выдается ошибка: «Uncaught TypeError: не удалось выполнить appendChild» на «Node»: параметр 1 не относится к типу «Node». »
.toString()
в конце. marker.bindTooltip(feature.properties['prabhag_number'].toString(), {...
Вы можете начать здесь с этим плагином Leaflet . Возможно, создайте или отредактируйте маркер по своему вкусу. Текст исходит из атрибутов объекта?
marker.bindTooltip("text here", { permanent: true, offset: [0, 12] });
Это работает для меня