Kuinka rakentaa QGIS-plugin?
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
Lähetä kommentti