นอกจากคำตอบที่ยอดเยี่ยมข้างต้นให้ฉันเพิ่มประสบการณ์ของตัวเอง หนึ่งปีครึ่งที่ผ่านมาฉันตัดสินใจว่าฉันต้องการใช้ OpenLayers (OL) ในโครงการปริญญาโทของฉันและเริ่มเรียนรู้ ฉันได้ทำการเขียนโปรแกรมและทำแผนที่ดิจิตอลเป็นส่วนหนึ่งของงานของฉันในฐานะนักโบราณคดีตั้งแต่ต้นทศวรรษ 1980 และเป็นผู้ใช้ ArcGIS มาเป็นเวลา 15 ปี ฉันมีความสุขที่ฉันเลือก OL สำหรับโครงการของฉัน แต่มันก็ไม่ใช่เส้นทางที่ราบรื่นในการเรียนรู้ บางสิ่งไม่ชัดเจนและเรียนรู้จากการลองผิดลองถูกเท่านั้น ดังนั้นฉันมีคำแนะนำสำหรับผู้เริ่มต้น
การเดินทางของฉันการเรียนรู้ OL เกิดขึ้นจริง ๆ เมื่อฉันลงทะเบียนบัญชีชั้นวางหนังสือ 5 ช่องบน Safari Books Online ในราคา $ 10 / เดือน USD ฉันต้องการตรวจสอบหนังสือก่อนซื้อและมีร้านค้าเพียงไม่กี่แห่งที่สามารถเยี่ยมชมหนังสือคอมพิวเตอร์ที่เกี่ยวข้องกับ GIS ตอนนี้มีหนังสือสามเล่มใน OL 2 หนังสือ 58 หน้าใหม่ที่เรียกว่า Instant OpenLayers Starter โดย Di Lorenzo และ Allegri (เม.ย. 2556) เป็นการเริ่มต้นที่ดี แต่หนังสือสองเล่มแรกและตัวอย่างโค้ด (จากเว็บของผู้จัดพิมพ์ ไซต์พร้อมกับบทตัวอย่างฟรีของหนังสือแต่ละเล่ม) เป็นแหล่งข้อมูลที่ดี:
- OpenLayers 2.10: คู่มือผู้เริ่มต้นโดย Erik Hazzard (มีนาคม 2554)
- OpenLayers Cookbook โดย Antonio Santiago Perez (สิงหาคม 2555)
เนื่องจากความผิดหวังเป็นครั้งคราวของ css และความเข้ากันได้ของเบราว์เซอร์ฉันจึงสิ้นสุดการเรียนรู้กรอบงาน JavaScript เช่นกัน ฉันเลือกโดโจเพราะนี่คือสิ่งที่เปเรซใช้ในหนังสือของเขา Modern Dojo (Dojo 1.7 +) เป็นแนวทางที่แตกต่างอย่างมากจากเวอร์ชั่นก่อนหน้านี้โดยใช้รูปแบบ Asynchronous Module Definition (AMD) วิธีการทำทุกอย่างเปลี่ยนไป ฉันไม่เข้าใจว่าหนังสือที่ยอดเยี่ยมเล่มนี้ใช้ Dojo รุ่น 1.7 รุ่นก่อนหน้าซึ่งล้าสมัยไปแล้ว 9 เดือนก่อนที่หนังสือเล่มนี้จะตีพิมพ์ในเดือนสิงหาคม 2012 Esri ยังคงใช้ prejo-1.7 ใน JavaScript ArcGIS API ของพวกเขาจนกว่าจะทันสมัยในเดือนมิถุนายน 2012 และนี่เป็นสวิตช์ที่เจ็บปวดสำหรับนักพัฒนาจาวาสคริปต์ของ ArcGIS
เพื่อให้เข้าใจว่า Dojo ได้รับการสนับสนุนไม่ดีอย่างไรนอกจากหนังสือที่เขียนในปี 2010 เกี่ยวกับ Dojo 1.3 หนังสือส่วนใหญ่ถูกเขียนในปี 2007 และ 2008 ไม่มีหนังสือที่ตีพิมพ์สำหรับ Modern Dojo - คุณต้องเรียนรู้จากแหล่งข้อมูลออนไลน์เกือบทั้งหมด ซึ่งอยู่บนเว็บไซต์ของพวกเขา โดยทั่วไปในการทำงานกับตัวอย่างในหนังสือของเปเรซคุณจำเป็นต้องรู้เกี่ยวกับจาวาสคริปต์เพื่อละเว้นบิต Dojo และย้ายตัวอย่างไปเป็น JavaScript ธรรมดาหรือเฟรมเวิร์กที่คุณเลือก
ในการหวนกลับฉันหวังว่าฉันได้ไปกับกรอบ ExtJS และ GeoExt ExtJS ไม่มีค่าใช้จ่ายหากโครงการของคุณเป็นโอเพ่นซอร์สและเนื่องจากหลาย ๆ บริษัท จ่ายเงินอย่างมีความสุขสำหรับรุ่นที่ได้รับการสนับสนุน
ฉันเรียนรู้ได้ดีที่สุดจากการทำงานกับ / แฮ็กตัวอย่าง นักพัฒนาที่ OpenLayers มีปรัชญาเดียวกันกับเอกสารหลักที่ชี้ไปเพื่อการเรียนรู้คือการตรวจสอบตัวอย่าง อย่างไรก็ตามตัวอย่าง OL บางอย่างในเว็บไซต์ของพวกเขาและที่อื่น ๆ มีปัญหาที่อาจทำให้ผู้เริ่มต้นสะดุด (ดูด้านล่าง)
การพึ่งพาตัวอย่างเป็นเอกสารก็หมายความว่าผู้ใช้ไม่มีความรู้สึกถึงขั้นตอนการทำงานที่ดีสำหรับการพัฒนาแผนที่เว็บ สิ่งนี้สามารถนำไปสู่การสร้างแผนที่ที่รู้สึกไม่สมบูรณ์ - ตัวอย่างเช่นพวกเขาอาจขาดการปรับแต่ง css ให้กับส่วนติดต่อผู้ใช้ของแผนที่และ "รูปลักษณ์และความรู้สึก" การเอาชนะ OL css ด้วยการปรับแต่งให้ความรู้สึกที่น่ากลัวสำหรับผู้เริ่มต้น แต่ Firebug สามารถช่วยคุณค้นหาชื่อองค์ประกอบที่คุณต้องการแทนที่ การขาดขั้นตอนการทำงานที่เป็นที่ยอมรับนั้นสามารถนำไปสู่การสร้าง Frankencode ได้เนื่องจากผู้ใช้งานสามารถใส่รหัสในขณะที่พวกเขาต้องการ
สิ่งนี้นำฉันไปยังรายการสุดท้ายที่ฉันรู้สึกว่าเอกสารของไซต์ OL ขาดความรู้สึกของ "แนวปฏิบัติที่ดีที่สุด" สำหรับแผนที่ OL มีวิธีที่ดีกว่าในการจัดระเบียบรหัสของฉันเพื่อให้เป็นแบบแยกส่วนและมีประสิทธิภาพหรือไม่ ข้อผิดพลาดของการปิด JavaScript และวัตถุ OL คืออะไร ฉันควรจะประกาศสไตล์ของฉันที่ไหน? และอื่น ๆ
นอกเหนือจากไฟล์ที่ล้าสมัยต่างๆใน Wiki แล้วยังมีปัญหาทั่วไปสองประการที่ผู้เริ่มต้นควรระวังเมื่อเรียนรู้จากตัวอย่าง OL อย่างเป็นทางการและเอกสาร API ประการแรกไม่มีองค์กรไปยังหน้าของตัวอย่างการพัฒนา OL บนเว็บไซต์ OL มันเป็นเพียงการนำเสนอฟีดจากไฟล์ xml ในไดเรกทอรีนั้น (example-list.xml) ของตัวอย่าง (207 รายการจาก ณ วันที่ 13 กุมภาพันธ์ 2014) และเรียงลำดับแถวตามตัวอักษรตามชื่อไฟล์ในตาราง ตัวอย่างขั้นสูงเพิ่มเติมจะผสมกับตัวอย่างพื้นฐาน คุณสามารถค้นหาตัวอย่างด้วยคำหลัก แต่ตัวอย่างจำนวนมากขาดคำหลักและคุณลักษณะการค้นหามีเนื้อหาและชื่อหน้าในการค้นหาไม่ใช่แค่คำหลัก ผลลัพธ์จะถูกส่งคืนพร้อมคำค้นหาจำนวนสูงสุดที่ตรงกันก่อนตามด้วยความถี่ของคำ คำค้นหาหนึ่งคำเท่านั้นที่ต้องมีการจับคู่เพื่อให้ปรากฏในผลลัพธ์ หน้า UserRecipes ใน OL Wiki แสดงรายการประมาณ 90 ตัวอย่างที่จัดเรียงตามหมวดหมู่และการจัดหมวดหมู่นี้เป็นวิธีใช้ ในจำนวนนี้มี 66 ลิงก์ที่เชื่อมโยงไปยังตัวอย่างในหน้าตัวอย่างและส่วนที่เหลือเป็นลิงค์ที่ไม่ดีสำหรับตัวอย่างที่ถูกลบ
ประการที่สองมีเอกสาร API สองเวอร์ชันโดยทั่วไปซึ่งดูเหมือนจะเหมือนกันในครั้งแรก API อย่างเป็นทางการอยู่ในไดเรกทอรีที่เรียกว่า / apidocs และ edge edge แต่มีความผันผวนห้องสมุดนักพัฒนาซอฟต์แวร์อยู่ในไดเรกทอรีที่เรียกว่า / docs URL นั้นเหมือนกัน (นอกจากนี้ยังมีรุ่นที่เก็บไว้) เพียงแก้ไขที่อยู่ของหน้าเพื่อดูรุ่นอื่น Wiki ตั้งข้อสังเกตว่าไลบรารีนักพัฒนาซอฟต์แวร์ไม่ควรถูกใช้เป็นคุณสมบัติฟังก์ชัน ฯลฯ อาจถูกลบออกจากไลบรารีได้ตลอดเวลา ด้วย OpenLayers 3 ใกล้เคียงกับความเป็นจริง (มีให้บริการในรุ่นเบต้าและมีหนังสืออยู่ตอนนี้) ฉันสงสัยว่าจะไม่เปลี่ยนแปลงมากเกินไปในอนาคตของ OL 2 ในอนาคต โฟกัสตอนนี้คือ OL 3
โดยทั่วไปแล้วฉันพบว่าหน้า OL API มีโครงกระดูกมากเกินไปมักไม่มีคำอธิบายหรือตัวอย่างที่เป็นตัวอย่างโดยเฉพาะอย่างยิ่งสำหรับคนที่ใช้ห้องสมุดที่มีเอกสาร API ที่สมบูรณ์กว่า วิธีที่นำเสนอคุณไม่ได้ภาพที่ชัดเจนของวัตถุที่สืบทอดมา
ของตัวอย่าง OL บนเว็บโดยทั่วไปมีการใช้ออบเจ็กต์หรือไวยากรณ์จำนวนมากที่เลิกใช้แล้วเนื่องจากถูกแทนที่ด้วยเวอร์ชันที่ปรับปรุงแล้ว ยกตัวอย่างเช่น Layer.Vector ตอนนี้เป็นวิธีที่ต้องการในการวาดเครื่องหมายในขณะที่ Layer.Marker เลิกใช้แล้วในเวอร์ชัน 3 ตรวจสอบไฟล์ที่คัดค้านเพื่อให้แน่ใจว่าคุณไม่ได้ใช้วัตถุที่กำลังจะหมด หรืออย่างน้อยก็ควรระวังหากคุณอัพเกรดรหัสเป็น OL 3 คุณจะต้องเปลี่ยนสิ่งนี้
นอกจากนี้ยังมีการประชุมเชิงปฏิบัติการไร้พรมแดน OpenLayers เชื่อมโยงโดย Julien-ซามูเอล Lacroix ข้างต้นไอบีเอ็มมีการกวดวิชาเย็นแม้ว่าอายุสามปีที่ OpenLayers การใช้งาน MapServer, Google Gears และ jQuery ในการสร้างเว็บแอป GIS สมบูรณ์: นำข้อมูลร่วมกับ OpenLayers : การใช้ข้อมูลจากแหล่งต่าง ๆ หลายแหล่งในแผนที่เว็บ
นอกจากนี้ให้ตรวจสอบโพสต์ที่มีประโยชน์ในการออกแบบเลเยอร์ตัวสลับ
Google คำว่า OpenLayers และ jsFiddle เพื่อรับตัวอย่างของซอลด์ OL ผลลัพธ์จากไซต์ techslides คือหน้าเว็บที่แสดงรายการบางส่วน
สุดท้ายโปรดระวังว่าภาพแผนที่ในตัวอย่างส่วนใหญ่มาจากเซิร์ฟเวอร์ OpenStreetMap (OSM) และสิ่งเหล่านี้จะล้มลงทุก ๆ คราวจากนั้นวางแผนหรือไม่ได้วางแผนและคุณจะได้กระเบื้องสีชมพูมาแทนที่ บางครั้งคุณจะคิดว่าคุณเมารหัส คุณสามารถตรวจสอบสถานะของแพลตฟอร์มได้บนวิกิ OpenStreetMap