जेनेरिक ओपन-सोर्स पैकेज रोडमैप पर सलाह लेना? [बन्द है]


17

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

मेरी साइट दृष्टि: UI के संदर्भ में, एक गैर-जीआईएस दिखने वाली साइट! एक आधार मानचित्र के ऊपर मंडराते हुए बक्से पर किया जा रहा है (या लगभग सब कुछ) के साथ whereis.com की तर्ज पर कुछ और । बारीकियाँ अब महत्वपूर्ण नहीं हैं, बस एक अलग फलक में टिक बॉक्स के साथ जीआईएस-परतों पर जोर देना, आदि उपयोगकर्ता बातचीत के संदर्भ में, पंजीकृत उपयोगकर्ता आधार के शीर्ष पर सुविधाओं (जैसे पीने के फव्वारे के स्थान, पैदल पथ, आदि) बना सकते हैं। नक्शा, और अपनी सुविधाओं को संपादित करें। यदि संभव हो, तो केवल अपनी स्वयं की सुविधाओं को संपादित करें जो उन्होंने बनाई थी। एक सहयोगी नक्शा, वास्तव में।

मैं अभी भी ज्यादातर अनुसंधान मोड में हूं, विभिन्न पैकेजों के साथ खेल रहा हूं, लेकिन केवल सामान्य परिचित के लिए और वास्तविक परीक्षण नहीं (जिसके लिए उन्हें पहले विस्तार से सीखने की आवश्यकता होगी!)। PostGIS निश्चित रूप से अंतर्निहित DB (s) के रूप में जाने का सही तरीका लगता है, Geoserver / Mapserver के साथ सबसे अधिक मिडलवेयर के रूप में। ओपनर्स लगभग निश्चित रूप से सबसे फिसड्डी नक्शा होने जा रहे हैं, क्योंकि मैं पहले से ही इसके साथ सहज हूं और इसकी शक्ति को जानता हूं।

ताकि मुझे दो मुख्य मुद्दों की सलाह की जरूरत पड़े:

1) इस तरह की साइट के लिए सबसे अच्छा शीर्ष परत यूआई क्या है?

क्या यह Django (या यहां तक ​​कि Django-CMS) का एक अनुकूलित उदाहरण है, या बस GeoExt या अन्य पुस्तकालय का एक साथ उदाहरण दिया गया है (यदि आप इसके साथ लॉगिन / पंजीकरण / पूर्ण यूआई कर सकते हैं तो निश्चित नहीं), एक अलग सीएमएस (फ्रेमवर्क) नहीं, ड्रुपल या कुछ भी नहीं जो सीमित हो!), या कुछ पूरी तरह से अलग?

2) क्या यह संभव है कि पंजीकृत साइट उपयोगकर्ता केवल अपनी विशेषताओं को संपादित करें?

मैं मास "भित्तिचित्र" जैसे OSM और अन्य सहयोगी परियोजनाओं के अनुभव से बचना चाहता हूं। यह मेरे पढ़ने और सलाह से पहले लगता है कि Geoserver में फीचर-स्तरीय उपयोगकर्ता प्रमाणीकरण नहीं हो सकता है।

क्या मानचित्रकार?

मुझे यह भी पता नहीं है कि क्या किसी साइट की उपयोगकर्ता आबादी (सीएमएस, या फ्रेमवर्क से) सीधे जियोसर्वर / मैपसर्वर से भी जुड़ सकती है।

यदि खुले स्रोत के समाधान के साथ ऐसी अवधारणा संभव नहीं है, तो क्या उस लक्ष्य को प्राप्त करने का एक और तरीका है?

क्या प्रामाणिक उपयोगकर्ताओं ने मुख्य फीचर परत के गैर-प्रकाशित संस्करण को संपादित किया है (ताकि मूल को गड़बड़ न करें) और मूल के दैनिक बैकअप को बनाए रखते हुए प्रत्येक 24 घंटे में स्वचालित रूप से इसे प्रकाशित संस्करण में मिला दें?

इस इरादे को कैसे प्राप्त किया जाए, इस पर खोया हुआ क्रमबद्ध।

