OpenLayers में PostGIS आपदाओं को प्रदर्शित करने के लिए विकल्प


12

यह प्रश्न वेब-मैप में वेक्टर डेटा प्रदर्शित करने के बारे में पहले के प्रश्न के समान है । मैं एक बेसिक वेब इंटरफ़ेस रखना चाहता हूँ जो OpenLayers का उपयोग करता है और रेखापुंज डेटा को प्रदर्शित कर सकता है जो वर्तमान में PostGIS में है, जैसे कि गूगल जैसे किसी बेसमैप का उपयोग कर रहा है। मैंने PostGIS2.0 को रैस्टर लाइब्रेरी के साथ स्थापित किया है और प्रलेखन से देखता हूं कि आउटपुट डेटा के कई विकल्प हैं, जैसे कि JPEG, GeoTIFF और PNG। उनके उपयोग करने के लिए एक सिफारिश प्रारूप है?

वेक्टर डेटा प्रदर्शित करने के लिए मैं वर्तमान में अपने सर्वर से उपयोगकर्ता के ब्राउज़र से निर्देशांक भेजने के लिए जावास्क्रिप्ट का उपयोग कर रहा हूं, और फिर PostGIS पर PHP / SQL का उपयोग करके एक क्वेरी का प्रदर्शन कर रहा हूं। फिर परिणाम जियोजन्स के रूप में लौटाए जाते हैं जो कि आधार पर ओवरलेड हो सकते हैं। मुझे आश्चर्य है कि अगर एक समान दृष्टिकोण को चूहों का उपयोग करके लागू किया जा सकता है, लेकिन मुझे नहीं पता कि रेखापुंज प्रारूप सबसे अच्छा क्या है, या अगर कोई अन्य बाधाएं हैं जिन पर मुझे विचार करना चाहिए।

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

जवाबों:


13

Rasters हैं छवियों , इसलिए सबसे अच्छा प्रारूप एक छवि प्रारूप (png / jpg / आदि) हो जाएगा। जियोजोन वैक्टर के लिए एक अच्छा प्रारूप है । आप कभी भी यह नहीं कहेंगे कि आपका फेसबुक प्रोफाइल पिक वापस शुद्ध जौन के रूप में पहुँचाया जाए। बेशक, json के रूप में एक छवि के लिए एक यूआरएल लौटना बहुत अलग है :)

जहाँ तक jpeg बनाम png बनाम किसी भी अन्य छवि प्रारूप चर्चा के बारे में है, वहाँ इसके बारे में विभिन्न राय के टन हैं । क्या यह करने पर निर्भर करता है कि कुछ छवि प्रारूप है दोषरहित है, जबकि दूसरों हैं हानिपूर्ण । आपका निर्णय इस बात पर निर्भर करता है कि आप डेटा के साथ क्या करने जा रहे हैं। विश्लेषण के लिए आप शायद हानिपूर्ण बर्दाश्त नहीं कर सकते, लेकिन वेब पर चीजों को प्रदर्शित करने के लिए जो आप करेंगे।

क्या PostGIS 2.0 चित्र उत्पन्न कर सकता है? ज़रूर। को देखो रेखापुंज उत्पादन अनुभाग।

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

आप क्या जरूरत है GeoServer, शायद नहीं - लेकिन यह जीवन बहुत आसान है जब आप इस मिडलवेयर कि का उपयोग कर अपने डेटा के सभी को उजागर करता है बनाता है OGC वेब सेवाओं , कैशिंग करता है , वैक्टर और rasters की स्टाइल एक पूरी गुच्छा और बातें


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

हां आप इसे सीधे st_aspng से ओपनलेयर पर लोड कर सकते हैं, लेकिन इसके लिए अतिरिक्त काम करना होगा। फिर आपको bbox का ट्रैक रखना होगा, और जब आप इसे लोड करेंगे , तो इसे विशिष्ट कर देंगे। dev.openlayers.org/apidocs/files/OpenLayers/Layer/Image-js.html मुझ पर भरोसा करें, यह लंबा मार्ग है। आप जियोसर्वर या मैप्सर्वर को ऐसा करने देना बेहतर समझते हैं। वे आपको WMS / WMTS वापस दे देते हैं और आप इसे ओपेन करने वालों में जोड़ने के लिए कोड की दो लाइनों का उपयोग करते हैं।
बजे रागी यासर बुरहुम

4

मानचित्रकार के पास पोस्टगीस आपदाओं के लिए समर्थन है और एक मूल सेटअप के लिए निर्देश यहां दिए गए हैं (आइटम 9.9)।

आपके मामले में आप Mapserver को WMS सर्वर के रूप में काम करने के लिए सेटअप करेंगे ताकि यह पोस्टगिस के आपदाओं को सामान्य WMS परतों के रूप में लौटाए। WMS लेयर ऑब्जेक्ट का उपयोग करके अपने OpenLayers मैप में परतों को जोड़ना लगभग तुच्छ है ।

इस तरह का समाधान संभवतः आपका सबसे अच्छा विकल्प है क्योंकि यह सभी ओपनसोर्स सॉफ्टवेयर पर आधारित है, यह एक सिद्ध स्टैक है और इसके लिए व्यापक मिडलवेयर की आवश्यकता नहीं है। सभी Mapserver की जरूरत है एक वेबसर्वर (आप शायद पहले से ही php के लिए उपयोग कर रहे हैं अपाचे ठीक है) कि cgi स्क्रिप्ट चला सकते हैं। यदि प्रदर्शन एक महत्वपूर्ण मुद्दा नहीं है, तो आप एक (टाइल) कैश का उपयोग करने से बच सकते हैं और हर बार फ्लाई पर परतों को प्रस्तुत करने वाले मानचित्रकार के पास होना चाहिए।

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

Ubuntu उपयोगकर्ताओं के लिए Mapserver की निर्भरता स्थापित करने का सबसे आसान तरीका उबंटू जीआईएस पीपीए को आपके सिस्टम में जोड़ना है।


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

धन्यवाद @unicoletti यदि मैं उपयोगकर्ताओं की क्वेरी के आधार पर आपदाओं को उत्पन्न करना चाहता हूं, तो क्या मैं मैपसेवर का उपयोग कर सकता हूं? उदाहरण के लिए यदि मैं उपयोगकर्ताओं को किसी क्षेत्र (एक निश्चित सीमा के भीतर) निर्दिष्ट करने की अनुमति देता हूं तो क्या यह मुझे उस क्षेत्र की स्थानिक क्वेरी करने में सक्षम करेगा?
djq

@celenius Mapserver और GeoServer दोनों आपको ऐसा करने की अनुमति देंगे।
रागी यासर बुरहुम

1
@ रागीसरबर्हुम मैं मानचित्रक की तुलना अन्य कैश से करता हूं। स्थैतिक टाइलें सख्ती से कैश नहीं बोल रही हैं।
unicoletti

0

यह सब निर्भर करता है। छवि का आकार, कैशिंग, उपलब्ध लाइब्रेरी (उदाहरण के लिए कुछ मालिकाना jp2k ड्राइवर)।

यहाँ एक भयानक पीडीएफ , स्टेरॉयड पर Geoserver के लिए एक कड़ी है । यह आपको विभिन्न प्रारूपों, उनके पेशेवरों और विपक्षों और कुछ बुनियादी सेटअप के माध्यम से चलाएगा।

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