मैं UMN-mapserver में एक परत के केवल कुछ वर्गों को कैसे दिखा सकता हूं?


9

मैं मानचित्रकार में एक आकृति-परत की कल्पना करता हूं। अब मैं इस परत के केवल कुछ वर्गों के लिए कुछ अनुरोध करना चाहता हूं। मैं उदाहरण के लिए केवल जल-वर्गों के लिए और बाद में केवल लकड़ी-कक्षाओं के लिए एक अनुरोध चाहता हूं। क्या मैं इसे मानचित्रकार के साथ महसूस कर सकता हूं?

जवाबों:


7

यहाँ एक और तरीका है कि आप इसे कर सकते हैं। इस तरह प्रत्येक कक्षा में अभिव्यक्तियों के साथ एक परत का उपयोग करना शामिल है। यह इस तरह से करना थोड़ा अधिक 'महंगा' है क्योंकि इसमें तार्किक अभिव्यक्तियाँ शामिल हैं, लेकिन आप कभी भी अंतर को नोटिस नहीं कर सकते हैं जब तक कि आप वास्तव में उच्च-लोड स्थितियों को हिट नहीं करते हैं।

प्रत्येक कक्षा में दो-भाग की अभिव्यक्ति होती है। खींची जाने वाली सुविधाओं के लिए अभिव्यक्ति के दोनों हिस्सों को सही होना चाहिए। अभिव्यक्ति का पहला भाग उन विशेषताओं का चयन करता है, जो आपके आकार आकृति में एक विशेषता के आधार पर उस वर्ग में आती हैं। अभिव्यक्ति का दूसरा भाग यूआरएल के माध्यम से पारित एक चर के मूल्य का मूल्यांकन करता है। इससे कोई फर्क नहीं पड़ता कि आप अपने url में वैरिएबल को क्या नाम देते हैं ('लेयर' जैसे किसी भी आरक्षित शब्द का उपयोग न करें), यह सिर्फ आपके एक्सप्रेशन में वेरिएबल के नाम से मेल खाता है।

यहाँ कुछ नमूना परतें हैं:

LAYER
  NAME "watersheds"
  STATUS DEFAULT
  DATA 'majclip'
  TYPE POLYGON
    CLASS
       NAME "water"
       EXPRESSION ([MAJOR] < 42 AND '%wanted%' = 'water')
       STYLE
          COLOR 0 0 255
       END
    END
    CLASS
       NAME "wood"
       EXPRESSION ([MAJOR] >= 42 AND '%wanted%' = 'wood')
       STYLE
          COLOR 0 255 0
       END
    END
END

बस पानी की विशेषताओं को आकर्षित करने के लिए, आप इस तरह से एक URL अनुरोध का उपयोग करेंगे: http: //localhost/cgi-bin/apsapserv.exe? Map = / ms4w / apps / mymapfile.map और मोड = नक्शा और वांछित = लकड़ी

चूंकि यह आपके लक्ष्य को पूरा करने का तीसरा वैध तरीका है, आप वास्तव में यह सोचना चाहते हैं कि आपके उद्देश्य क्या हैं। यदि आपका डेटा बार-बार बदलता है, तो आप इस विकल्प के साथ जाना चाह सकते हैं। यदि आपका डेटा अक्सर नहीं बदलता है, तो मैं व्यक्तिगत रूप से दो परतों के साथ जाऊंगा। अगर मैं बेहतर प्रदर्शन करता हूं, तो मैं लैंड शेप प्रकारों द्वारा शेपफाइल को कई आकार में विभाजित कर सकता हूं। (यह नहीं हो सकता, परत फिल्टर बहुत कुशल हैं)। वेब मैपिंग के साथ, जितना अधिक आप अपने डेटा को प्री-ऑप्टिमाइज़ करेंगे, उतना बेहतर होगा।


7

आपके मामले में आपके पास दो परतें होनी चाहिए, एक लकड़ी के लिए और एक पानी के लिए। आप एक ही शेपफाइल का उपयोग करके दो लेयर रख सकते हैं।

फिर आप लेयर्स पैरामीटर द्वारा सीधे अनुरोध में किन परतों की कल्पना कर सकते हैं। कक्षाएं केवल डेटा के विभिन्न भागों का प्रतिनिधित्व करती हैं (उदाहरण के लिए उस परतों में डेटा कैसे प्रस्तुत किया जाना चाहिए)।


4

यदि आप वास्तव में, वास्तव में एक परत में उन सभी की जरूरत है, तो आप इसे प्राप्त करने के लिए नामांकित शैलियाँ का उपयोग कर सकते हैं। अधिक जानकारी के लिए यहां देखें । पीटर की कई परतों का सुझाव कई मायनों में एक सरल तरीका है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.