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- ի խախտման հետեւանքները:

Պատճառներից մեկը, թե ինչու է այս խախտում է ԱԴԲ-ի QGIS 3.0 է, որ այն կունենա մեծ ազդեցություն, որը կարող է կոտրել հարյուրավոր զարգացած կոնտակտները, որ այլեւս լինել համատեղելի է նոր API- ի եւ հեղինակներին սրանք պետք է անել վերանայում իր զարգացումների ապահովելու համար համատեղելիությունը նոր API- ի:

Անհրաժեշտ փոփոխությունների ծավալը մեծապես կախված է հետեւյալի վրա.

  • API- ի քանի փոփոխություն ազդում է ընթացիկ գործառույթների վրա:
    Քանի միավորով plugin հեղինակները API- ի մասեր են օգտագործել, որոնք կփոխվեն:
  • Որն է 3.0- ի հիմնական փոփոխությունները:

3.0- ում փոխելու համար կան չորս հիմնական ոլորտներ.

 

Qt4 թարմացումը դեպի QT5: Սա գրադարանների հիմնական հավաքածուն է, որը QGIS-ը կառուցված է բարձր մակարդակի վրա, մենք խոսում ենք հարթակի CORE-ֆունկցիոնալ մակարդակի մասին: QT-ն նաև տրամադրում է գրադարաններ՝ հիշողության կառավարում, կապի գործառնություններ և գրաֆիկական կառավարում կատարելու համար: Qt4-ը (որի վրա ներկայումս հիմնված է QGIS-ը) ներկայումս չի մշակվում Qt գրադարանի սպասարկողների կողմից և կարող է ֆունկցիոնալ խնդիրներ ունենալ որոշ հարթակների հետ (օրինակ՝ OS X) և նույնիսկ հեշտացնել երկուական տարբերակների կառավարումը (օրինակ՝ Debian Testing և Debian-ի հաջորդ թողարկումը։ «Ձգում»): QGIS-ը QT5-ին հասցնելու գործընթացն արդեն ունի կարևոր առաջընթաց (հիմնականում այն, ինչ արել է Մաթիաս Կունը), որը Մարկո Բեռնասոկչիի հետ միասին ծխում է Android «QField»-ի վրա՝ հիմնված ամբողջությամբ QT5-ի վրա: Այնուամենայնիվ, կան որոշ սահմանափակումներ նոր QT5-ը գործարկելու և գործարկելու համար՝ QGIS-ի վրա դրա ազդեցության պատճառով, մասնավորապես՝ վեբ բրաուզերի վիդջեթների հետ կապված (հիմնականում օգտագործվում են Composer-ում և մի քանի այլ վայրերում՝ QGIS-ում):

Թարմացնել PyQt4- ը PyQt5- ին: Այս փոփոխությունները, որոնք կապված են Python լեզվի Qt է QGIS Python ԱԴԲ-հիմնված. Է առաջանում փոխել QT5 C ++ գրադարան, ակնկալվում է նաեւ փոխանցել է, PyQt5 python գրադարանում, որպեսզի նրանք կարող են օգտվել այն օգուտներին նոր ԱԴԲ-ի Python QT5:
Python 2.7- ը թարմացվում է Python 3- ում. Ներկայումս ամեն ինչ աշխատում է Python 2.7-ի վրա: Python 3-ը python- ի վերջին տարբերակն է և առաջարկվում է այդ նախագծի ղեկավարների կողմից: Python 2-ը մի փոքր անհամատեղելի է Python 3-ի հետ (գրեթե համամասնական է QGIS 2-ի և Qgis 3-ի անհամատեղելիությանը): Շատ ծրագրավորողներ Python Python 3-ը հիմնականում հետընթաց են դարձրել Python 2-ի հետ համատեղելի, բայց հետամնաց համատեղելիությունն այդքան էլ մեծ չէ:
QGIS- ի API- ի բարելավում. Տարբերակների միջև API-ի համատեղելիությունը պահպանելու խնդիրներից մեկն այն է, որ դուք պետք է երկար ժամանակ ապրեք ձեր դիզայնի ընտրությամբ: QGIS-ում ամեն ջանք է գործադրվում API-ն չխախտելու մի շարք աննշան թողարկումներում: 3.0-ի համար QGIS տարբերակի թողարկումը API-ով, որը ներկայումս չի աջակցվում, մեզ հնարավորություն կտա «մաքրել տունը»՝ շտկելով այն բաները API-ում, որոնց հետ մենք չենք համապատասխանում: Դուք կարող եք տեսնել ժամանակավոր ցանկը 3.0 API- ի համար առաջարկվող փոփոխությունները.

Ինչպես աջակցել 3.0 API- ի փոփոխմանը

