MapBox-जीएल setStyle परतों को हटा

वोट
9

मैं MapBox-जीएल का उपयोग कर एक मानचित्रण वेब अनुप्रयोग का निर्माण कर रहा हूँ। यह शांत सुविधाओं की एक बहुत कुछ है। मैं आधार नक्शे (यानी। उपग्रह, भू-भाग, आदि) पर उदाहरण निम्नलिखित स्विच करने के लिए बटन को सेट कर लेने MapBox वेबसाइट

समस्या यह है कि मैं कर रहा हूँ कि जब मैं शैली बदलने यह मेरे बहुभुज कि परतों के रूप में लोड किए गए हैं दूर करता है और मानचित्र पुन: लोड है। मैं उपयोगकर्ता क्वेरी के आधार परतों के रूप में एक मोंगो डेटाबेस से बहुभुज में लोड। मैं आधार नक्शा बदल सकते हैं और उन परतों रखने में सक्षम होना चाहता हूँ।

वहाँ नक्शा पुन: लोड के बिना शैली बदलने के लिए एक रास्ता है, या कम से कम परतों droping नहीं?

यहाँ उदाहरण के रूप में अपनी ही स्विचर के लिए मेरे कोड है, लेकिन मैं एक कस्टम शैली के लिए एक शर्त कहा:

 var layerList = document.getElementById('menu');
    var inputs = layerList.getElementsByTagName('input');

    function switchLayer(layer) {
        var layerId = layer.target.id;
        if (layerId === 'outdoors') {
            map.setStyle('/outdoors-v8.json');
        } else {
        map.setStyle('mapbox://styles/mapbox/' + layerId + '-v8');
        }
    }

    for (var i = 0; i < inputs.length; i++) {
        inputs[i].onclick = switchLayer;
    }
23/03/2016 को 00:15
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
11

यहाँ एक उदाहरण है कि प्रदर्शन है: http://bl.ocks.org/tristen/0c0ed34e210a04e89984

Leaftlet की तरह एक मानचित्रण पुस्तकालय के विपरीत, MapBox जीएल जे एस बनाम "आधार मानचित्र" की अवधारणा नहीं है "अन्य परतों।" शैली: सभी परतों एक ही इकाई का हिस्सा हैं। तो आप डेटा स्तर के कुछ राज्य भर के रखने के लिए और प्रत्येक परिवर्तन पर अपने स्रोत / addLayer कॉल करने के लिए की जरूरत है।

23/03/2016 को 01:49
का स्रोत उपयोगकर्ता

वोट
0

हो सकता है कि मैं देर से, लेकिन सिर्फ रिकार्ड के लिए कर रहा हूँ:

  • style.load सार्वजनिक एपीआई का हिस्सा नहीं है
  • का उपयोग map.on('styledata')शैली परिवर्तन की निगरानी करने के लिए

का संदर्भ लें:

03/03/2020 को 21:25
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more