QGIS

QGIS 3.0 - อย่างไรเมื่อไหร่และอย่างไร มันบอกเป็นนัยว่า

พวกเราหลายคนจะถาม:

QGIS 3.0 จะออกเมื่อไหร่?

ปีที่แล้ว (2015) ทีมงานโครงการได้เริ่มตรวจสอบเวลาและวิธีที่ QGIS 3.0 จะได้รับการเผยแพร่ พวกเขาสัญญาว่าจะตามโพสต์จาก อานิตาเกรเซอร์ซึ่งพวกเขาจะนำเสนอให้ผู้ใช้และผู้พัฒนาทราบอย่างชัดเจนก่อนที่จะปล่อย QGIS 3.0 เมื่อไม่นานมานี้พวกเขาได้พยายามเปิดเผยข้อควรพิจารณาบางประการสำหรับรุ่น QGIS 3.0 และในตอนท้ายของโพสต์มีโอกาสให้เรานำเสนอแนวคิดของเรา

ทำไม 3.0?

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

บางครั้งหมด API เป็นสิ่งจำเป็นเพื่อรองรับการปรับปรุงสถาปัตยกรรมด้วยวิธีการที่ดีขึ้น, ห้องสมุดใหม่และการแก้ไขไปสู่การตัดสินใจที่เกิดขึ้นในอดีตที่ผ่านมา

อะไรคือผลกระทบของการทำลาย API หรือไม่?

เหตุผลหนึ่งที่ละเมิด API ใน QGIS 3.0 นี้ก็คือว่ามันจะมีผลกระทบขนาดใหญ่ซึ่งสามารถทำลายหลายร้อยปลั๊กอินที่พัฒนาแล้วที่จะไม่สามารถเข้ากันได้กับ API ใหม่และผู้เขียนของเหล่านี้ได้จะทำอย่างไร ทบทวนการพัฒนาเพื่อให้มั่นใจว่าความเข้ากันได้กับ API ใหม่

ขอบเขตของการเปลี่ยนแปลงที่จำเป็นขึ้นอยู่กับ:

  • การเปลี่ยนแปลง API หลายคนส่งผลกระทบต่อการทำงานในปัจจุบัน
    วิธีการหลายจุดปลั๊กอินผู้เขียนได้ใช้ส่วนของ API ที่จะเปลี่ยน
  • อะไรคือการเปลี่ยนแปลงหลักในการ 3.0?

มีสี่ประเด็นสำคัญที่กำลังมองหาการเปลี่ยนแปลงที่ 3.0 คือ:

 

Qt4 เพื่อปรับปรุง QT5: นี่คือชุดพื้นฐานของไลบรารีที่ QGIS สร้างขึ้นในระดับบนสุด เราพูดถึงระดับการทำงานของ CORE ของแพลตฟอร์ม QT ยังจัดเตรียมไลบรารีเพื่อดำเนินการจัดการหน่วยความจำ การเชื่อมต่อ และการจัดการกราฟิก Qt4 (ซึ่งปัจจุบันอิงตาม QGIS) ยังไม่ได้รับการพัฒนาโดยผู้ดูแลไลบรารี Qt และอาจมีปัญหาในการใช้งานกับบางแพลตฟอร์ม (เช่น OS X) และทำให้จัดการเวอร์ชันไบนารีได้ง่ายขึ้น (เช่น การทดสอบ Debian และ Debian รุ่นถัดไป "ยืด"). กระบวนการนำ QGIS มาสู่ QT5 มีความก้าวหน้าที่สำคัญอยู่แล้ว (ส่วนใหญ่เป็นสิ่งที่ Matthias Kuhn ทำ) ร่วมกับ Marco Bernasocchi สูบบน Android "QField" ซึ่งอิงจาก QT5 ทั้งหมด อย่างไรก็ตาม มีข้อ จำกัด บางประการในการทำให้ QT5 ใหม่ใช้งานได้เนื่องจากมีผลกระทบต่อ QGIS โดยเฉพาะอย่างยิ่งกับวิดเจ็ตเว็บเบราว์เซอร์ (ส่วนใหญ่ใช้ใน Composer และที่อื่น ๆ ใน QGIS ด้วย)