और हां, मैंने जियोनीकोड ​​को भी देखा है, लेकिन मैं केवल एक समग्र नक्शा (इसे सरल रखना) चाहता हूं और इसका यूआई या तो पर्याप्त रूप से इंटरएक्टिव नहीं है (जियो एक्सप्लेयर में जाने से पहले) या जियो एक्सप्लेयर में भी जीआईएस जैसा। लगता है जैसे इस परियोजना के लिए एक समाधान भी डिब्बाबंद है।

क्षमा करें कि यहाँ खुला और अस्पष्ट है, लेकिन मैं उम्मीद कर रहा हूँ कि एक ऐसा मार्ग शुरू किया जाए जिसमें ऊपर संभव हो और अब से कई महीने पहले दीवार में न चला जाए, बस फिर से शुरू करना होगा क्योंकि पथ # 1 शुरू से ही वह कार्यक्षमता नहीं थी!

मेरे द्वारा खोजे जा सकने वाले सर्वोत्तम उदाहरणों में से एक है http://www.gpsies.com मुझे पता है कि यह लीफलेट का उपयोग करता है, लेकिन यह निश्चित नहीं है कि अंतर्निहित रूपरेखा और डेटाबेस। उपयोगकर्ता अपनी विशेषताओं को बना / अपलोड कर सकते हैं, लेकिन दूसरों को संपादित नहीं कर सकते हैं '।


5
OpenStreetMap भित्तिचित्र के बारे में बिट शायद थोड़ा गुमराह है; OSM में कभी-कभी बर्बरता होती है लेकिन यह अपवाद है, आदर्श नहीं। प्रति-उपयोगकर्ता अनुमतियों में स्पष्ट दोष है कि अधिकांश उपयोगकर्ता क्षणिक हैं और इस प्रकार आपके पास अधूरा या रद्दी डेटा होगा, जिसमें दूसरों के लिए इसे पूरा करने या हटाने का कोई तरीका नहीं होगा।
tmcw

यह एक बहुत ही मान्य बिंदु है, और एक मैं ध्यान में रखूंगा। उचित बैक-अप प्रक्रियाओं के साथ, एक विस्तृत खुला मॉडल सबसे अधिक फायदेमंद हो सकता है। मैं इस बिंदु पर विकसित होने से बहुत दूर हूं, मेरे पास विचारों को सीखने और बढ़ने के लिए बहुत सारे कमरे हैं। धन्यवाद!
जेरेमी

जवाबों:


8

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

Django ( GeoDjango के साथ ) अजगर के लिए एक बुनियादी ढांचे के रूप में इसके लिए बहुत अच्छा है (फिर से, यदि वह आपकी चीज है, तो आप इसे दूसरी भाषा में कर सकते हैं)।

उपयोगकर्ता-स्तरीय संपादन के लिए मेरा दृष्टिकोण कैप्ट्रैगन द्वारा वर्णित के समान है। मैं django प्रमाणीकरण ढांचे का उपयोग कर रहा हूं । इस परियोजना के लिए, Django के टेस्टी पाई का उपयोग करके मेरे एपीआई बनाए जा रहे हैं, जिसमें पहले से ही एक रूपरेखा है जो आपको उचित आसानी से ध्यान में रखते हुए प्रमाणीकरण के साथ उचित RESTful एपीआई बनाने की अनुमति देता है ।

मेरे Mapserver (या Geoserver या जो भी आप उपयोग करने के लिए चुनते हैं) बाहर की दुनिया से सीधे कभी नहीं संपर्क में हैं (केवल स्थानीय सर्वर उन की पहुंच है) ... सभी टाइल एक टाइल सर्वर (का उपयोग कर बाहर की सेवा करने के geowebcache , tilecache , tilestache जो कुछ भी )।

जब से आप पहले से ही चुना है, मुझे ओपनलेयर का उल्लेख करने की आवश्यकता नहीं है। अच्छा विकल्प।

PostgreSQL / PostGIS एक और बिना दिमाग वाला व्यक्ति था। :)

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

