GML, KML, GeoJSON - स्पीड 3109 पॉलीगॉन का प्रतिपादन?


12

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

डब्ल्यूएफएस प्रारूप के साथ आपको सबसे अच्छा परिणाम क्या मिला है? क्या जियोसेवर के लिए अतिरिक्त ट्यूनिंग का उपयोग किया गया है?

मुझे एहसास हुआ कि टाइल वाले WMS अधिक तेज़ होंगे, लेकिन मैं ओपन लॉयर्स, अर्थात का उपयोग करके एक कोरोप्लेथ मैप में गतिशील परिवर्तनों की अनुमति देना चाहता हूं। उपयोगकर्ता एक फ़ॉर्म सबमिट करता है, पायथन स्क्रिप्ट को कहा जाता है, और मैप डिवॉर्स को पुनः लोड करने के लिए नए डेटा बिन ओपनर के लिए लौटाए जाते हैं। मैं भी ओपनरों में बहुभुज जटिलता को कम करने से पहले पूर्ण संकल्प रूप में यह कोशिश करना चाहता हूं।

जवाबों:


4

शायद यह कुछ नए विचारों को ट्रिगर करता है: मुझे एक एप्लिकेशन मिल रहा है जिसमें उपयोगकर्ता कई तत्वों के साथ एक नक्शा संपादित कर सकते हैं।

सभी डेटा को डब्ल्यूएफएस के रूप में भेजने के बजाय, मैं डब्ल्यूएमएस के नक्शे का उपयोग करता हूं, और जब उपयोगकर्ता क्लिक करता है, या चयन करता है, तो मैं चयनित आइटम को डब्ल्यूएफएस के रूप में प्राप्त करता हूं

सर्वर पर वापस अपडेट भेजने के बाद, मैं WMS लेयर को रिफ्रेश करता हूं।

कुछ OpenLayers उदाहरण हैं जो प्रदर्शित करते हैं कि आप ऐसा कैसे कर सकते हैं। आपको शायद इसे थोड़ा मोड़ना होगा, लेकिन OpenLayers + GeoServer आपके लिए कठिन भाग का काम करेगा। डेटा को gzipped भेजा जाता है, इसलिए मूल प्रारूप भी उतना महत्वपूर्ण नहीं है; यह अड़चन नहीं है। OpenLayers और GeoServer को यह जानकारी निकालने के लिए कि वे किस प्रारूप का उपयोग करते हैं।

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

अंत में .. ऑफ-टॉपिक, लेकिन जैसा कि आप मैप डेटा के साथ क्लाइंट-साइड सामान करने का इरादा रखते हैं: ध्यान रखें कि यदि आप OpenLayers के साथ बहुभुज आकर्षित करना चाहते हैं तो IE7 और लोअर समस्याग्रस्त होने जा रहे हैं। OpenLayers क्लाइंट-साइड ड्रॉइंग के लिए SVG का उपयोग करता है, और IE7 और लोअर में अंतर्निहित समर्थन नहीं है। उन उपयोगकर्ताओं को एक गंदे पुराने प्लगइन को डाउनलोड करने की आवश्यकता होगी। अन्य सभी ब्राउज़र ठीक हैं।


IE8 लगभग उतना ही खराब होगा। OpenLayers के कई रेंडरर्स हैं और ब्राउज़रों के लिए जो Canvas या SVG को सपोर्ट नहीं करते हैं, VML का सहारा लेंगे, जो IE7 सपोर्ट करता है। अलग-अलग
रेंडरर्स

3

GEOJSON मेरी राय में, सबसे अच्छा प्रारूप है, इसे पढ़ना आसान है, जावास्क्रिप्ट में उपयोग करना आसान है और आम तौर पर आकार में छोटा है तो जीएमएल / केएमएल। यहां तक ​​कि शैली के बारे में जानकारी हो सकती है, यहां देखें

