उपरोक्त उत्कृष्ट उत्तरों के अलावा, मुझे अपना अनुभव जोड़ने दें। डेढ़ साल पहले मैंने फैसला किया कि मैं अपने मास्टर प्रोजेक्ट में ओपनलाइयर्स (ओएल) का उपयोग करना चाहता हूं और इसे सीखना चाहता हूं। मैं 1980 के दशक की शुरुआत से एक पुरातत्वविद् के रूप में अपने काम के हिस्से के रूप में प्रोग्रामिंग और डिजिटल मानचित्र बना रहा हूं, और 15 वर्षों से एक आर्कजीआईएस उपयोगकर्ता हूं। मुझे खुशी है कि मैं अपनी परियोजना के लिए ओएल को चुनता हूं, लेकिन यह हमेशा इसे सीखने का एक आसान मार्ग नहीं था। कुछ चीजें स्पष्ट नहीं थीं और केवल परीक्षण और त्रुटि से सीखी गईं। इसलिए, मुझे शुरुआती लोगों के लिए कुछ सलाह है।
मेरी यात्रा सीखने ओएल वास्तव में जा रही है जब मैंने सफारी बुक ऑनलाइन पर $ 10 / माह USD के लिए 5-स्लॉट बुकशेल्फ़ खाते के लिए साइन अप किया। मैं खरीदने से पहले पुस्तकों की समीक्षा करना चाहता था, और कुछ स्टोर जीआईएस से संबंधित कंप्यूटर पुस्तकों को ले जा सकते हैं। अब ओएल 2 पर तीन पुस्तकें हैं। एक नई 58-पृष्ठ की पुस्तक जिसे इंस्टेंट ओपनलाइयर्स स्टार्टर बाय डी लोरेंजो और एलेग्री (अप्रैल 2013) एक अच्छी शुरुआत है, लेकिन पहले दो किताबें और उनके कोड नमूने (प्रकाशक की वेब वेबसाइटों से उपलब्ध हैं) साइट, प्रत्येक पुस्तक के एक नि: शुल्क नमूने अध्याय के साथ) अच्छे संसाधन थे:
- OpenLayers 2.10: एरिक हैज़र्ड द्वारा शुरुआती गाइड (मार्च 2011)
- एंटोनियो सैंटियागो पेरेज़ द्वारा ओपन लाइकर्स कुकबुक (अगस्त 2012)
सीएसएस और ब्राउज़र संगतता पर कभी-कभार निराशा के कारण, मैंने एक जावास्क्रिप्ट फ्रेमवर्क सीखना भी समाप्त कर दिया। मैं Dojo को चुनता हूं क्योंकि यही पेरेस ने अपनी किताब में इस्तेमाल किया है। आधुनिक Dojo (Dojo 1.7 +) एक असिंक्रोनस मॉड्यूल परिभाषा (AMD) प्रारूप का उपयोग करते हुए पहले के संस्करणों से काफी अलग दृष्टिकोण है। सब कुछ करने का तरीका बदल गया। मुझे समझ में नहीं आया कि यह अन्यथा उत्कृष्ट पुस्तक Dojo के पूर्व-1.7 संस्करण का उपयोग करती है जिसे अगस्त 2012 में प्रकाशित होने से 9 महीने पहले अप्रचलित किया गया था। Esri ने जून 2012 में आधुनिकीकरण तक अपने जावास्क्रिप्ट ArcGIS API में पूर्व 1.7 Dojo का उपयोग जारी रखा। , और यह कई ArcGIS जावास्क्रिप्ट डेवलपर्स के लिए एक दर्दनाक स्विच था।
दोजो 1.3 के बारे में 2010 में लिखी गई एक पुस्तक के अलावा, Dojo कितनी खराब समर्थित है, यह समझने के लिए, अधिकांश पुस्तकें 2007 और 2008 में लिखी गईं। आधुनिक Dojo के लिए कोई प्रकाशित पुस्तकें नहीं हैं - आपको ऑनलाइन संसाधनों से सीखना चाहिए, लगभग सभी जो उनकी वेब साइट पर हैं। मूल रूप से, पेरेज़ की पुस्तक में उदाहरणों के साथ काम करने के लिए, आपको डोज़ो बिट्स को अनदेखा करने के लिए जावास्क्रिप्ट के बारे में पर्याप्त जानना होगा और उदाहरणों को सादे जावास्क्रिप्ट या अपनी पसंद के ढांचे में स्थानांतरित करना होगा।
रेट्रोस्पेक्ट में, मैं चाहता हूं कि मैं एक्सटीजेएस फ्रेमवर्क और जियोएक्स्ट के साथ गया था। यदि आपकी परियोजना खुला स्रोत है, तो एक्सटीजेएस मुक्त है, और क्योंकि कई कंपनियां खुशी से एक समर्थित संस्करण के लिए भुगतान करती हैं, वे व्यापक वेब साइट प्रलेखन और ट्यूटोरियल पर समय बिताने के लिए खर्च कर सकते हैं।
मैं अलग-अलग उदाहरणों के साथ काम करके / हैकिंग करके सबसे अच्छा सीखता हूं। OpenLayers के डेवलपर्स के पास यह वही दर्शन है, जो प्राथमिक प्रलेखन वे सीखने के लिए इंगित करते हैं, उदाहरणों की जांच कर रहे हैं। हालाँकि, उनके वेब साइट और अन्य जगहों पर कुछ OL के उदाहरण हैं जो शुरुआती को ठोकर बना सकते हैं। (निचे देखो।)
दस्तावेज़ीकरण के रूप में उदाहरणों पर निर्भरता का अर्थ यह भी है कि उपयोगकर्ता के पास वेब मानचित्र विकसित करने के लिए एक अच्छे काम के प्रवाह की भावना नहीं है। यह उन मानचित्रों को बनाने की ओर ले जा सकता है जो अपूर्ण महसूस करते हैं - उदाहरण के लिए, वे मानचित्र उपयोगकर्ता इंटरफ़ेस और "देखो और महसूस करो" के लिए सीएसएस अनुकूलन का अभाव हो सकता है। अनुकूलन के साथ ओएलएस सीएसएस को ओवरराइड करना शुरुआती के लिए चुनौतीपूर्ण लगता है, लेकिन फायरबग आपको उन तत्वों के नामों को खोजने में मदद कर सकता है जिन्हें आपको ओवरराइड करने की आवश्यकता है। स्वीकार किए गए कार्य प्रवाह की भावना की कमी भी फ्रैंकनोड के निर्माण की ओर ले जा सकती है, क्योंकि उपयोगकर्ता अपने कोड में शूहॉर्न की सुविधा देते हैं क्योंकि वे पाते हैं कि वे इसे चाहते हैं।
यह मुझे उस अंतिम आइटम की ओर ले जाता है जो मुझे लगता है कि OL साइट के दस्तावेज़ों में कमी है, OL मानचित्रों के लिए "सर्वोत्तम प्रथाओं" की भावना। क्या इसे मॉड्यूलर और मजबूत बनाने के लिए मेरे कोड को व्यवस्थित करने का एक बेहतर तरीका है? जावास्क्रिप्ट क्लोजर और ओएल ऑब्जेक्ट्स के साथ नुकसान क्या हैं? मुझे अपनी शैलियाँ कहाँ घोषित करनी चाहिए? और इसी तरह।
विकी में विभिन्न पुरानी फाइलों के अलावा, दो सामान्य मुद्दे हैं जो एक शुरुआती जानकारी होनी चाहिए जब आधिकारिक ओएल उदाहरण और एपीआई दस्तावेजों से सीखते हैं। सबसे पहले, OL वेब साइट पर OL विकास उदाहरणों के पृष्ठ पर कोई संगठन नहीं है। यह उदाहरणों की उस निर्देशिका (उदाहरण-list.xml) में xml फ़ाइल से फीड प्रस्तुत कर रहा है (इनमें से 13 फ़रवरी 2014 तक 207) और एक ग्रिड में फ़ाइलनाम द्वारा पंक्तियों को वर्णानुक्रम से सॉर्ट करना है। अधिक उन्नत उदाहरण बुनियादी लोगों के साथ मिश्रित होते हैं। आप कीवर्ड द्वारा उदाहरण खोज सकते हैं, लेकिन कई उदाहरणों में कीवर्ड की कमी होती है और खोज सुविधा में केवल कीवर्ड ही नहीं, सामग्री और पेज शीर्षक भी शामिल होते हैं। परिणामों को शब्द आवृत्ति के बाद सबसे पहले खोजे गए खोज शब्दों के साथ लौटाया जाता है। परिणामों में दिखाने के लिए केवल खोज शब्दों में से एक का मिलान होना चाहिए। OL विकी पर UserRecipes पेज श्रेणी द्वारा आयोजित 90 उदाहरणों की सूची देता है, और यह वर्गीकरण एक सहायता है। इनमें से 66 उदाहरण पृष्ठ के उदाहरणों के लाइव लिंक हैं और बाकी हटाए गए उदाहरणों के लिए खराब लिंक हैं।
दूसरा, मूल रूप से एपीआई प्रलेखन के दो संस्करण हैं जो पहली नज़र में समान प्रतीत होते हैं। आधिकारिक एपीआई एक निर्देशिका में है जिसे एपिडॉक्स और ब्लीडिंग एज कहा जाता है, लेकिन अस्थिर, डेवलपर लाइब्रेरी एक निर्देशिका में है जिसे डॉक्स / डॉक्स कहा जाता है। URL अन्यथा समान हैं। (ट्रंक संस्करण भी हैं।) दूसरे संस्करण को देखने के लिए पृष्ठ के पते को संपादित करें। विकी नोट करता है कि डेवलपर लाइब्रेरी को संपत्तियों, कार्यों आदि पर निर्भर नहीं किया जाना चाहिए, किसी भी समय लाइब्रेरी से हटाया जा सकता है। OpenLayers 3 वास्तविकता के करीब होने के साथ (यह बीटा में उपलब्ध है और अब इस पर एक पुस्तक है), मुझे संदेह है कि भविष्य में ओएल 2 में बहुत ज्यादा बदलाव नहीं होंगे। ध्यान अब ओएल 3 पर है।
सामान्य तौर पर, मुझे ओएल एपीआई पृष्ठ अत्यधिक कंकाल वाले लगते हैं, जिनमें अक्सर स्पष्टीकरण या उदाहरणों का अभाव होता है, विशेष रूप से किसी ऐसे व्यक्ति के लिए जो अधिक पूर्ण एपीआई प्रलेखन के साथ पुस्तकालयों के लिए उपयोग किया जाता है। जिस तरह से इसे प्रस्तुत किया जाता है उससे आपको उस वस्तु की स्पष्ट तस्वीर नहीं मिलती है जो उसे विरासत में मिली है।
सामान्य रूप से वेब पर OL उदाहरणों में, कई उपयोग की गई वस्तुओं या सिंटैक्स को हटा दिया गया है क्योंकि इसे बेहतर संस्करणों द्वारा बदल दिया गया है। उदाहरण के लिए, Layer.Vector अब Layer.Marker के रूप में आरेखण मार्करों का पसंदीदा तरीका है। संस्करण 3 में पदावनत किया गया है। फ़ाइल को हटाए जाने की जाँच करें। सुनिश्चित करें कि आप उन वस्तुओं का उपयोग नहीं कर रहे हैं जो रास्ते में हैं। या, कम से कम जागरूक रहें यदि आप अपने कोड को ओएल 3 में अपग्रेड करते हैं तो आपको इसे बदलने की आवश्यकता होगी।
ऊपर जूलियन-शमूएल लैक्रॉइक्स द्वारा जुड़ी असीम ओपनलाइयर्स कार्यशाला के अलावा, आईबीएम के पास एक शांत ट्यूटोरियल है, जो तीन साल पुराना है, जो कि एक पूर्ण जीआईएस वेब ऐप बनाने के लिए ओपन लाइयर्स, मैपसर्वर, Google गियर्स और jQuery का उपयोग करता है: OpenLayers के साथ डेटा लाएं। : वेब मानचित्रों में कई भिन्न स्रोतों से डेटा का उपयोग करना
इसके अलावा, लेयर स्विचर को स्टाइल करने के लिए इस उपयोगी पोस्ट को देखें
ओएल पहेलियों के कुछ उदाहरण पाने के लिए Google ने OpenLayers और jsFiddle शब्दों का इस्तेमाल किया। Techslides साइट के परिणाम पृष्ठ की सूची में से कुछ हैं।
अंतिम, सावधान रहें कि अधिकांश उदाहरणों में मानचित्र चित्र OpenStreetMap (OSM) सर्वरों से हैं और ये हर बार और बाद में योजनाबद्ध या अनियोजित हो जाते हैं और आपको इनके स्थान पर गुलाबी टाइलें मिलेंगी। कभी-कभी आप सोचेंगे कि आपने अपना कोड खराब कर दिया है। आप OpenStreetMap विकी पर मंच की स्थिति की जांच कर सकते हैं।