Проблема в том, что когда я проверяю оверлей и после повторной регистрации я получаю эту ошибку:
Uncaught TypeError: Невозможно прочитать свойство 'x' неопределенных бросков в dist / leaflet.markercluster.js: 1: 25696 TypeError: Невозможно прочитать свойство 'x' из неопределенного в L.DistanceGrid._sqDist (DistanceGrid.js: 114)
в L.DistanceGrid.getNearObject (DistanceGrid.js: 94) в e._addLayer(MarkerClusterGroup.js: 974) в eval (MarkerClusterGroup.js: 249)
в e.addLayers (MarkerClusterGroup.js: 283) в e.addLayers (LayerSupport.js: 99) в e.onAdd (layerupport.js:517) в e._layerAdd (leaflet.js: 5) в e.whenReady (leaflet.js: 5) в e.addLayer (leaflet.js: 5)
I saw that this function from DistanceGrid(is in leaflet library) which is called when i check in on the overlay
_sqDist: function (p, p2) {
var dx = p2.x - p.x,
dy = p2.y - p.y;
return dx * dx + dy * dy;
}
И когда япроверено в р как-то не определено.Я уже давно борюсь с этой ошибкой.Может быть, у вас есть какое-то предложение
Маркеры определены для групп, и они правильно отображаются, проблема только с проверкой регистрации.Как только я проверяю их, кластеры исчезают, как они должны, и как только я регистрируюсь, я получаю ту ошибку, упомянутую ранее, вместо того, чтобы показывать кластеры обратно на карте
Вот код контроллера:
JS controller:
var map = L.map('map', {zoomControl: true, tap: false, preferCanvas:true})
var group1,group2,group3,group4;
var myRenderer = L.canvas({ padding: 0.5 });
var markers = L.markerClusterGroup.layerSupport( {
chunkedLoading: true,
renderer: myRenderer,
iconCreateFunction: function (cluster) {
var childCount = cluster.getChildCount();
var c = ' marker-cluster-';
if (childCount < 10) {
c += 'small';
}
else if (childCount < 100) {
c += 'medium';
}
else {
c += 'large';
}
return new L.DivIcon({ html: '<div><span>' + childCount + '</span>
</div>',
className: 'marker-cluster' + c, iconSize:
new L.Point(40, 40) });
}
});
group1 = L.layerGroup(),
group2 = L.layerGroup(),
group3 = L.layerGroup(),
group4 = L.layerGroup(),
markers.checkIn([group1, group2, group3, group4]);
var overlayMaps = {
"g1": group1,
"g2": group2,
"g3":group3,
"g4":group4
};
var control = L.control.layers(null, overlayMaps, { collapsed: true });
control.addTo(map);
group1.addTo(map); // Adding to map or to AutoMCG are now equivalent.
group2.addTo(map);
group3.addTo(map);
group4.addTo(map);
markers.addTo(map);
PS: я не знаю, как дать работоспособную версию, так как это приложение salesforce