यह एक आधिकारिक मानक नहीं है, लेकिन यह लीफलेट और ओपनलेयर्स और कई जीआईएस-डेस्कटॉप ऐप जैसे कि क्यूजीस पर समर्थित है।


2

GeoJSON का उपयोग करना आपके सिस्टम को गति देने के लिए एक अच्छी शुरुआत है लेकिन यह पर्याप्त नहीं हो सकता है। आपको अपनी डेटा परत के कई संस्करण बनाने पर विचार करना चाहिए, एक ज़ूम परत के अनुसार, और प्रत्येक संस्करण में सामान्यीकरण / सरलीकरण विधियों को लागू करना चाहिए। क्लाइंट को चयनित ज़ूम स्तर के आधार पर संबंधित परत का अनुरोध करना चाहिए। यह सर्वर और क्लाइंट के बीच एक्सचेंज किए गए डेटा के विस्तार के स्तर को सुनिश्चित करेगा, और यह नेटवर्क ट्रांसफर और रेंडरिंग दोनों को अधिक महत्वपूर्ण रूप से बढ़ावा देगा। आगे जाने के लिए, आप अपने सिस्टम को वेक्टर टाइलिंग और स्थानिक अनुक्रमण के साथ विस्तारित कर सकते हैं जैसा कि इस दस्तावेज़ में वर्णित है , लेकिन मुझे यकीन नहीं है कि ओपनर और जियोसेवर इसे संभाल सकते हैं ... फिर भी!

सुनिश्चित करने के लिए: जीएमएल को भूल जाओ।


जब पूर्ण रिज़ॉल्यूशन WFS बहुत धीमा हो, तो यह मेरी फ़ॉलबैक विधि है। मैं इस आकार की समस्याओं में दिलचस्पी रखता हूं और पूर्ण रिज़ॉल्यूशन गति और यदि आवश्यक हो, तो कम रिज़ॉल्यूशन गति दोनों की रिपोर्ट करने में सक्षम होना चाहता हूं।
जय लौरा

2

एक नई एसएलडी फ़ाइल बनाने के लिए अपनी पाइथन स्क्रिप्ट का उपयोग क्यों न करें और अपने अनुरोध के साथ डब्ल्यूएमएस सर्वर को भेजें।

यहाँ एक उदाहरण है


मैंने इस पर विचार किया है, और संभवत: गति के लिए इस विकल्प का परीक्षण करेगा। यह विकास के लिए नहीं है, बल्कि शोध के लिए है, इसलिए मैं डब्ल्यूएफएस को आजमाना चाहता हूं।
जे लॉरा

1

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

यदि आप डायनेमिक रेंडरिंग I सेकेंड @ iant का दृष्टिकोण चाहते हैं। मैंने पहले यहां एक अलग लेकिन संबंधित समस्या के लिए कई विकल्पों का वर्णन किया है । मैंने क्लाइंट-साइड रेंडरिंग में सहायता करने के लिए बहुभुज सामान्यीकरण का भी उपयोग किया है और जब यह निश्चित रूप से मदद करता है, तो यह अधिक कठिन समस्याएं उत्पन्न करता है, जैसे कि आप अपने उपयोगकर्ता के रूप में गैर-सामान्यीकृत बहुभुज को नीचे खींचना चाहते हैं।

यहां तक ​​कि अगर आप एक ज्ञात प्लेटफॉर्म के साथ काम कर रहे हैं - जैसे कि आप सभी क्लाइंट के हार्डवेयर, ब्राउज़र संस्करण और प्लगइन्स को जानते हैं - जो कि संभावना नहीं है, तो आपको पता नहीं है कि उन क्लाइंट किस तरह के लोड के तहत हैं। इस तरह के दृष्टिकोण के लिए आवश्यक है कि ब्राउज़र को उपयोगकर्ता अनुभव द्रव रखने के लिए सीपीयू समय मिल सके और कुछ भी आपके उपयोगकर्ताओं को परेशान करने वाला हो।

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