บทช่วยสอนสำหรับ OpenLayers? [ปิด]


12

ฉันต้องสร้างแผนที่เว็บที่แสดงเลเยอร์แรสเตอร์จำนวนมาก ฉันใช้ mapserver และต้องการใช้ Openlayers แต่ฉันไม่สามารถหาบทแนะนำที่ดีเกี่ยวกับเรื่องนี้ได้ ฉันเห็นคำถามสองสามข้อ ( 1และ2 ) ที่บอกว่าไม่มีเอกสารที่ดี สิ่งต่าง ๆ มีการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้?

ฉันต้องการค้นหาบทเรียนการสอนจากพื้นฐานถึงสิ่งที่ค่อนข้างซับซ้อนพร้อมคำอธิบายที่ดีเกี่ยวกับโค้ดและรูปภาพ / ตัวอย่างของผลลัพธ์ ตอนนี้ฉันจัดการเพื่อทำแผนที่เว็บที่ง่ายที่สุดด้วยไฟล์. map ของฉันแต่ฉันต้องกำหนดเอง (เพิ่มตำนานเลเยอร์กลุ่มเพิ่มตัวควบคุมเพิ่มเติมฝัง ฯลฯ )

คำตอบ:


7

ในขณะที่คนอื่นแนะนำบทเรียนออนไลน์ที่ดีให้ฉันบอกคุณเกี่ยวกับหนังสือที่ให้รากฐานที่แข็งแกร่งที่จำเป็นกับ OpenLayers

หนังสือเล่มนี้คือ: คู่มือผู้เริ่มต้นใช้งานของ Erik Hazzard 2.10 มันสามารถใช้ได้จาก Packt Publishers

ฉันขอแนะนำหนังสือเล่มนี้เพราะมันเกี่ยวข้องกับส่วนสำคัญทั้งหมดของห้องสมุด มันเริ่มจากพื้นฐานและค่อยๆช่วยให้คุณเติบโตไปสู่ส่วนที่ซับซ้อนของ API


2
มันสามารถใช้ได้ในรูปแบบ E-Book จากที่นี่สำหรับ£ 14.44 ดูยอดเยี่ยม
Mark Cupitt

ราคาขึ้นอยู่กับประเทศที่คุณเข้าถึง มันแสดงให้ฉันเห็นราคาซึ่งประมาณ $ 3;
Devdatta Tengshe

ว้าวฉันเดาว่าพวกเรากำลังถูกลงโทษในฟิลิปปินส์ ควรให้คุณซื้อมาให้ฉัน :-)
Mark Cupitt

ขอบคุณสำหรับคำแนะนำที่เพิ่งได้รับหนังสือจากเพื่อนให้ดู ...
Nadya

คุณไม่สามารถใช้บางอย่างเช่น PirateBrowser เพื่อซ่อนประเทศของคุณและซื้อในราคาต่ำสุดได้หรือไม่
ใต้ Radar

13

นอกจากคำตอบที่ยอดเยี่ยมข้างต้นให้ฉันเพิ่มประสบการณ์ของตัวเอง หนึ่งปีครึ่งที่ผ่านมาฉันตัดสินใจว่าฉันต้องการใช้ 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


2
นี่เป็นคำตอบที่ดี เป็นเรื่องน่าละอายที่เราไม่ได้รับคำตอบมากมายเช่นนี้ในเว็บไซต์
Devdatta Tengshe

ขอขอบคุณสำหรับคำตอบตลอด! ตอนนี้ฉันกำลังต่อสู้กับ GeoExt (และ ExtJS) และมันก็มีปัญหามากขึ้นกับบทเรียนมากกว่า OL ตัวอย่างของพวกเขาดูเหมือนว่าจะเป็นอย่างนี้ :)
nadya

6

ดูที่การประชุมเชิงปฏิบัติการไร้พรมแดน OpenLayers มันครอบคลุมวัสดุจำนวนมาก เวิร์กช็อปกำลังใช้ GeoServer แทน MapServer แต่คุณสามารถเปลี่ยน URL ของตัวอย่างเป็นบริการ MapServer WMS ของคุณ


4

Open Layers เป็นแพ็คเกจที่ยอดเยี่ยมมีความยืดหยุ่นอย่างเหลือเชื่อ แต่มันไม่มีเอกสารสำหรับผู้เริ่มต้น แต่มีเอกสารรายละเอียดมากมายสำหรับนักพัฒนา

สิ่งที่ฉันทำเมื่อเริ่มต้นครั้งแรกคือดูตัวอย่างทั้งหมดเลือกสิ่งที่มีฟังก์ชั่นที่ฉันต้องการวิเคราะห์รหัสและสร้างฟังก์ชันการทำงานทีละขั้นตอนทดสอบตามที่ฉันไป ฉันพบว่าการลองใช้ฟังก์ชันการทำงานมากเกินไปในหนึ่งครั้งทำให้ยากต่อการนึกถึงแนวคิดและปัญหาการดีบัก

จากนั้นฉันก็พบ GIS @ SE ซึ่งเป็นประโยชน์อย่างมากในประเด็นเฉพาะไม่ว่าจะเป็นการค้นคว้าคำถามของคนอื่นหรือถามตัวเอง

นอกจากนั้น @Julian อาจให้ทางเลือกที่ดีที่สุดแก่คุณในแง่ของบทเรียนพวกเขาค่อนข้างดี


ขอบคุณสำหรับคำตอบฉันได้เห็นตัวอย่างเหล่านี้แล้ว แต่ไม่พบสิ่งที่ฉันต้องการ ดังนั้นฉันจะต้องเขียนโค๊ด ...
nadya

2

เพียงกล่าวถึงหน้านี้จาก OpenGeoก็มีประโยชน์สำหรับฉันเช่นกัน พวกเขาเริ่มต้นจากพื้นฐานและมีตัวอย่างที่ดีของเหตุการณ์GetFeatureInfoด้วยการลบป๊อปอัป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.