क्या वेब मैपिंग वातावरण में लीजेंड पार्सिंग के लिए FOSS समाधान है?


14

हमारी वेब मैपिंग आवश्यकताएं काफी मानक हैं - कुछ बुनियादी क्वेरी और परिणामी नक्शा (या छवि को बचाने) को प्रिंट करने की क्षमता। आमतौर पर हमने अतीत में ESRI उत्पादों का उपयोग किया है (अभी हम जियो कॉर्टेक्स का उपयोग कर रहे हैं) लेकिन हम अभी भी समस्या को हल करने में सक्षम नहीं हुए हैं कि लीजेंड जानकारी को पार्स करने के लिए कैसे वास्तव में मानचित्र पर दिखाया जा रहा है। उदाहरण के लिए, यदि मानचित्र पर चार बहुभुज दिखाई दे रहे हैं, तो बहुभुज के लिए केवल चार किंवदंती वस्तुएं होनी चाहिए। क्या इस समस्या का एक खुला स्रोत समाधान है?

संपादित करें : चलो देखते हैं कि क्या मैं इसे और अधिक स्पष्ट कर सकता हूं। वर्तमान में, हमारे पास 33,000+ बहुभुजों के साथ भूविज्ञान परत है। इस परत के लिए किंवदंती एक एकल छवि है और इसमें कई सौ किंवदंती आइटम हैं (यानी यह संपूर्ण भूविज्ञान परत के लिए किंवदंती है, जिसे JPEG / PNG में संग्रहीत किया गया है)।

आमतौर पर, एक उपयोगकर्ता एक क्षेत्र (जैसे कि एक एकल एनटीएस नक्शा शीट, या उससे भी छोटा) पर ज़ूम करेगा और इसलिए भूविज्ञान बहुभुज का एक सबसेट स्क्रीन पर दिखाया जाएगा। फिर वे मैप को एक प्रिंट डॉक्यूमेंट (पीडीएफ या इमेज) के रूप में सेव करेंगे, जो जियो कॉर्टेक्स / आर्कजीआईएस सर्वर द्वारा जनरेट किया जाता है। प्रिंट दस्तावेज़ में एक हेडर, नक्शे की एक छवि और एक किंवदंती होगी। हालांकि, भूविज्ञान परत के लिए किंवदंती संपूर्ण भूविज्ञान परत के लिए किंवदंती होगी , न कि वास्तव में नक्शे पर दिखाया गया है (यानी, बहुत छोटा उपसमुच्चय)।

इसलिए, मैं यह देखना चाह रहा हूं कि क्या कोई FOSS समाधान है, जो मुझे भूविज्ञान की किंवदंती के एक उप-समूह को प्रिंट करने या उत्पन्न करने में सक्षम बनाता है, जो प्रिंट दस्तावेज़ के साथ जाने के लिए ऑन-स्क्रीन / मैप पर वास्तविक वस्तुओं को दर्शाता है। । मुझे आशा है कि चीजों को स्पष्ट करता है; मैं माफी माँगता हूँ अगर यह नहीं करता है!


1
हाय ओलियूप- मुझे आपके वांछित परिणाम की कल्पना करने में कठिन समय हो रहा है। क्या आप खराब किंवदंती का उदाहरण और एक अच्छी किंवदंती का उदाहरण शामिल कर सकते हैं? मुझे लगता है कि इससे मुझे या दूसरों को जवाब देने में मदद मिल सकती है। Thanks--
andytilia

इस सुविधा को आर्कगिस सर्वर 10.1 में शामिल किया गया है, मैंने इसे ESRI की प्रस्तुति के दौरान देखा है।
geogeek

हम्म, ठीक है, हम देखेंगे कि वास्तव में कैसे काम करता है। इस बीच, क्या कोई FOSS समाधान हैं?
ओलिवूप

1
FOSS या ESRI- आधारित, ऐसा लगता है कि आपको कस्टम कोड की आवश्यकता होगी।
रागी यासर बुरहुम १४'१२