यदि आप नहीं चाहते हैं कि आपकी साइट इतनी बदसूरत दिखे, तो अपने आप को एक एहसान करें और $ 20 के लिए बूटस्ट्रैप या कम्पास या वैकल्पिक जैसे सीएसएस फ्रेमवर्क का उपयोग करें , बस थीमफोरेस्ट या रैपस्ट्रैप से एक खरीदें (यदि आप स्रोत को खोलने जा रहे हैं तो यह हो सकता है) यदि आप इसे खरीदने जा रहे हैं तो लाइसेंस को देखना चाहते हैं)। इनमें से एक को हुक करने में लगभग एक दिन लगता है और आपकी साइट कैसी दिखती है, इस पर बहुत फर्क पड़ता है!

व्यक्तिगत रूप से, मैंने कई बार Django-cms (और Pinax ) को देखा है और मैं कभी भी खुद को नहीं समझा सकता कि यह परेशानी के लायक है। मुझे अभी तक उस निर्णय पर पछतावा नहीं है।

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

यही मैं उपयोग करूंगा, लेकिन ओपन सोर्स के बारे में प्यारी बात यह है कि आप अपनी आवश्यकताओं के अनुरूप भागों को बदल सकते हैं।


महान जानकारी के लिए धन्यवाद, बाकी सभी के साथ। यह निश्चित रूप से मेरा ध्यान केंद्रित करने में मदद करता है क्योंकि मैं आगे बढ़ता हूं।
जेरेमी

बूटस्ट्रैप उत्कृष्ट दिखता है। क्या आप हमें किसी भी उदाहरण के मानचित्रण स्थलों की ओर इशारा कर सकते हैं जो इसका उपयोग करते हैं?
स्टीफन लीड

6

मैं रागी के समान एक स्टैक का उपयोग कर रहा हूं मैं अपने एप्लिकेशन के अल्फा संस्करण के पास हूं और इस बिंदु पर ऐसा लगता है कि विकल्प जहां सही हैं। यहाँ मेरा समाधान है:

सर्वर पर:

  • उबंटू सर्वर + एपाचे वेब सर्वर + एपाचे टॉमकट।
  • डेटाबेस के रूप में Postgresql + पोस्टगिस।
  • Geoserver, (मेरे मामले में मैं इसे केवल चूहों के लिए उपयोग करता हूं)।
  • Django फ्रेमवर्क + Tastypie। Tastypie एपीआई के माध्यम से सभी वैक्टर की सेवा करता है और उपयोगकर्ताओं के पास 'प्रति ऑब्जेक्ट' अनुमति होती है।
  • अजगर से भू-दृश्य को नियंत्रित करने के लिए python-gsconfig।
  • pdfs उत्पन्न करने के लिए jasper की रिपोर्ट।
  • अजगर से jasper की रिपोर्ट को नियंत्रित करने के लिए pyjasper।
  • प्रक्षेप के लिए उच्च प्रदर्शन भूस्थैतिक पुस्तकालय।

ग्राहक पर:

  • एक्सटीज 4 -> यह शानदार है, एक्सटजि टस्स्टी के साथ बहुत अच्छी तरह से काम करता है और आपके पास बॉक्स से बाहर काम करने वाली कई चीजें हैं, जैसे कि खिड़कियां और टेबल। मैंने इसे शुद्ध कोड में उपयोग करना शुरू कर दिया था, लेकिन मैं Sencha Architect 2 का उपयोग करता हूं जो बहुत मदद करता है।
  • OpenLayers -> दो तरीकों के साथ एक एक्जेज स्टोर में एक और एक ओपनर लेयर में आप उन्हें डेटा परिवर्तन पर एक दूसरे को अपडेट करते हैं।

मैं निश्चित रूप से स्वादिष्ट विकल्प पर शोध कर रहा हूँ, आशाजनक लगता है। बहुत मददगार!
जेरेमी

4

क्या यह संभव है कि पंजीकृत साइट उपयोगकर्ता केवल अपनी विशेषताओं को संपादित करें?