Ինչպես արդեն նշվեց, 3.0 տարբերակը կկոտրվի QGIS 2.x տարբերակի հետ, և կա հնարավորություն, որ շատ ներդիրներ, առկա ծրագրեր և այլ ծածկագրեր կոտրվեն, որոնք հիմնված են ընթացիկ API- ի վրա: Այսպիսով, ի՞նչ կարելի է անել փոփոխությունները մեղմելու համար: Մաթիաս Կյուն, Յուրգեն Ֆիշերը, Նյալ Դոուսոնը, Մարտին Դոբիասը և այլ բարձրակարգ ծրագրավորողներ փնտրում էին միջոցներ մեղմելու API- ի ընդմիջումների փոփոխությունները `շարունակելով առաջ տանել QGIS ծածկագրերի բազան` հիմնվելով հաջորդ սերնդի գրադարանների և իր ներքին API- ի վրա: QGIS ծրագրի eringեկավար կոմիտեի մեր վերջին նիստի ընթացքում այն ​​geofump ստացվեց տարբեր հնարավորությունների միջոցով: Հաջորդ աղյուսակում ամփոփված է այն, ինչ շնորհալիորեն ամփոփեց Մաթիաս Կյունը, և որ մենք մասամբ փորձել ենք այս հոդվածում տառադարձել ըստ դրա Տեղադրված է ձեր բլոգում:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Թողարկման ամսաթիվը Փետրվարի վերջը 4 ամիս անց 2.14 Cycle 8 ամիսները:
նոտաներ Թարմացում միջուկը QGIS python մասին code Python 3 է համապատասխանեն եւ աջակցում է PyQt5 (մասնակի իրականացման համար հիմնական գործառույթն օրինակ, մխիթարել, python հիմնական կոնտակտները եւ այլն)
Qt4- ը Si

Դեբյան ձգվող ջոկատում (մեկ տարվա ընթացքում)

(Webkit հեռացվել)

այո Ոչ
Qt5- ը Ոչ

Misss QWebView- նոր փոխարինումը ոչ բոլոր հարթակներում: Նաեւ կարոտում է QPainter Engine:

Si Si
PyQt4 Si Si Ոչ
PyQt5 Ոչ Si Si
Python 2 Si Si Ոչ
Python 3 Ոչ Si Si
API մաքրում Ոչ Ոչ Si
Փաթեթավորիչներ
PyQt5 -> PyQt4
Ապահովում է ~ 90% հետընթաց համատեղելիություն
Ոչ Si Si
Հիմնական երկուական Qt4- ի վրա հիմնված Qt4- ի վրա հիմնված Qt5- ի վրա հիմնված
Ֆինանսավորման առաջնահերթություն Python փաթաթիչներ

Երկու կարեւոր բան կա, որ հիշենք Մաթիասի առաջարկը.

Առաջին փուլումՈր աշխատանքը կատարվում է շարքի ավարտելու 2.x աջակցության QT5, PyQt5 օգտագործելով Python 3.0, աջակցելով Qt4, PyQt4 եւ Python 2.7. Սա նշանակում է, որ առաջին փուլում կատարված բոլոր փոփոխությունները կհամապատասխանեն ավելի վաղ 2.x տարբերակներին: Python հատկանիշները կընդգրկվեն կներդրվի այնպես, որ հին API PyQt4 դեռ կարող են օգտագործվել հատկապես այն ժամանակ, երբ կազմվում դեմ QT5, PyQt5, Python 3.0. Qt4- ի դեմ QGIS- ի օգտագործման ժամանակ, PyQt4- ը եւ Python 2.7- ը ոչ մի ընդմիջման համատեղելիություն չեն ունենա:
Երկրորդ փուլում, Դուք կաշխատեք QGIS 3.0- ի արտադրման համար, ներկայացնելով նոր API, այն ամբողջովին վերացնելու է Python 2.7, ներառյալ Qt4- ի եւ PyQt4- ի աջակցությունը: Առաջին փուլի մեջ ներկայացված նոր python առանձնահատկությունները կպահպանվեն, հաշվի առնելով, որ բոլոր python կոդերը եւ 2.x- ի QGIS- ի տարբերակների համար զարգացումները կշարունակեն աշխատել QGIS- ի 3.x տարբերակներում: Այս փուլում դուք նույնպես ակնկալում եք փոփոխություններ մտցնել QGIS API- ում, որը կարող է կոտրել որոշ կոնտակտներ: Այս խնդիրը լուծելու համար մենք տրամադրում ենք միգրացիայի ուղեցույց, որը թույլ կտա հեշտացնել միգրացիոն գործընթացը 2.x QGIS տարբերակներից մինչեւ 3.x QGIS տարբերակները:

Caveat emptor

Կան մի քանի հնարքներ, որոնք պետք է տեղադրվեն, որպեսզի QGIS 3.0- ին միգրացիան ավելի ցավոտ լինի:

  • 1. ՍՊետք է նշել, որ չնայած վերը նշված մոտեցումը փորձում է նվազագույնի հասցնել plugin- ներում 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 առաջարկ» թեմայով:

The QGIS բլոգը, որտեղ հրապարակվեց այս հրատարակությունը:

Գոլջի Ալվարես

Գրող, հետազոտող, հողի կառավարման մոդելների մասնագետ: Նա մասնակցել է այնպիսի մոդելների հայեցակարգացմանն ու ներդրմանը, ինչպիսիք են՝ Գույքի կառավարման ազգային համակարգ SINAP Հոնդուրասում, Հոնդուրասում Համատեղ քաղաքապետարանների կառավարման մոդել, Կադաստրի կառավարման ինտեգրված մոդել՝ ռեգիստր Նիկարագուայում, Տարածքի կառավարման համակարգ SAT Կոլումբիայում: . 2007 թվականից Geofumadas գիտելիքների բլոգի խմբագիր և AulaGEO ակադեմիայի ստեղծող, որը ներառում է ավելի քան 100 դասընթացներ GIS - CAD - BIM - Digital Twins թեմաներով:

Առնչվող հոդվածներ

Թողնել մեկնաբանություն

Ձեր էլ. Փոստի հասցեն չի հրապարակվելու: Պահանջվող դաշտերը նշված են *

Վերադառնալ սկիզբ կոճակը