निश्चित रूप से अक्षांश भूगोल यह कर सकता है। क्या आपने उनके साथ इसके बारे में बात की है (क्या यह पहले से ही जियोकॉर्टेक्स एसेंशियल में है या नहीं या अगर वे इसे लागू करने की योजना बना रहे हैं)?
चाड कूपर

जवाबों:


3

कुछ शर्तों के आधार पर, आप जो चाहते हैं, वह करना निश्चित रूप से संभव है। इस फ्लेक्स ऐप पर नज़र डालें तो मैंने कुछ साल पहले विकसित किया था: http://india-wris.nrsc.gov.in/LULCApp.html

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

मैंने उस समय फ्लेक्स का उपयोग किया था, लेकिन एचटीएमएल 5 में कैनवस का उपयोग करना भी संभव है। या आप अपने गतिशील रूप से बनाए गए किंवदंती को प्राप्त करने के लिए अपनी मानचित्र छवि के समान कार्य करने के लिए किसी भी सर्वर साइड कोड का उपयोग कर सकते हैं।


बिलकुल ऐसा ही है! व्यवहार में एक उदाहरण देखने के लिए बहुत अच्छा है। बहुत सराहना की!!!
ओलिवूप

5

AFAIK, FOSS4G या ESRI में, इस परत को बनाने के लिए आपको कस्टम कोड लिखना होगा।

यह उतना मुश्किल नहीं है , लेकिन यह आपको कोड की कुछ पंक्तियों से अधिक ले जाएगा।

ArcMap के लिए, यह एक कस्टम तत्व का उपयोग कर पूरा किया गया है । ESRI सहायता साइट पुराने उदाहरणों और नए उदाहरणों से भरी हुई है ।

अतीत में, मैंने कुछ ऐसा ही पूरा किया है जो आपने पगेलयूट फ़्रेम तत्वों का उपयोग करके वर्णित किया था ।

यदि आपने कभी आर्कोबजेक्ट्स (लेकिन क्रमादेशित) नहीं किया है, तो ड्रॉइंग कोड थोड़ा मुश्किल हो सकता है, लेकिन आमतौर पर इसे "आहा!" पल।

एल्गोरिथ्म सरल है:

  • (1) पेजलेयआउट का मैप ऑब्जेक्ट प्राप्त करें जिसे आप लीजेंड जनरेट करने के लिए संदर्भ के रूप में उपयोग करना चाहते हैं ... आपको अपने इच्छित मानचित्र तक पहुंचने के लिए कई फ़्रेमों से निपटना पड़ सकता है, क्योंकि एक पैगलैयूट में विभिन्न के साथ कई मैप ऑब्जेक्ट हो सकते हैं extents जो थोड़ा असामान्य है यदि आपने कोई कस्टम आर्केप पगेलयूट प्रोग्रामिंग नहीं की है (थोड़ा इनसेट मैप्स के बारे में सोचें जो आपके पास हो सकते हैं)।

  • (2) आप जिस नक्शे को चाहते हैं, उसके सक्रिय दृश्य के दृश्य विस्तार को पकड़ो ।

  • (3) उपयोग करें कि आपकी क्वेरी के रूप में ज्यामिति को लूप में फ़िल्टर करें और नक्शे में सभी परतों के माध्यम से खोजें

  • (४) यदि परत किसी भी अभिलेख को लौटाती है , तो आपको इसे उन उदाहरणों में दिखाया गया है जैसा मैंने आपको पहले दिया था।

क्षमा करें, मैं आपको एक आसान समाधान की पेशकश नहीं कर सकता, लेकिन कम से कम इस तरह से आप इसे देखने में सक्षम होंगे, लेकिन आप इसे देखना चाहते हैं - बस कोडन की आवश्यकता है।

अपडेट करें:

चूंकि आप वेब एप्लिकेशन के संदर्भ में ऐसा करना चाहते थे, इसलिए मैंने प्रलेखन की जांच की और एक समान एल्गोरिथ्म का उपयोग करते हुए इसे करने के कई तरीके हैं।

