OpenLayers या USC चुनना? [बन्द है]


93

मैं OpenLayers v / s USC पर अपने एक कॉलेजियम के साथ बहस कर रहा था। मैंने एक मुद्दा बनाया कि अगर हम एक परियोजना बनाना चाहते हैं, तो ओपन लॉयर्स बहुत बेहतर एपीआई है, जहां आपको जियोसर्वर और पोस्टगिस से सीधे संपर्क की आवश्यकता है।

तब मुझे ओपन डेटा किट मिली , जो बहुत नई लगती है लेकिन इसमें जियोसर्वर और पोस्टगिस के साथ कनेक्टिविटी की विशेषताएं हैं।

तो मेरी परियोजना का विवरण इस प्रकार है,

  1. फ़ीचर जानकारी लाने के लिए मानचित्र इंटरफ़ेस का उपयोग करें
  2. एक स्वनिर्धारित उपकरण बनाएं जो उपयोगकर्ता से लाॅट / लोन लेता है, जहां वह मैप पर क्लिक करता है और फिर रैस्टर से क्लाइमेट डेटा प्राप्त करता है (जिसे सर्वर पर एक पाइ स्क्रिप्ट द्वारा नियंत्रित किया जाता है)
  3. उपयोगकर्ता को एक्सेल अपलोड करने की अनुमति देता है, जिसे py स्क्रिप्ट पर भेजा जाता है, जो एक GeoJSON लौटाता है, जो नक्शे पर वेक्टर सुविधाएँ बनाता है
  4. उपयोगकर्ता को वेक्टर बहुभुज बनाने की अनुमति दें, जो कि इसे WFS लेयर से इंटरसेक्ट करता है।
  5. GeoServer पर PostGIS डेटास्टोर से लेकर्स को लेप करता है और नक्शे पर परतों को प्रदर्शित करता है।

तो अब मैं उलझन में हूं कि कौन सा बेहतर है और क्यों ओब्लेटर्स पर ओपेनलाइनर्स का उपयोग अधिक समझ में आता है या नहीं?


1
परियोजना पर निर्भर करता है।
कैप्टनड्रैगन

1
ए। प्रोजेक्ट पर अधिक विवरण देकर अपने प्रश्न में सुधार करें। ख। आप उपयोगकर्ताओं के लिए डेटाबेस (पोस्टगिस) से सीधे कनेक्शन के बारे में बात कर रहे हैं, क्या आप सुनिश्चित हैं?
पाब्लो

इसके बारे में खेद है, मेरे प्रोजेक्ट विवरण को अपडेट किया
सैम ०00


सामान्य तौर पर मैं पत्रक को पसंद करता हूं, क्योंकि यह छोटी और अधिक पठनीय .js फाइलों की ओर ले जाता है। लेकिन ओएलई उन चीजों को कर सकता है जो कैटबर्ग नहीं कर सकते हैं, क्योंकि आपको गहरी और अधिक विस्तृत पहुंच की अनुमति है - इसलिए, मैं सहमत हूं। यह परियोजना पर निर्भर करता है, लेकिन मेरे से 1 वोट के लिए।
मार्टिनहाइबर्गबर्ग

जवाबों:


87

मैंने अपने ऐप्स में OpenLayers और USC दोनों का इस्तेमाल किया है। इस विषय पर इस मंच और ग्रह-इंटरनेट पर अन्य लोगों में बहुत चर्चा हुई है। वे आम तौर पर 2 शिविरों में आते हैं - विशेषताएं और ओपनलाइयर बनाम सादगी का लचीलापन। मुझे आश्चर्य नहीं होगा अगर कोई "OpenLeaf" पहल को जल्द ही दोनों दुनिया के सर्वश्रेष्ठ लोगों से शादी कर लेता है!

मुझे कैटलॉग का उपयोग करना बहुत सरल लगा, 700K से अधिक ओपनर्स की तुलना में एक छोटा 64K आकार, और बहुत कम चरणों में आप ऐसे ऐप बना सकते हैं जिनमें आज के वेब और मोबाइल जीआईएस ऐप की ताजगी और आंखें कैंडी हैं। आपका स्टैक - जियोसर्वर, पोस्टजीआईएस इत्यादि एक मानक स्टैक है, इसलिए ओपन लाइयर्स या यूएससी को आसानी से शामिल किया जा सकता है।

