qgis

QGIS 3.0 - როგორ, როდის და რა; ეს გულისხმობს

ბევრი ითხოვს საკუთარ თავს:

როდის გათავისუფლდება QGIS 3.0?

გასულ წელს (2015) პროექტის გუნდმა დაიწყო გამოძიება, როდის და როგორ უნდა გათავისუფლდნენ QGIS 3.0. ისინი დაპირდნენ, რომ პოსტიდან ანიტა გრაზერი, რისთვისაც ისინი აპირებდნენ მკაფიოდ გადმოეცათ თავიანთი გეგმების მომხმარებლებსა და დეველოპერებს QGIS 3.0-ის ამოქმედებამდე. მათ ცოტა ხნის წინ სცადეს ჩამოაყალიბონ ზოგიერთი მოსაზრება QGIS 3.0 გამოცემისთვის და პოსტის ბოლოს ჩვენთვის შესაძლებლობა გვაქვს წარმოვადგინოთ ჩვენი იდეები.

რატომ?

QGis_Logoროგორც წესი, ძირითადი ვერსია დაცულია იმ დროისთვის, როდესაც თქვენი პროგრამული უზრუნველყოფის API– ში დიდი ცვლილება შეიტანება. ეს შესვენება არ არის ტრივიალური გადაწყვეტილება QGIS პროექტისთვის, ვინაიდან ჩვენ ვართ ასობით ათასი მომხმარებელი, რომლებიც დამოკიდებულნი არიან QGIS– ზე, როგორც ჩვენი საკუთარი მიზნებისთვის, ასევე მესამე მხარისთვის გაწეული მომსახურებისთვის.

ზოგჯერ API- ს არღვევს არქიტექტურის განახლებას გაუმჯობესებული მიდგომები, ახალი ბიბლიოთეკები და წარსულში მიღებული გადაწყვეტილებების შესწორებები.

რა შედეგებს აყენებს API?

ერთ-ერთი მიზეზი, რის გამოც ეს დარღვევაა API in QGIS 3.0 არის ის, რომ აქვს დიდი გავლენა, რომელიც შეიძლება დაარღვიოს ასობით განვითარებული plugins, რომ აღარ იქნება თავსებადი ახალი API და ავტორები ეს არ უნდა გააკეთოს მიმოხილვა მისი განვითარებულ მოვლენებს, რათა უზრუნველყოს თავსებადობა ახალი API.

აუცილებელი ცვლილებების მოცულობა დიდწილად დამოკიდებულია:

  • API- ზე რამდენი ცვლილება მოქმედებს მიმდინარე ფუნქციონირებაზე.
    რამდენი ქულა მოდულის ავტორებმა გამოიყენეს API- ის ნაწილები, რომლითაც ისინი შეცვლიდნენ.
  • რა იქნება მთავარი ცვლილებები 3.0- ისთვის?

ოთხი ძირითადი სფეროა თქვენ ეძებთ შესაცვლელად 3.0:

 

Qt4 განახლება QT5: ეს არის ბიბლიოთეკების ძირითადი ნაკრები, რომელზეც QGIS აგებულია უმაღლეს დონეზე, ჩვენ ვსაუბრობთ პლატფორმის CORE-ფუნქციურ დონეზე. QT ასევე უზრუნველყოფს ბიბლიოთეკებს მეხსიერების მართვის, დაკავშირების ოპერაციების და გრაფიკული მართვის შესასრულებლად. Qt4 (რომელზეც ამჟამად დაფუძნებულია QGIS) ამჟამად არ არის შემუშავებული Qt ბიბლიოთეკის შემსრულებლების მიერ და შესაძლოა ჰქონდეს ფუნქციონალური პრობლემები ზოგიერთ პლატფორმასთან (მაგ. OS X) და კიდევ გააადვილოს ბინარული ვერსიების მართვა (მაგ. Debian Testing და შემდეგი Debian გამოშვება). "გაჭიმვა"). QGIS-ის QT5-ზე მიყვანის პროცესს უკვე აქვს მნიშვნელოვანი წინსვლა (ძირითადად, რაც გააკეთა მათიას კუნმა), რომელიც მარკო ბერნასოჩისთან ერთად ეწევა ანდროიდის "QField"-ს, რომელიც მთლიანად დაფუძნებულია QT5-ზე. თუმცა, არსებობს გარკვეული შეზღუდვები ახალი QT5-ის ამოქმედებაში QGIS-ზე მისი გავლენის გამო – განსაკუთრებით ვებ ბრაუზერის ვიჯეტებით (ძირითადად გამოიყენება Composer-ში და ასევე რამდენიმე სხვა ადგილას QGIS-ში).

