Скорее всего, маркеры не отображаются, потому что вы объявляете markerIcon
неправильно.Например, это должно быть:
markerIcon = {
icon: L.icon({
iconSize: [25, 41],
iconAnchor: [10, 41],
popupAnchor: [2, -40],
// specify the path here
iconUrl: "https://unpkg.com/leaflet@1.4.0/dist/images/marker-icon.png",
shadowUrl: "https://unpkg.com/leaflet@1.4.0/dist/images/marker-shadow.png"
})
};
Во-вторых, чтобы применить пользовательское css к всплывающему окну, вам необходимо предоставить popupOptions
в методе bindPopup
или создать экземпляр L.popup
и присоединить имя класса.Проверьте также здесь .Первый способ будет выглядеть следующим образом:
const popupOptions = {
className: "test"
};
for (let artwork of this.artworkList) {
const popupInfo =
"<span class=''>" +
artwork.name +
"</span>" +
"<br/>" +
artwork.filename;
console.log(artwork.name);
L.marker([artwork.latitude, artwork.longitude], this.markerIcon)
.addTo(this.map)
.bindPopup(popupInfo, popupOptions);
}
, а затем включить стиль в глобальный style.css
, например:
.test .leaflet-popup-content-wrapper {
background: #2ce897;
color: #eee;
font-weight: bold;
font-size: 12px;
line-height: 24px;
border-radius: 0px;
}
Вот демо с примером вашего пользовательского случая.