Я пытаюсь использовать MarkerClusterGroup на карте листовок. У меня ошибка L.MarkerClusterGroup is not a function
. Я прочитал соответствующие темы, но они действительны только для версий ниже листовки 1.7.
Я использую React с веб-пакетом.
import { Icon, Marker, Circle, LatLngBounds, Popup, DivIcon } from "leaflet";
import "leaflet.markercluster";
const divIcon = new DivIcon();
const markersCluster = L.MarkerClusterGroup({
chunkedLoading: true,
iconCreateFunction: function (cluster) {
return divIcon({
html: cluster.getChildCount(),
className: "mycluster",
iconSize: null,
});
},
});
Я также пытался импортировать L
глобально:
import * as L from "leaflet";
import "leaflet.markercluster";
const divIcon = new L.DivIcon();
const markersCluster = L.MarkerClusterGroup({
chunkedLoading: true,
iconCreateFunction: function (cluster) {
return divIcon({
html: cluster.getChildCount(),
className: "mycluster",
iconSize: null,
});
},
});
Как это исправить?
Ошибка появляется во время выполнения. Нет проблем с машинописным текстом.
К сожалению, в зависимости от вашего механизма сборки, импортированное пространство имен L
из «листовки» может не быть дополнено MarkerClusterGroup
(из плагина leaflet.markercluster).
Но вы можете вместо этого использовать window.L
, который является всегда дополняется плагином.
Кстати, либо используйте форму конструктора класса с ключевым словом new
: new window.L.MarkerClusterGroup()
, либо используйте фабричную форму с lowerCamelCase: L.markerClusterGroup()
import * as L from "leaflet";
import "leaflet.markercluster";
console.info(window.L === L); // false...
const divIcon = new L.DivIcon();
const markersCluster = new window.L.MarkerClusterGroup({ // Use window.L for plugins
chunkedLoading: true,
iconCreateFunction: function (cluster) {
return divIcon({
html: cluster.getChildCount(),
className: "mycluster",
iconSize: null,
});
},
});
Живая демонстрация: https://stackblitz.com/edit/js-ojki89?file=index.js
Спасибо, это работает с новым окном.L.MarkerCluster. У меня все еще есть проблема с divIcon, но Icon поможет.
Вы используете TypeScript? Ошибка во время выполнения или статическая проверка IDE (VS Code?)?