इनमें से एक आर्कगिस सर्वर ऑब्जेक्ट एक्सटेंशन के माध्यम से है । आप सभी चरणों को छोड़कर (1) (इस संदर्भ में पगेलयूट के बारे में चिंता करने की कोई आवश्यकता नहीं है)। REST का उपयोग करके परिणाम को उजागर करें।

यहां से, आपके पास कई विकल्प हैं (यदि आप फ्लेक्स या जावास्क्रिप्ट का उपयोग करना चाहते हैं) के आधार पर, लेकिन विचार एक ही है - पेज रिफ्रेश कॉल पर आपके द्वारा बनाए गए रीस्ट वेब्स सर्विस को कॉल करें और लीजेंड को ड्रा करें।

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

नुकसान, यह है कि आपको सर्वर ऑब्जेक्ट एक्सटेंशन लिखने की आवश्यकता होगी! सौभाग्य से, एक ईएसआरआई नमूना है जो 75% करता है जो आपको पहले से ही आवश्यक है और आपको एक स्पष्ट विचार देना चाहिए कि मैं ऊपर दी गई टिप्पणियों के साथ कैसे जारी रख सकता हूं।

अपडेट 2: जहां तक ​​FOSS4G के समाधान का सवाल है, तो वही दृष्टिकोण किसी भी FOSS सर्वर के साथ भी काम करेगा, यद्यपि एपीआई प्रत्येक के लिए थोड़ा अलग है।


1
उत्तर के लिए बहुत बहुत धन्यवाद! लेजेंड लिमिटर नामक एक उपकरण है जो पहले से ही आर्कगिस पर्यावरण के लिए ऐसा करता है। मैं जो करना चाह रहा हूं वह वेब मैपिंग की दुनिया की क्षमता है।
ओलिवूप

@ollyoop कम से कम 9.3 तक, मुझे पता है कि इसी दृष्टिकोण ने आर्कगिस सर्वर के लिए पूरी तरह से ठीक काम किया होगा। मुझे पता है कि 9.3 से सर्वर रेंडर आर्किटेक्चर में महत्वपूर्ण बदलाव हुए हैं, और मैंने स्वीकार नहीं किया है कि इसके साथ क्या हुआ है। मुझे आश्चर्य होगा अगर कस्टम तत्वों को 10.1 से बाहर yanked किया गया था।
रागी यासर बुरहुम

@ollyoop ने आर्कगिस सर्वर
रागी यासर बुरहूम

3

जब आप Geocortex Essentials के साथ PDF निर्यात करते हैं, तो लीजेंड प्रिंट टेम्पलेट में एक सबरपोर्ट द्वारा उत्पन्न होता है। यह सबरेपोर्ट उन सभी दृश्य परतों को प्राप्त करता है जिनका उपयोग मानचित्र छवि बनाने के लिए किया गया था, और सभी किंवदंती आर्कजीआईएस सर्वर द्वारा निर्मित के रूप में प्रचलित हैं। यह निर्धारित करने के लिए कोई स्थानिक प्रश्न जारी नहीं करता है कि क्या किंवदंती की कोई परत वास्तव में मुद्रित क्षेत्र की सीमा पर खींची गई है।

इसलिए, यदि आप किंवदंती के व्यवहार को बदलना चाहते हैं, तो आप किंवदंती सबरपोर्ट को कस्टमाइज़ कर सकते हैं, या आप एक लेजेंड को प्रिंट टेम्पलेट में डालने के लिए एक सब्रेपोर्ट के बजाय एक छवि का उपयोग कर सकते हैं। यदि आप पहले से ही अपने दर्शक में उपयोग के लिए एक लीजेंड छवि बना रहे हैं, तो आपको प्रिंट इंजन से उस सेवा को फिर से उपयोग करने में सक्षम होना चाहिए।

