मैं अलग-अलग जूम लेयर्स पर अलग-अलग जूम लेयर्स को USC API का उपयोग करके दिखाने की कोशिश कर रहा हूं। मैं एक बार में सभी तीन परतों को लोड और प्रदर्शित कर सकता हूं (हालांकि मैं वास्तव में उन सभी को एक बार दिखाना नहीं चाहता)। मैं उन्हें विभिन्न ज़ूम स्तरों पर लोड और प्रदर्शित कर सकता हूं।
मेरे पास कोड सेट है ताकि ज़ूम स्तर 1-6 पर, नक्शा एक जेजेन्सन परत दिखाएगा। 7-10 के स्तर पर, यह एक और दिखाएगा, और 11+ के स्तर पर यह एक तीसरा दिखाएगा। उन्हें प्रदर्शित करना काम करता है। यदि मैं काम करने की कोशिश कर रहा हूं तो यदि कोई प्रदर्शित होता है तो दूसरों को बंद कर रहा है। 1-6 से 7-10 तक काम करता है (इसका अर्थ है कि यह 1-6 परत को सही ढंग से बंद करता है), लेकिन 7-10 से 11+ तक नहीं (जिसका अर्थ है कि 7-10 परत चारों ओर चिपक जाती है) और मैं समझ नहीं सकता क्यों (यह उसी कोड का उपयोग करता है)।
यहाँ जियोजेन्स परतों के लिए अजाक्स है:
function getJson(defaultStyle, map, simp, geojsonLayer){
var url = 'file' + simp + '.json';
map.removeLayer(geojsonLayer);
geojsonLayer.clearLayers();
$.getJSON(url, function(data){
geojsonLayer = L.geoJson(data, {
style: defaultStyle,
onEachFeature: onEachFeature
});
geojsonLayer.addTo(map);
});
}
और यहां मुख्य कार्य है जो ज़ूम के आधार पर अजाक्स को कॉल करता है। simpCounter शुरू में 0 पर सेट है।
map.on('zoomend', function(e) {
if (map.getZoom() >= 7 && map.getZoom() <= 10) {
if (simpCounter == 0 || simpCounter == 2) {
getJson(defaultStyle, map, 60, geojsonLayer);
simpCounter = 1;
}
} else if (map.getZoom() >= 11) {
if (simpCounter == 0 || simpCounter == 1) {
getJson(defaultStyle, map, 35, geojsonLayer);
simpCounter = 2;
}
}
});
तो फिर से, पहला संक्रमण पुरानी परत को सही ढंग से बंद कर देता है, लेकिन दूसरा संक्रमण नहीं करता है। सहायता के लिए धन्यवाद।