PyQt4 เพื่อปรับปรุง PyQt5: นี่คือการเปลี่ยนแปลงของภาษา Python สำหรับ Qt ซึ่งใช้ QGIS Python API เกิดการเปลี่ยนแปลงห้องสมุด QT5 C ++ ยังคาดว่าจะถ่ายโอนไปยังห้องสมุดหลาม PyQt5 เพื่อให้พวกเขาสามารถใช้ประโยชน์จากสิทธิประโยชน์ของ API ใหม่ในหลาม QT5
การอัปเดตหลามงูหลาม 2.7 3 ไปที่: ขณะนี้ทุกอย่างทำงานบน Python 2.7 Python 3 เป็น python เวอร์ชันล่าสุดและได้รับการแนะนำจากผู้ที่นำโปรเจ็กต์นั้น ๆ Python 2 เข้ากันไม่ได้กับ Python 3 เล็กน้อย (เกือบจะเป็นสัดส่วนกับความไม่ลงรอยกันระหว่าง QGIS 2 และ Qgis 3) นักพัฒนาหลายคนทำให้ python Python 3 เข้ากันได้กับ Python 2 เป็นส่วนใหญ่ แต่ความเข้ากันได้แบบย้อนหลังนั้นไม่ค่อยดีนัก
การปรับปรุง API QGIS เอง ปัญหาอย่างหนึ่งของการรักษาความเข้ากันได้ของ API ระหว่างเวอร์ชันต่างๆ คือ คุณต้องใช้ตัวเลือกการออกแบบของคุณในระยะยาว มีความพยายามทุกวิถีทางใน QGIS ที่จะไม่ทำลาย API ในชุดของรุ่นย่อย การปล่อยเวอร์ชัน QGIS สำหรับ 3.0 ที่มี API ที่ไม่รองรับในปัจจุบันจะทำให้เรามีโอกาส "ล้างข้อมูล" โดยแก้ไขสิ่งต่างๆ ใน ​​API ที่เราไม่ปฏิบัติตาม คุณสามารถดูรายการชั่วคราวของ 3.0 เสนอการเปลี่ยนแปลงให้กับ API.

วิธีที่จะสนับสนุนการเปลี่ยนแปลง 3.0 API

ดังที่ได้กล่าวไปแล้วเวอร์ชัน 3.0 จะหยุดทำงานด้วย QGIS เวอร์ชัน 2.x และมีความเป็นไปได้ที่ปลั๊กอินแอปพลิเคชันที่มีอยู่และโค้ดอื่น ๆ ที่ใช้ API ปัจจุบันจะพัง สิ่งที่สามารถทำได้เพื่อลดการเปลี่ยนแปลง? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias และนักพัฒนาชั้นนำอื่น ๆ กำลังมองหาวิธีลดจำนวนการเปลี่ยนแปลงตัวแบ่ง API ในขณะที่ยังคงพัฒนาโค้ดเบส QGIS โดยอิงตามไลบรารีรุ่นต่อไปและ API ภายในของตัวเอง ในระหว่างการประชุมครั้งล่าสุดของคณะกรรมการขับเคลื่อนโครงการ QGIS เราได้พิจารณาถึงความเป็นไปได้ต่างๆ ตารางต่อไปนี้สรุปสิ่งที่ Matthias Kuhn สรุปอย่างสง่างามและเราได้พยายามทับศัพท์บางส่วนในบทความนี้ตามสิ่งที่ พวกเขาตีพิมพ์ในบล็อกของเขา:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Fecha เด lanzamiento สิ้นเดือนกุมภาพันธ์ เดือน 4 2.14 เดือน¿วงจร 8?
บันทึก การปรับปรุงของแกนรหัส QGIS หลามงูหลาม 3 จะสอดคล้องและสนับสนุน PyQt5 (การดำเนินงานบางส่วนสำหรับการทำงานที่สำคัญเช่นคอนโซลปลั๊กอินหลามหลัก ฯลฯ )
Qt4 Si

