2013-06-28 6 views
12

मैं ~ 30k तत्वों के साथ एक सरणी है और मैं उनमें से प्रत्येक के लिए मार्कर के साथ नक्शा बनाने के लिए की जरूरत है। मैं markerclusters और कोशिश कर रहा का उपयोग पल जोड़ने अनुकूलन करने के लिए।कैसे पत्रक में मार्करों थोक जोड़ने के लिए?

for (var i = 0; i < myItems.length; i++) { 
    var item = myItems[i]; 

    marker = new L.marker([item[2],item[3]], { 
     icon: mapOpts.myIcon 
    }).bindPopup(item[1]); 

    markers.addLayer(marker); 

} 

यहां तक ​​कि Google क्रोम को इस लूप को करने के लिए लगभग 40 सेकंड लगते हैं। मैं एफएफ के परिणाम को देखने के लिए नहीं करना चाहते।

क्या मानचित्र में कई तत्व जोड़ने को अनुकूलित करने का कोई तरीका है?

+0

उत्सुक क्यों आप 30k तत्व जोड़ रहे हैं? उन तत्वों सभी को एक साथ देखा जा रहा है कर रहे हैं? – Alan

+1

@Alan yep, जब क्लस्टरलाइज्ड http://danzel.github.io/Leaflet.markercluster/example/marker-clustering-realworld.50000.html –

उत्तर

8
var array = []; 

for (var i = 0; i < myItems.length; i++) { 
    var item = myItems[i]; 

    marker = new L.marker([item[2],item[3]], { 
     icon: mapOpts.myIcon 
    }).bindPopup(item[1]); 

    array.push(marker); 
} 

markers.addLayers(array); 

अधिक जानकारी के लिए docs देखें।

11
var markerArray = []; 
markerArray.push(L.marker([51.505, -0.09])); 
... 
var group = L.featureGroup(markerArray).addTo(map); 
map.fitBounds(group.getBounds()); 
+0

क्या मार्करों को एक-एक करके प्रदर्शित करना बेहतर नहीं है? –

+0

मेरे पास अक्षरों की लंबाई/लंबाई का एक सरणी है, इसलिए जब आप निर्दिष्ट तरीके से मार्करों की साजिश कर रहे हैं, लेकिन मेरे मामले में पृष्ठ हर बार –

+1

पर उत्तरदायी नहीं होता है, तो बहुत अधिक मार्कर हैं, आपको क्लस्टर या गर्मी जैसे विज़ुअलाइजेशन का उपयोग करना होगा नक्शा – malhal

संबंधित मुद्दे