Kuinka rakentaa QGIS-plugin?

Yllätyin, kuinka helppoa QGIS-lisäosan tekeminen oli. Aloittaminen vaatii vain idean ja hieman Python-osaamista. Oma ajatukseni oli yhdistää lajitietokeskuksen GeoJSON-dataa tuottava REST-rajapinta suoraan QGIS:iin, joka helpottaisi lajitiedon käyttäjiä huomattavasti. Lisäosaa käyttämällä dataa ei tarvitse enää filtteröidä selaimessa, odotella hitaita latausprosesseja tai täyttää tietokonetta tiedostoilla, vaan kaiken voisi tehdä QGIS:ssä suoraan näppärässä käyttöliittymässä.

Toki ilman lisäosaakin QGIS tukisi GeoJSON-tiedostojen hakemista REST-rajapinnan URL-osoitteesta, muttei kovinkaan luontevasti. Jokainen rajapinnan sivu pitäisi syöttää erikseen ja datan tietomalli olisi ainakin tässä tapauksessa kömpelö, sillä QGIS ei tue GeometryCollection-muotoisia havaintoja sellaisenaan. Pluginin avulla voi muutenkin siivotan datan käyttäjäystävälliseksi.

Pluginin rakentamisen voi aloittaa helposti lataamalla valmiin templaten GitHubista. Tuon paketin __init__.py tiedostoon voi sitten vain ruveta kokoamaan haluamaansa koodia, ja siirtää se sitten QGIS:n plugin-kansioon yhdessä metadata.txt tiedoston kanssa. Tähän on tarkemmat ohjeet repositorion dokumentaatiossa.

Kuva 1. Pakollisia tiedostoja on vain muutama. Ne on merkattu punaisella nuolella.

 

Yksinkertaisimmillaan siis erittäin helppoa: pari oikein nimettyä tiedostoa oikeassa tiedostosijainnissa ja lisäosa on jo toimintavalmis. Toki usein kaikkea ei kannata tunkea samaan Python-tiedostoon, vaan kehittäjä haluaa lisätä mukaan useamman tiedoston.  

Kuva 2. Lajitietokeskuksen lisäosa  ja Plugin Reloader vierekkäin. Jälkimmäistä klikkaamalla voi päivittää muutokset koodissa nopeasti.

Kun koodiin tekee muutoksia, pluginia pitää testata itse QGIS:ssä. Muutokset päivittyvät uudelleenkäynnistämällä QGIS:n, joka on melko työlästä. Helpoin tapa on hyödyntää QGIS:n Plugin Reloader -pluginia, jolla saa aina päivitettyä koodiin tehdyt muutokset nopeasti. Silloin ei tarvitse käynnistellä ohjelmistoa koko ajan uudestaan ja uudestaan.

 

 

Kun plugin on toimiva, sitä voi jaeskella kavereille ZIP-tiedostona. Toinen vaihtoehto on myös julkaista lisäosa QGIS:n virallisessa lisäosalistauksessa. Tähän on tosi mainiot ohjeet QGIS:n dokumentaatiossa.

Valmista lisäosaa on mukava käyttää. Yllä video käyttöliittymästä. Koodi löytyy avoimena GitHubista ja itse lisäosa suoraan QGIS:n plugins-valikosta nimellä FinBIF_API_Plugin.

Kuva 3. Lisäosan voi julkaista QGIS:n lisäosaportaalissa, jolloin se on helppo ladata kenen tahansa.

 


 

 

 

 

 

Kommentit

Tämän blogin suosituimmat tekstit

Miksi paikkatietoa on niin vaikea löytää?

Paikkatietotekoäly olisi hieno

OGC API -paikkatietopalvelut