Я вставляю маркеры с определенным значением на карту Openstreetmap через листовку. Кроме того, я хочу, чтобы эти маркеры получали Clusterd при уменьшении масштаба карты. Значок кластера должен показывать среднее значение кластера. Пока проблем нет. Я перебираю все маркеры в каждом кластере, складываю значения вместе, а затем делю на количество маркеров. Затем я создаю собственный значок, который окрашивается в зависимости от значения и имеет метку со средним значением. Это отлично работает для небольшого количества маркеров. Проблема в том, что мне нужно вставить МНОГО маркеров в северной части Германии. Я имею в виду не менее 50 000.
В этом случае браузер не может загрузить страницу. Но если я установлю масштаб по умолчанию на 18, он загрузит страницу. И нет никаких проблем при уменьшении масштаба страницы. Я вставляю свой код ниже:
var markers = L.markerClusterGroup({
chunkedLoading: true,
chunkProgress: updateProgressBar,
showCoverageOnHover: false,
maxClusterRadius: 100,
iconCreateFunction : function(cluster) {
var val = 0;
for (i = 0; i < cluster.getAllChildMarkers().length; i++) {
val = val
+ parseInt(cluster.getAllChildMarkers()[i].options.speed)
}
var avg = val / cluster.getAllChildMarkers().length;
avg = Math.round(avg * 10) / 10;
return new L.divIcon({
html: "<div style='background-color: " + generateColor(avg) + "'><span>" + avg + "</span></div>",
className: ' marker-cluster',
iconSize: new L.point(40, 40)
})
}
});
Теперь мне нужно решение, чтобы сделать эту карту функциональной.
cluster.getAllChildMarkers()
в локальную переменную (не знаю, действительно ли это дорогой вызов функции). - person cyr_x   schedule 03.03.2017