특정 가치가있는 마커를 리플릿을 통해 Openstreetmap에 삽입합니다. 더 나아가지도를 축소하는 동안 Markers가 Clusterd를 얻길 바란다. Clustericon에는 클러스터의 평균 값이 표시되어야합니다. 지금까지 문제는 없습니다. 각 클러스터의 모든 마커를 반복하고 값을 합한 다음 마커의 양으로 나눕니다. 그런 다음 값에 따라 색상이 지정된 사용자 정의 아이콘을 만들고 평균 값이있는 레이블을가집니다. 이것은 소량의 마커에 효과적입니다. 문제는 독일의 북부 지역에 많은 마커를 삽입해야한다는 것입니다. 적어도 50000 개를 의미합니다.처리 많은 값의 평균
이 경우 브라우저는 페이지를로드 할 수 없습니다. 그러나 기본 확대/축소를 18로 설정하면 페이지가로드됩니다. 그리고 페이지를 축소하는 동안 문제가 없습니다.
var markers = L.markerClusterGroup({
\t \t chunkedLoading: true,
\t \t chunkProgress: updateProgressBar,
\t \t showCoverageOnHover: false,
\t \t maxClusterRadius: 100,
\t \t iconCreateFunction : function(cluster) {
\t \t \t var val = 0;
\t \t \t for (i = 0; i < cluster.getAllChildMarkers().length; i++) {
\t \t \t \t val = val
\t \t \t \t \t \t + parseInt(cluster.getAllChildMarkers()[i].options.speed)
\t \t \t }
\t \t \t var avg = val/cluster.getAllChildMarkers().length;
\t \t \t avg = Math.round(avg * 10)/10;
\t \t \t \t \t
\t \t \t
\t \t \t return new L.divIcon({
\t \t \t \t html: "<div style='background-color: " + generateColor(avg) + "'><span>" + avg + "</span></div>",
\t \t \t \t className: ' marker-cluster',
\t \t \t \t iconSize: new L.point(40, 40)
\t \t \t })
\t \t }
\t });
내가 cluster.getAllChildMarkers'의 결과를 (절약 할을)'(모른다는 정말 고가의 함수를 호출하는 경우). – cyrix