यह कहते हुए कि, मैं अभी भी निम्नलिखित कारणों से ओपन लॉयर्स के साथ जाऊंगा

  1. OpenLayers के चारों ओर सिर्फ एक TON सामग्री है। यह पत्रक की तुलना में बहुत अधिक परिपक्व है।
  2. कमिट और उपयोगकर्ताओं पर तुलना की जाँच करें ।
  3. OpenLayers, GeoServer, PostGIS स्टैक FOSS दुनिया में इतना साबित होता है कि आप एक ऐसे रास्ते पर जा रहे हैं जो ठोस है।
  4. OpenLayers में मानचित्र नियंत्रण पर कुछ अधिक विशेषताएँ हैं ।
  5. जबकि इसका थोड़ा और काम संक्रमण और दृश्य-प्रभाव पैदा करने के लिए किया जाता है, यह OpenLayers में किया जा सकता है।

1
इसके अलावा मोबाइल उपकरणों के बारे में क्या? कौन सा बेहतर है?
15:00 बजे सैम 007

1
हाँ। मैं वर्तमान में OpenLayers और SenchaTouch का उपयोग करके मोबाइल एप्लिकेशन बना रहा हूं। Openlayers पर बहुत सारे मोबाइल मैप ऐप्स चल रहे हैं। यहाँ कुछ उदाहरण हैं openlayers.org/dev/examples/?q=mobile
रमेश इलैयावल्ली

28

हर तरह से कैटलाग करें। मुझे ऐसा लगता है कि खुले स्रोत टाइल आधारित ब्राउज़र क्लाइंट के विकास पर USC अगले कदम है। का-नक्शा -> ओपनलैयर्स -> कैटलॉग।

पत्रक का उपयोग करना सरल है और यह वही करता है जो यह टिन पर कहता है। OpenLayers सभी लोगों के लिए सभी चीजें होने की कोशिश करके फूला हुआ हो गया है, कैटलॉग उन 20% चीजों को करता है जिन्हें 80% समय की आवश्यकता होती है।


14
तो यह सिर्फ "सभी तरह के कैटलॉग" नहीं है, यह "कैटलॉग है यदि आपको उन सभी विशेषताओं में से किसी की आवश्यकता नहीं है"। मैं मानता हूं कि USC का उपयोग करना बहुत सरल है, लेकिन अगर आपको कुछ ऐसा करने की आवश्यकता है जो आपको OL के साथ नहीं जाना है।
जुआन

1
USC में कई कार्यों का अभाव है। पत्रक केवल बहुत ही बुनियादी मानचित्रों के लिए अच्छा है, लेकिन जैसा कि पहले से ही रमेश इलायवल्ली ओल -3 द्वारा समझाया गया है, सबसे अच्छा है और साथ ही आप कस्टम निर्मित का उपयोग करके सुविधाओं का चयन करके आकार को कम कर सकते हैं।
अभिजीत गुजर

18

हालाँकि मैंने अपने वेबजीआईएस एप्लिकेशन में USC का उपयोग किया है, OpenLayers के पास USC पर अधिक लाभ हैं। उदाहरण के लिए यदि आप मोबाइल उपकरणों में अपने एप्लिकेशन का उपयोग करना चाहते हैं, तो OpenLayers इस समय के लिए आवश्यक है।

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

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

जैसा कि परियोजना विवरण पर विचार किया गया है;

फ़ीचर जानकारी प्राप्त करने के लिए मानचित्र इंटरफ़ेस का उपयोग करें:

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

एक स्वनिर्धारित उपकरण बनाएं जो उपयोगकर्ता से लेट / लोन लेता है, जहां वह मैप पर क्लिक करता है और फिर रैस्टर से क्लाइमेट डेटा प्राप्त करता है (जिसे सर्वर पर एक पाइ स्क्रिप्ट द्वारा नियंत्रित किया जाता है):

मैंने खुद को कैटलॉग में प्राप्त किया (मैं वैसे भी जलवायु डेटा को कॉल कर रहा था)। मैं एक सर्वर से रेखापुंज डेटा प्राप्त नहीं कर रहा था, लेकिन यहाँ बिंदु एक अनुरोध लिंक बनाने के लिए है, जो दोनों अनुप्रयोगों के लिए आसान है। हालाँकि यदि आप इस स्तर पर बहुभुज का चयन करना चाहते हैं, तो इसे प्राप्त करने के लिए USC पर थोड़ा कठिन है।

उपयोगकर्ता को एक्सेल अपलोड करने की अनुमति देता है, जिसे py स्क्रिप्ट पर भेजा जाता है, जो एक GeoJSON लौटाता है, जो नक्शे पर वेक्टर सुविधाएँ बनाता है:

USC और OpenLayers दोनों के लिए लगभग एक ही काम की लाइन। मैं यह नहीं कह सकता कि कौन सा बेहतर है।

उपयोगकर्ता को वेक्टर बहुभुज बनाने की अनुमति दें, जो इसे WFS लेयर से प्रतिच्छेदन सुविधाओं को लाएगा:

मुझे OpenLayers के संपादन क्षमताओं के बारे में कोई जानकारी नहीं है, लेकिन USC में USC Draw नामक एक प्लगइन है, जो ड्राइंग पूरा होने के बाद ड्राइंग (जावास्क्रिप्ट साइड पर) का उपयोग और हेरफेर करना आसान है। यदि आप WFS सर्वर पर स्थानिक डेटा में हेरफेर करना चाहते हैं, तो भी कैटलॉग के पास WFS-T समर्थन है। OpenLayers इससे बेहतर हो सकते हैं, मुझे नहीं पता।

GeoServer पर PostGIS Datastore से लेकर्स लेप करता है और नक्शे पर परतों को प्रदर्शित करता है:

निश्चित रूप से OpenLayers इस नौकरी के लिए बेहतर है क्योंकि PostGIS सर्वर को जोड़ना आसान है।

वैसे, OpenGeo Suite नामक एक एप्लिकेशन सूट है जिसमें OpenLayers, GeoServer और PostGIS शामिल हैं; जो वेब आधारित जीआईएस एप्लिकेशन डेवलपर की सभी समस्याओं को हल करेगा।


अच्छा विस्तृत जवाब!
देवदत्त तेंग्शे

तीन साल बाद, आप कैसा महसूस करते हैं USC & mobile devices? कोई सुधार?
मग

10

इस प्रस्तुति में दो रूपरेखाओं की एक बड़ी तुलना है :

क्रेट बनाम ओपन लॉयर्स

और एक अन्य लेख में भी एक महान सारांश है:

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

आपके द्वारा बनाए जा रहे ऐप के हिस्से को मैप करना कितना सरल है?

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

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

आप कितना जावास्क्रिप्ट कोड लिखना चाहते हैं?

चूँकि, OpenLayers 3 की तुलना में USC एक उच्च स्तरीय API है, इसलिए इसे उठने और चलाने के लिए आमतौर पर जावास्क्रिप्ट कोड कम होते हैं। एक बार जब आप मानक कार्यक्षमता से विचलन करना चाहते हैं, जो कैटलॉग प्रदान करता है, हालांकि, यह संभावना है कि आप बहुत सारे कोड लिखना समाप्त कर देंगे जब तक कि कोई प्लग-इन नहीं होता है जो आपकी सटीक आवश्यकताओं को पूरा करता है। दूसरी ओर, OpenLayers 3 एक निम्न स्तर का एपीआई है जिसे मैप को इनिशियलाइज़ करने और सेट करने के लिए अधिक जावास्क्रिप्ट कोडिंग की आवश्यकता होती है। यह तब सुविधाजनक हो सकता है जब आपके पास अनुकूलित और जटिल आवश्यकताएं हों, क्योंकि एपीआई मानचित्र और आपके डेटा पर अधिक नियंत्रण की अनुमति देता है।

सारांश

समापन में, ऐसे समय होते हैं जब इसका उपयोग करना सबसे अच्छा होता है, जब ओपनलाइनर्स 3 जीतता है। यदि आपकी मैपिंग की आवश्यकताएं सरल हैं, तो सबसे पहले आपके लिए सबसे अच्छा काम है कि आप सबसे पहले USC की जांच करें। लेकिन अगर आप एक मैपिंग लाइब्रेरी की तलाश कर रहे हैं जो अधिक अनुकूलन योग्य है और जावास्क्रिप्ट विकास के साथ गंदा होने का मन नहीं है, तो OpenLayers 3 के लिए पहुंचें।

चूँकि दोनों पुस्तकालयों में अपनी ताकत है, इसलिए हमने मैप सूट वेबएपीआई संस्करण के साथ CAT और OpenLayers 3 दोनों के लिए कोड नमूने शामिल किए हैं जिन्हें उत्पाद केंद्र के माध्यम से डाउनलोड किया जा सकता है या थिंकगो विकी पर देखा जा सकता है। ये नमूने उपयोगी संसाधन होते हैं, जो यह निर्णय लेते हैं कि कौन से क्लाइंट-साइड जावास्क्रिप्ट मैपिंग लाइब्रेरी को आपके ऐप के लिए उपयोग करना है क्योंकि आप दो पुस्तकालयों के बीच अलग-अलग उपयोगकर्ता अनुभव और कोडिंग आवश्यकताओं को पहली बार देख सकते हैं।

से http://blog.thinkgeo.com/2015/09/08/leaflet-vs-openlayers-3-which-is-the-better-client-side-javascript-mapping-library/


5

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