ऐसा प्रतीत होता है कि कार्टारो का उपयोग करना संभव है यह Drupal पर आधारित है (मुझे पता है, आपने कहा कि Drupal की तरह कुछ भी सीमित नहीं है, लेकिन मुझे सुनें!) और यह उपयोगकर्ताओं को केवल अन्य विकल्पों के अलावा, अपनी स्वयं की सुविधाओं को संपादित करने की अनुमति देता है। एक व्यवस्थापक के रूप में लॉग इन करते समय लोग पृष्ठ से लिया गया स्क्रीनशॉट लेते हैं, जो उपयोगकर्ताओं के लिए निर्धारित की जाने वाली अनुमतियों के प्रकार दिखाता है:

कार्टो अनुमति

इसके अलावा, कार्टारो PostGIS, GeoServer, और OpenLayers पर चलता है, इसलिए यह संभवतः वह सब हो सकता है जिसकी आपको तलाश है।

इस तरह की साइट के लिए सबसे अच्छी परत UI क्या है?

मुझे नहीं पता कि "सर्वश्रेष्ठ" शीर्ष परत क्या है, लेकिन ऐसा लगता है कि कार्टारो प्रदान कर सकता है कि आप क्या देख रहे हैं क्योंकि ड्रुपल के पास कई यूआई विकल्प हैं। ऐसा लगता है कि कार्टारो विकास के शुरुआती समय में है (मैं व्यक्तिगत रूप से किसी को भी नहीं जानता जो इसका उपयोग कर रहा है), लेकिन इसमें क्षमता है।


1
मैं जानकारी की सराहना करता हूं, मुझे नहीं पता था कि कार्टारो में वह क्षमता थी। अभी के लिए मैं उन मूल मॉडल से चिपकेगा, जिनका उल्लेख अन्य (कम से कम एक शोध / सीखने के नजरिए से) किया गया है, लेकिन मैं इस सीएमएस में थोड़ा गहरा दिख सकता हूं। मैंने इसे कुछ महीने पहले लगभग एक घंटे का समय दिया था और शुरू में प्रभावित होने से कम था, लेकिन निष्पक्ष होने के लिए, मैंने उस समय इसे ज्यादा मौका नहीं दिया।
जेरेमी

3

मैं प्रश्न # 2 को संबोधित करने जा रहा हूं। इस तरह से मैं उपयोगकर्ताओं को अपने स्वयं के रिकॉर्ड को संपादित करने की अनुमति देने के मुद्दे के आसपास हूं

मैं अपनी स्वयं की वेब सेवाएँ RESTFUL या SOAP (आपकी पसंद) बनाता हूं, जैसे कि UpdateUserRecord(string WKTLocation, string otherArg)आपकी वेबसाइट के प्रमाणीकरण तंत्र में।

OpenLayers और PostGIS दोनों अच्छी तरह से ज्ञात-पाठ (WKT) के साथ-साथ GML और अन्य मानक प्रारूपों को पढ़ते और लिखते हैं, लेकिन मैं व्यक्तिगत रूप से वेब सेवा के माध्यम से और पोस्टजीआईएस डीबी में अपने आवेदन से ज्यामिति की जानकारी और फॉर्म को वापस लेने के लिए WKT का उपयोग करता हूं।

इसके अलावा मेरे वेब तरीके UpdateUserRecordकेवल एक प्रमाणित सत्र उपयोगकर्ता द्वारा ही कहे जा सकते हैं। एक 401 Unauthorizedअगर किसी और की कोशिश करता इस वेब सेवा को कॉल करने दिया जाता है। मेरे मामले में मैं OpenAuth2 (Google, फेसबुक, ट्विटर, आदि) का उपयोग करके प्रमाणीकरण के विकल्प के साथ .NET और फॉर्मअथेंटिकेशन का उपयोग करता हूं। यह PHP, Java आदि में भी किया जा सकता है।

तो आप वेब तरीके बना सकते हैं जो पोस्टजीआईएस डेटाबेस को सीधे कॉल करते हैं और रिकॉर्ड्स को अपडेट या सम्मिलित करते हैं जो आप चाहते हैं। और मैंने ऐसा ही किया।

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

उम्मीद है की यह मदद करेगा।


इसने बहुत मदद की, एक ही मूल सिद्धांतों पर कई लोगों के साथ। मुझे थोड़ा और भरोसा है कि मैं इसे सही सीखने के फोकस के साथ बना सकता हूं। धन्यवाद भी!
जेरेमी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.