เลิกใช้ใน Debian ยืด (เนื่องจากในปี)

(-webkit ออก)

ใช่ ไม่
Qt5 ไม่

คิดถึง QWebView - ทดแทนใหม่ได้ในทุกแพลตฟอร์ม นอกจากนี้ยังคิดถึง QPainter เครื่องยนต์

Si Si
PyQt4 Si Si ไม่
PyQt5 ไม่ Si Si
งูหลาม 2 Si Si ไม่
งูหลาม 3 ไม่ Si Si
การล้างข้อมูล API ไม่ ไม่ Si
ห่อ
PyQt5 -> PyQt4
~ 90% ให้ทำงานร่วมกันหลัง
ไม่ Si Si
หลักไบนารี ตาม Qt4 ตาม Qt4 ตาม Qt5
ลำดับความสำคัญของเงินทุน ห่องูหลาม

มีสองสิ่งที่สำคัญที่ควรทราบเกี่ยวกับข้อเสนอของแมทเธียคือ:

ในระยะแรกการทำงานจะทำในซีรีส์ที่จะเสร็จสมบูรณ์ QT2 สนับสนุน 5.x, PyQt5 ใช้งูหลาม 3.0 สนับสนุน Qt4, PyQt4 และ Python 2.7 ซึ่งหมายความว่าการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นในระยะแรกจะเข้ากันได้กับรุ่นก่อนหน้านี้ 2.x คุณสมบัติงูใหญ่จะได้รับการจัดตั้งขึ้นจะได้รับการแนะนำเพื่อให้เก่า API PyQt4 ยังสามารถใช้โดยเฉพาะอย่างยิ่งเมื่อรวบรวมกับ QT5, PyQt5, Python 3.0 โดยใช้ QGIS รวบรวมกับ Qt4, PyQt4 และ Python 2.7 จะไม่ทำลายความเข้ากันได้
ในระยะที่สองมันจะทำงานในการผลิต QGIS 3.0 แนะนำ API ใหม่สมบูรณ์ลบหลาม 2.7 รวมถึงการสนับสนุนและ Qt4 PyQt4 คุณลักษณะใหม่ในหลามเข้าเฟสแรกจะได้รับการรักษาโดยคำนึงถึงทุกรหัสหลามและการพัฒนาสำหรับรุ่น 2.x ของ QGIS ทำงานต่อไปในรุ่นของ 3.x QGIS ช่วงนี้ยังคาดว่าจะนำการเปลี่ยนแปลงใน API QGIS ที่อาจทำลายปลั๊กอินบาง จะอยู่ที่นี่จะให้คำแนะนำการโยกย้าย AA จะพยายามที่จะอำนวยความสะดวกในการย้ายถิ่นของรุ่นรุ่น 2.x QGIS 3.x QGIS

ข้อแม้ emptor