1
दिलचस्प। मुझे उम्मीद है कि मोबाइल डिवाइस पर USC हल्का और चिकना होगा। इस अनुभव को साझा करने के लिए धन्यवाद।
लार्स

@Christian Fritz - क्या आपका अनुभव OL3 या OL2 के साथ था?
20

2
@sfletche की तुलना OL3 और लीफलेट 0.7.3 के बीच थी
क्रिश्चियन फ्रिट्ज

तीन साल बाद, आप कैसा महसूस करते हैं USC & mobile devices? कोई सुधार?
मग

हाँ बिलकुल। हम उत्पादन में पत्रक का उपयोग करते हैं और मोबाइल पर कोई समस्या नहीं देखते हैं।
क्रिश्चियन फ्रिट्ज

3

मैं कहूँगा कि दोनों के लिए एपीआई प्रलेखन की जाँच करें। मेरे लिए ऐसा लगता है कि OpenLayersसुविधाओं का एक व्यापक गुच्छा प्रदान करता है, हालांकि विकास / डिबगिंग का समय लंबा है।

Leafletराजभाषा के बजाय कामुक और अधिक आसान है, हालांकि यदि आप अपने मानचित्र के साथ बहुत कुछ करना चाहते हैं, तो मुझे लगता है कि किसी दिन आपको एक ऐसी सुविधा की आवश्यकता हो सकती है जो Leafletअभी तक लागू नहीं हुई है!

मैं वास्तव में एपीआई पर एक नज़र लेने की सलाह देता हूं! OpenLayers और पत्रक

इसके अलावा, आपको इस बात पर विचार करने की आवश्यकता हो सकती है कि कैटलॉग 0.5.1के 2.12लिए वर्तमान स्थिर रिलीज है, लेकिन यह ओपन लॉयर्स के लिए है।

पुनश्च अगर मैं एक मोबाइल एप्लिकेशन विकसित करना चाहता हूं, तो मुझे लगता है कि मैं इसके लिए जा सकता हूं Leaflet


3

एक बुनियादी ट्यूटोरियल है जो दोनों ओपनलाइनर्स 3 और जीआरटी के एपीआई की तुलना करता है, जिससे आप दोनों में एक ही चीज का निर्माण कर सकते हैं। यह एस्टन टेक्नोलॉजी द्वारा लिखा गया है और ट्यूटोरियल कार्य हैं:

  • OSM टाइल्स के साथ मूल नक्शा
  • ऑर्डनेंस सर्वे टाइल्स के साथ ओएस-जीबी मैप
  • मार्करों के साथ GeoJSON लेयर
    • GeoJSON लेयर के लिए जानकारी
  • WMS लेयर
    • WMS लेयर के लिए जानकारी

यहाँ लिंक है: https://astuntechnology.github.io/osgis-ol3-leaflet/index.html


स्पेसबार द्वारा स्क्रॉल करना टूट गया है btw
Bugmenot123

3

यह इस बात पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं। 80% वेब मानचित्र परियोजनाओं के लिए USC सरल और तेज़ है।

उसी तरह जिस तरह से आपको अपने पड़ोस में घूमने के लिए स्पेसशिप की जरूरत नहीं होती है, ज्यादातर समय मुझे ओपनलाइयर्स का तरीका बहुत जटिल लगता था, विशेष रूप से वर्जन 3 से।

उदाहरण के लिए, एक परत चयनकर्ता बनाने से संभवतः कैटलॉग में कोड की 5-6 लाइनें लगती हैं जबकि ओपन लाइयर्स 4 में आपको इसे स्क्रैच से बनाना होगा। आपके पास इसे करने के लिए बहुत बढ़िया साधन हैं, लेकिन अधिकांश समय आप एक स्वनिर्धारित परत चयनकर्ता नहीं चाहते हैं, सिर्फ एक जो ठीक काम करता है।

विचार करने के लिए एक और महत्वपूर्ण बात यह है कि इंटरनेट के बारे में अधिकांश जानकारी, ट्यूटोरियल और बहसें OpenLayers 2 के बारे में हैं। वे पुराने हैं, क्योंकि संस्करण 3 संस्करण 2 के साथ संगत नहीं है। और अब हम संस्करण 4 पर हैं। संस्करण 2 अधिक जटिल कार्यों के साथ परतों के चयनकर्ता, पॉपअप आदि जैसे बहुत सारे सरल सामान थे; लेकिन जिस भी कारण से उन्होंने जटिल और बहुत शक्तिशाली प्रणाली की ओर विकसित होने के लिए उन प्रकार की चीजों को हटा दिया। इसके अलावा, 2012 की तुलना में अब कैटलॉग के बारे में बहुत अधिक जानकारी है, और यह एक अधिक परिपक्व तकनीक है।

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

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