განახლება PyQt4 to PyQt5: ეს ცვლილებები დაკავშირებული Python ენის Qt წელს QGIS Python API ეფუძნება. ჩნდება შეცვალოს QT5 C ++ ბიბლიოთეკა, ასევე მოსალოდნელია, რომ გადასცემს PyQt5 python ბიბლიოთეკაში ისე, რომ მათ შეუძლიათ მიიღონ უპირატესობა ახალი API in Python QT5.
X: განახლება Python 2.7 to Python ამჟამად ყველაფერი მუშაობს Python 2.7-ზე. Python 3 არის python- ის უახლესი ვერსია და მას რეკომენდაციას უწევენ ამ პროექტის ხელმძღვანელები. Python 2 ოდნავ შეუთავსებელია Python 3 (თითქმის პროპორციულია QGIS 2 და Qgis 3 შორის შეუთავსებლობის). ბევრმა დეველოპერმა Python Python 3 მეტწილად ჩამორჩენილი გახადა Python 2-ისთვის თავსებადი, მაგრამ ჩამორჩენილი თავსებადი არც ისე კარგია.
QGIS API- ის გაუმჯობესება: ვერსიებს შორის API თავსებადობის შენარჩუნების ერთ-ერთი პრობლემა არის ის, რომ თქვენ უნდა იცხოვროთ თქვენი დიზაინის არჩევანით გრძელვადიანი. QGIS-ში ყველა ძალისხმევა კეთდება, რომ არ დაირღვეს API მცირე გამოშვებების სერიაში. QGIS ვერსიის გამოშვება 3.0-ისთვის API-ით, რომელიც ამჟამად არ არის მხარდაჭერილი, მოგვცემს შესაძლებლობას „გავასუფთავოთ სახლი“ API-ში ისეთი ნივთების გამოსწორებით, რომლებსაც ჩვენ არ ვაკმაყოფილებთ. თქვენ შეგიძლიათ ნახოთ დროებითი სია ცვლილებების შეთავაზება 3.0 API- ისთვის.

როგორ შევცვალოთ 3.0 API- ის შეცვლის მხარდაჭერა

როგორც უკვე აღვნიშნეთ, 3.0 ვერსია დაარღვევს QGIS ვერსიას 2.x და არსებობს შესაძლებლობა, რომ მრავალი დანამატი, არსებული პროგრამა და სხვა კოდი, რომლებიც დაფუძნებულია ამჟამინდელ API- ზე, გატეხავს. რა შეიძლება გაკეთდეს ცვლილებების შესამცირებლად? მათიას კუჰნი, იურგენ ფიშერი, ნიალ დოუსონი, მარტინ დობიასი და სხვა მთავარი დეველოპერები ეძებდნენ გზებს API შესვენების ცვლილებების შემცირების მიზნით, ხოლო განაგრძობდნენ QGIS კოდების ბაზის განვითარებას, რომელიც დაფუძნებული იყო ბიბლიოთეკების შემდეგი თაობაზე და მის შიდა API- ზე. QGIS პროექტის მმართველი კომიტეტის ჩვენი ბოლო შეხვედრის დროს ჩვენ სხვადასხვა შესაძლებლობები მოვახდინეთ. ქვემოთ მოყვანილ ცხრილში შეჯამებულია ის, რაც მადლი კუნმა მადლიერებით შეაჯამა და რომ ნაწილობრივ ვცადეთ ამ სტატიაში ტრანსლიტერაცია იმის მიხედვით, თუ რა გამოქვეყნდა თქვენს ბლოგზე:


QGIS XXL LTR
QGIS 2.16 ??? QGIS 3.0
გამოშვების თარიღი თებერვლის ბოლოს 4 თვის შემდეგ ციკლი 8 თვე?
Notas ძირითადი QGIS- ის Python კოდის განახლება უნდა იყოს Python 3 თავსებადი და PyQt5 თავსებადი (ნაწილობრივი იმპლემენტაცია ძირითადი ფუნქციონირებისთვის, მაგ. კონსოლი, პითონის ძირითადი მოდული და ა.შ.)
QtxNUMX Si

Deprecated Debian Stretch (გამო წელიწადში)

(ვებკით წაშლილი)

დიახ არა
QtxNUMX არა

გამოდის QWebView - ახალი ჩანაცვლება არა ყველა პლატფორმაზე. ასევე QPainter Engine- ის ენატრება.

Si Si
PyQt4 Si Si არა
PyQt5 არა Si Si
Python 2 Si Si არა
Python 3 არა Si Si
API გასუფთავება არა არა Si
შეფუთვა
PyQt5 -> PyQt4
უზრუნველყოფს ~ 90% Backward Compatibility
არა Si Si
საშუალო ორობითი Qt4 დაყრდნობით Qt4 დაყრდნობით Qt5 დაყრდნობით
დაფინანსების პრიორიტეტი პითონი შეფუთვა

არსებობს ორი მნიშვნელოვანი რამ, რათა გვახსოვდეს მათიას წინადადება:

პირველ ფაზაშისამუშაო კეთდება სერია დასრულებას 2.x მხარდაჭერა QT5, PyQt5 გამოყენებით Python 3.0, მხარდამჭერი Qt4, PyQt4 და Python 2.7. ეს გულისხმობს, რომ პირველ ეტაპზე განხორციელებული ყველა ცვლილება შეესაბამება 2- ის ვერსიებს. Python თვისებები იქნება ჩართული დაინერგება ისე, რომ ძველი API PyQt4 მაინც უნდა იქნას გამოყენებული განსაკუთრებით მაშინ, როდესაც შედგენილი წინააღმდეგ QT5, PyQt5, Python 3.0. QGIS- ის გამოყენებით Qt4- ის, PyQt4- ისა და Python 2.7- ის გამოყენებისას არ იქნება შესვენების თავსებადობა.
მეორე ეტაპზეიგი იმუშავებს წარმოების QGIS 3.0, გაჩნდა ახალი API, მთლიანად ამოიღონ Python 2.7, მათ შორის მხარდაჭერა Qt4 და PyQt4. ახალი ფუნქციების python შესვლის პირველი ეტაპი შენარჩუნებული იქნება, იმის გათვალისწინებით, ყველა Python კოდი და განვითარებული 2.x ვერსიები QGIS გაგრძელდება მუშაობა 3.x ვერსიები QGIS. ამ ეტაპზე ასევე მოსალოდნელია ცვლილებების გაცნობა QGIS API- ში, რომელსაც შეუძლია გარკვეული დანამატების ჩავარდნა. მივმართო ამ უზრუნველყოფს ხელმძღვანელობით ა მიგრაციის ცდილობენ ხელი შეუწყოს მიგრაციის ვერსიები 2.x QGIS 3.x QGIS ვერსიები.

Caveat emptor

არსებობს რამდენიმე ხრიკი, რომელიც უნდა დადგეს იმისათვის, რომ უზრუნველყოს, რომ QGIS- ის მიგრაცია ნაკლებად მტკივნეულია.

  • 1. სუნდა აღინიშნოს, რომ მიუხედავად იმისა, რომ ზემოთ მოცემული მიდგომა ცდილობს შეამციროს პითონის სკრიპტინგის მუშაობის მოცულობა დანამატებში, ეს სულაც არ იქნება 100%. სავარაუდოდ, იქნება შემთხვევები, როდესაც კოდი უნდა შეიცვალოს და ყველა შემთხვევაში, სულ მცირე, იგი უნდა გადაიხედოს, რათა უზრუნველყოს, რომ იგი გამართულად ფუნქციონირებს.
    2. არ არსებობს ოფიციალურად დადგენილი ფინანსური რესურსი იმ დეველოპერების გადასახდელად, რომლებიც ნებაყოფლობით ინვესტიციას უკეთებენ ამ მიგრაციის პროცესში. ამის გამო, ძალიან რთული იქნება ზუსტი ვადების მიცემა, თუ რამდენ ხანს გაგრძელდება პროცესის თითოეული ნაწილი. ეს გაურკვევლობა გათვალისწინებული უნდა იყოს დაგეგმვისას. შემოწირულობები, რა თქმა უნდა, მისასალმებელია, რომ ეს მოხდეს.
    3. შეიძლება იქ იყვნენ დეველოპერები და ინსტიტუტები, რომლებიც აფინანსებენ QGIS 2.x სერიის ახალ მახასიათებლებს და ამან შეიძლება გავლენა მოახდინოს თქვენს მუშაობაზე. აუცილებელია ამ პროექტების გეგმებსა და ბიუჯეტებში შეიტანოს გარკვეული თანხა QGIS 3.x პლატფორმაზე გადასასვლელად.
    4. თუ QGIS გუნდი მუშაობს "ტოტალურ ცვლილებაზე", იქნება შედარებით მოკლე დრო, რომლის განმავლობაშიც QGIS იქნება არასტაბილური და მუდმივად იცვლება QGIS 3.0-ის მიმდინარე განახლებების გამო.
    4. თუ თქვენ განვითარდებით „ევოლუციური“ გზით, რისკავთ, რომ 3.0-ის განვითარებას შეიძლება მეტი დრო დასჭირდეს, თუ არ გყავთ მასზე მომუშავე დეველოპერების ერთგული ჯგუფი და არ ამზადებენ მას პორტისთვის.

    წინადადებები

ყოველივე ზემოთქმულიდან გამომდინარე, შემოთავაზებული ორი მოქმედების ერთ-ერთი ვარიანტია:

წინადადება:

გამოუშვით დროებითი ვერსია 2.16 და შემდეგ დაიწყეთ 3.0 ვერსიაზე მუშაობა პრიორიტეტად, განვითარების ფანჯარა 8 თვის განმავლობაში. 2.16 ვერსიაში შეტანილი ცვლილებები თავსებადია 3.0 ვერსიასთან (იხილეთ python3 / pytq5).

წინადადება:

Lunging ერთხელ 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 აკადემიის შემქმნელი, რომელიც მოიცავს 100-ზე მეტ კურსს GIS - CAD - BIM - Digital Twins თემებზე.

დაკავშირებული სტატიები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი გამოქვეყნებული არ იყო. აუცილებელი ველები აღნიშნულია *

დაბრუნება ღილაკზე