प्रदर्शन समस्या इस तथ्य के कारण है कि प्रत्येक मार्कर एक व्यक्तिगत डोम तत्व है। ब्राउज़र हजारों को प्रस्तुत करने में संघर्ष करते हैं।
आपके मामले में, एक आसान तरीके को बजाय Circle Markers का उपयोग करें और (जैसे मानचित्र का उपयोग preferCanvas
विकल्प, या एक विशेष canvas renderer है कि आप अपने सर्किल मार्कर से प्रत्येक के लिए renderer
विकल्प के रूप में पारित के साथ) उन्हें एक कैनवास पर प्रदान की गई है करने के लिए किया जाएगा। इस प्रकार Google मानचित्र डिफ़ॉल्ट रूप से काम करता है: इसके मार्कर वास्तव में कैनवास पर खींचे जाते हैं।
var map = L.map('map', {
preferCanvas: true
});
var circleMarker = L.circleMarker(latLng, {
color: '#3388ff'
}).addTo(map);
या
var map = L.map('map');
var myRenderer = L.canvas({ padding: 0.5 });
var circleMarker = L.circleMarker(latLng, {
renderer: myRenderer,
color: '#3388ff'
}).addTo(map);
इस समाधान के साथ
, प्रत्येक सर्किल मार्कर अब व्यक्तिगत डोम तत्व है, लेकिन इसके बजाय पर एक एकल कैनवास है, जो बहुत आसान है पत्रक द्वारा तैयार की है ब्राउज़र के लिए संभाल लें।
इसके अलावा, पत्रक अभी भी माउस स्थिति और संबंधित घटनाओं ट्रैक करता है और, अपने सर्किल मार्करों पर इसी घटनाओं से चलाता है ताकि आप अभी भी इस तरह की घटनाओं (माउस क्लिक आदि) सुन सकते हैं।
100k अंकों के साथ डेमो: https://jsfiddle.net/sgu5dc0k/
[leafletjs में 140k अंक साजिश] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/37043791/plotting-140k-points-in-leafletjs) – ghybs
मैं वास्तव में चाहते हैं विभिन्न विशेषताओं के साथ बिंदु या मार्कर आकर्षित करने के लिए। रंग, आकार ... आदि न केवल एक ओवरले बनाएँ। –
आप (यदि आप अपने रंग समायोजित कर सकते हैं) पर एक [कैनवस] सर्किल मार्करों के साथ एक बार आज़मा सकें (http://leafletjs.com/reference-1.0.3.html#map-prefercanvas) – ghybs