किंवदंती में पहले से ही कुछ एम्बेडेड इनलाइन कोड शामिल हैं, जो कि अगर एक परत के लिए या परत में एक वर्ग के लिए है, तो इस पर आधारित कथा पाठ के लिए स्वरूपण को दर्शाता है। रिपोर्ट डिज़ाइनर में "स्क्रिप्टिंग" टैब पर स्विच करते समय आप इनलाइन कोड देख सकते हैं।

(मैं अक्षांश भूगोल पर काम करता हूं)


1

पूर्ण "FOSS समाधान" के साथ "वेब मैपिंग" के बारे में ... विचार:

  • "FOSS समाधान" सुरक्षित, स्थिर आदि होने के लिए "लोकप्रिय" (एक बड़ा और संगठित समुदाय) होना चाहिए।
  • FOSS और GIS में एक प्रमुख अवधारणा मानकीकरण है : सर्वोत्तम समाधान मानकों को अपनाते हैं, जैसे OGC वाले।
  • आज लोकप्रिय "वेब सॉल्यूशंस" ओपनलाइयर, मैप्सएवर, जियोसर्वर, पोस्टजीआईएस आदि हैं। सभी में उनके कुछ ओजीसी-अनुरूप कोर हैं। "GeoCortex / ArcGIS सर्वर" समाधान FOSS नहीं है, लेकिन, शायद, OGC- आज्ञाकारी।

और तकनीकी विचार: आप "कवरेज" (?) का उपयोग कर रहे हैं, इसलिए आपकी स्थानिक जानकारी प्राप्त करने के लिए एक अच्छा ओजीसी-मानक डब्ल्यूएमएस है


एक आपकी समस्या का OGC अनुरूप सरल उपाय , WMS उपयोग करने के लिए है GetCapabilities और GetLegendGraphic सेवाओं, कि रिटर्न एक XML फ़ाइल में एक मानक कथा वर्णन, और किंवदंतियों के साथ छवि।

नोट: जब आप कुछ GIS / FOSS समाधान के बारे में सोचते हैं, तो आप पहले मानकों के साथ सोच सकते हैं, फिर समस्या "प्रसिद्ध लेगो टुकड़ों की समस्या" में कम हो जाती है, और टुकड़े किसी भी विक्रेता से आए।

ArcGIS 10+ में GetLegendGraphic है , लेकिन जाँचें कि क्या आप BBOX को केवल लेजेंड- सब्मिट दिखा सकते हैं।


यदि आप किंवदंती के साथ मानचित्र का एक लेआउट बनाना चाहते हैं, तो इस "FOSS लेगो समाधान" के एक और टुकड़े हैं।

कोई भी FOSS मैप सर्वर, जैसे MapServer (और मुझे लगता है कि ESRI समाधान भी), WMS के रूप में JPEG की छवि ( नॉन - टाइलेड ) मैप अनुरोध के रूप में पेश कर सकते हैं - WMS की GetMap सेवा देखें

PS: यह एक मानक नहीं है, लेकिन शायद आपका सर्वर MapServer जैसे टेम्पलेट टूल द्वारा किंवदंती के साथ मानचित्र पेश करने के लिए कॉन्फ़िगर किया जा सकता है ।

जावास्क्रिप्ट के साथ "मैप विथ लीजेंड" का लेआउट बनाने के लिए आप जावास्क्रिप्ट, PHP या किसी अन्य भाषा के साथ HTML (या "पीडीएफ फाइल ऑन फ्लाई") उत्पन्न कर सकते हैं जो मैप और लीजेंड के लिए (REST) ​​वेब सेवा अनुरोध करते हैं।

मैं HTML से पीडीएफ जेनरेट करना पसंद करता हूं: आप wkHtmlToPdf का उपयोग कर सकते हैं , HTML-से-पीडीएफ रूपांतरण के लिए एक FOSS समाधान। खराब लेआउट का उत्पादन करने के लिए, "फ्लाई जेपीईजी लेआउट पर" के साथ, आप सर्वर पर एक मानक FOSS टूलकिट, इमेजमाजिक की तरह उपयोग कर सकते हैं ।

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