มีเทคนิคเล็กน้อยที่จะถามเพื่อให้แน่ใจว่าการโยกย้ายไปยัง QGIS 3.0 เสียงเจ็บปวดน้อย

  • 1. สควรสังเกตว่าแม้ว่าแนวทางที่ระบุไว้ข้างต้นจะพยายามลดปริมาณงานในการเขียนสคริปต์ python ในปลั๊กอิน แต่ก็ไม่จำเป็นต้องเป็น 100% ส่วนใหญ่จะมีบางกรณีที่โค้ดจะต้องได้รับการปรับแต่งและในทุกกรณีอย่างน้อยที่สุดก็จะต้องได้รับการแก้ไขเพื่อให้แน่ใจว่าโค้ดยังคงทำงานได้อย่างถูกต้อง
    2. ไม่มีแหล่งข้อมูลทางการเงินที่จัดตั้งขึ้นอย่างเป็นทางการเพื่อจ่ายเงินให้กับนักพัฒนาซอฟต์แวร์ที่ลงทุนเวลาโดยสมัครใจสำหรับกระบวนการย้ายข้อมูลนี้ ด้วยเหตุนี้จึงเป็นเรื่องยากมากที่จะกำหนดกรอบเวลาที่แน่นอนว่าแต่ละส่วนของกระบวนการจะใช้เวลานานเท่าใด ความไม่แน่นอนนี้ต้องนำมาพิจารณาในการวางแผน แน่นอนว่ายินดีบริจาคเพื่อช่วยให้สิ่งนี้เกิดขึ้น
    3. อาจมีนักพัฒนาและสถาบันที่ให้การสนับสนุนคุณสมบัติใหม่สำหรับซีรีส์ QGIS 2.x และอาจส่งผลกระทบต่องานของคุณ จำเป็นต้องรวมไว้ในแผนและงบประมาณของโครงการเหล่านี้การจัดสรรบางอย่างเพื่อเผชิญกับการโยกย้ายไปยังแพลตฟอร์ม QGIS 3.x
    4. หากทีม QGIS ทำงานใน "การเปลี่ยนแปลงทั้งหมด" จะมีช่วงเวลาสั้น ๆ ในระหว่างที่ QGIS จะไม่เสถียรและเปลี่ยนแปลงอย่างต่อเนื่องเนื่องจากการอัปเดตอย่างต่อเนื่องของ QGIS 3.0
    4. หากคุณพัฒนาในลักษณะ 'วิวัฒนาการ' คุณมีความเสี่ยงที่การพัฒนา 3.0 อาจใช้เวลานานกว่านั้น เว้นแต่คุณจะมีกลุ่มนักพัฒนาที่ภักดีที่ทำงานเกี่ยวกับมันและเตรียมมันให้พร้อมสำหรับพอร์ต

    ข้อเสนอ

ในแง่ของข้อมูลทั้งหมดข้างต้นเป็นหนึ่งในสองหลักสูตรของการกระทำมีการเสนอ:

ข้อเสนอ 1:

การปล่อยเวอร์ชันชั่วคราว 2.16 จากนั้นเริ่มทำงานบนเวอร์ชัน 3.0 ตามลำดับความสำคัญโดยมีหน้าต่างการพัฒนา 8 เดือน การเปลี่ยนแปลงที่ทำในเวอร์ชัน 2.16 จะเข้ากันได้กับเวอร์ชัน 3.0 (ดู python3 / pytq5)

ข้อเสนอ 2:

พุ่งครั้งเดียว 3.0 กับหน้าต่างขยายระยะเวลาเพิ่มเติมเกี่ยวกับ QT5, Python 3.0 และ PyQt5 และขอให้นักพัฒนาในการทำงานของพวกเขาใน 3.0 ดำเนินการต่อด้วยรุ่น 2.x กับความถี่ปกติจนกว่า 3.0 พร้อม

ข้อเสนอทางเลือก

มีข้อเสนออื่นหรือไม่? QGIS สนใจที่จะรู้เกี่ยวกับทางเลือกที่เป็นไปได้ หากคุณต้องการส่งข้อเสนอโปรดส่งไปที่ tim@qgis.org ด้วยหัวข้อ “ข้อเสนอ QGIS 3.0”

ควรปฏิบัติตาม บล็อก QGIS, มาจากไหนเอกสารนี้

กอลจิ อัลวาเรซ

นักเขียน นักวิจัย ผู้เชี่ยวชาญด้านรูปแบบการจัดการที่ดิน เขาได้มีส่วนร่วมในการกำหนดแนวคิดและการนำแบบจำลองไปใช้ เช่น ระบบการบริหารทรัพย์สินแห่งชาติ SINAP ในฮอนดูรัส รูปแบบการจัดการเทศบาลร่วมในฮอนดูรัส รูปแบบบูรณาการของการจัดการที่ดิน - สำนักทะเบียนในนิการากัว ระบบการบริหารของดินแดน SAT ในโคลอมเบีย . บรรณาธิการของบล็อกความรู้ Geofumadas ตั้งแต่ปี 2007 และผู้สร้าง AulaGEO Academy ที่มีหลักสูตรมากกว่า 100 หลักสูตรเกี่ยวกับ GIS - CAD - BIM - Digital Twins

บทความที่เกี่ยวข้อง

แสดงความคิดเห็น

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

กลับไปด้านบนปุ่ม