Prikaz digitalnega zemljevida VerbaAlpina se izvaja z uporabo zmogljive spletne tehnologije. Prednost tega je očitna: Uporabniki lahko uporabljajo tehnično in funkcionalno zapleteno aplikacijo brez namestitve dodatne programske opreme (razen običajnega spletnega brskalnika), tako da preprosto prikličejo URL, ki jim omogoča interakcijo z obsežnimi in individualno določljivimi geografskimi vizualizacijami. V nadaljevanju se bo najprej razpravljalo o zahtevah in nastali koncepciji.
Konzeption
Glavna zahteva za VerbaAlpinino kartografsko orodje je po eni strani prikaz velikih poligonskih in točkovnih podatkov v geografski spletni aplikaciji. V prostorsko urejene poligone so vključene upravne enote, kot so občinske in državne meje ali jezikovno opredeljena območja, medtem ko je treba predvsem jezikovne osnovne podatke prikazati kot geografsko referenčne točke (markerje). Za raziskovalno zbiranje podatkov je treba interaktivno prikazati tako markerje kot poligone – zato so potrebni grafični elementi v realnem času, ki se lahko na primer odzivajo na položaj uporabnikove miške. Tudi knjižnica in programska oprema, ki se uporabljata za izvajanje, morata biti prosto dostopni (Open Source) in ju je zato mogoče upravljati v okviru samega projekta. Na področju spletne tehnologije to pomeni, da so zunanje knjižnice JavaScript na voljo na strežnikih samega projekta. Prednosti tega so, da je po eni strani mogoče ustvariti stabilno in s tem trajnostno različico, ki je neodvisna od zunanjih vplivov, po drugi strani pa je njena izvorna koda lahko javno dostopna.
Prikaz zemljevidnih knjižnic in grafike na spletu
Za izpolnitev teh zahtev je izbira padla na uporabo knjižnice Leaflet , Open Source knjižnice JavaScript, ki podobno kot znani Google Maps API omogoča interaktivni prikaz geografske vsebine v spletni aplikaciji na ozadju katere koli Tile-storitve (npr. OpenStreetMap), vendar je na voljo brezplačno. Za prikaz kakršne koli grafične vsebine imajo trenutni spletni brskalniki poleg upodabljanja vsebine HTML na voljo tri različne tehnologije: SVG, Canvas in WebGL. Prvi je format za opisovanje in prikazovanje vektorske grafike, medtem ko tehnologija canvas opisuje grafični standard, uveden s HTML-5, ki omogoča uporabo Javascripta za ustvarjanje rastrskih predstavitev, ki jih je mogoče homogeno preoblikovati. V nasprotju s prikazom SVG je pristop s Canvasom veliko zmogljivejši, hkrati je mogoče prikazati in animirati večje število elementov, vendar je splošna zmogljivost odvisna od zmožnosti brskalnika, da optimizira izpis s pomočjo grafičnega pospeševanja. Sposobnost elementa Canvas, da neposredno sodeluje z uporabnikovo grafično kartico, je z vidika zmogljivosti veliko boljša. Za to se uporablja standard WebGL, ki ga (v različici 1.0) podpirajo skoraj vse naprave, ki podpirajo splet. Standard WebGL 2.0, ki ga uporablja VerbaAlpina, je zdaj prav tako široko podprt. Če pa temu ni tako, izvajanje ponuja "Fallback" različico 1.0. Ta tehnologija omogoča uporabo vseh zmogljivosti grafične kartice in tako omogoča prikazovanje potencialno milijonov točk (in/ali poligonov) ter zapletene 3D grafike v spletni aplikaciji.
VerbaAlpina in WebGL
Zaradi opisanih prednosti WebGL se ta tehnologija uporablja za prikazovanje vse interaktivne vsebine aplikacije zemljevida. Čeprav WebGL trenutno ni naravno podprt v večini programskih vmesnikov za zemljevide (in tudi v Leafletu), je mogoče prekrivati Canvas, prikazan v WebGL, na vrhu zemljevida, ki temelji na HTML, da bi vizualizirali večje količine podatkov na geografsko referenčen način. Za osnovno vizualizacijo dvodimenzionalne vsebine z uporabo WebGL se uporablja knjižnica Pixi.js, katere sposobnost risanja tekstur (slik) z uporabo WebGL ali možnost prikaza večjih poligonov izpolnjuje zgoraj opisane zahteve za označevalce in upravne enote. S pretvorbo predstavitev Pixi.js v trenutni položaj in stopnjo povečave zemljevida se vzpostavi povezava med WebGL in Leafletom. Poleg tega ima Pixi.js prednost, da se lahko v primeru, ko WebGL ni podprt, samodejno vrne na običajen prikaz na platnu, kar posledično zagotavlja popolno združljivost aplikacije zemljevida s standardom HTML 5 – tudi na napravah končnih uporabnikov, ki ne podpirajo standarda WebGL. Ta tako imenovani "fallback" je zagotovo izjemen, vendar ustreznim uporabnikom še vedno omogoča uporabo aplikacije zemljevidov z ustrezno zmogljivostjo. Ker pa implementacija zemljevida VA med razvojem dosledno implantira posodobitve Pixi.js, je bil ta "canvas fallback" zaradi široke podpore WebGL v poznejših različicah odpravljen. Ena od največjih prednosti tehnologije WebGL izhaja iz stalnega razvoja grafične strojne opreme. Ker je za prikaz podatkov (in ne ozadja kartice) vedno mogoče uporabiti celoten potencial grafične kartice, se njena zmogljivost povečuje z razvojem strojne opreme. Dejstvo, da imajo zdaj tudi komercialno dostopne mobilne naprave zmogljive grafične čipe in lahko tako vizualizirajo velike količine podatkov, to prednost še enkrat jasno ponazarja.
Podrobnosti o implementaciji WebGL
Poleg pravkar omenjenega vzporednega prevajanja prikazanih podatkov in ozadja zemljevida je treba pri izvajanju premagati dva izziva. Prvič: Interaktivne poligone z množico točk je treba zapolniti z barvo in narisati s spremenljivo širino črte. Drugič: Prikazati je treba potencialno veliko število označevalnikov, ki se lahko dodatno odzivajo na interakcijo z miško (lebdenje). Za učinkovito rešitev prvega problema Pixi.js vse prikazane poligone izriše v skladen, prekrivajoč se poligon. Notranja posledica tega je, da se poligonski podatki prikazanih osnovnih poligonov lahko shranijo v predpomnilnik na grafični kartici in se tako pretvorijo veliko hitreje. Podobno se pri premikanju poligona z lebdenjem spremeni neprosojnost poligona v "shaderju", tj. v kodi, ki se izvaja na grafični kartici, kar prav tako znatno poveča zmogljivost te tradicionalno zapletene oblike interakcije (test točke v poligonu). Poleg tega je treba ohraniti konstantno velikost mej poligona in označevalcev. To pomeni, da se morajo ti elementi ob pomanjšanju (povečavi) zemljevida pomanjšati v obratni smeri. Pri označevalcih se izračuna inverzna animacija, ki se zaradi optimizacije izvede na enak način kot preračun širine črte mej, takoj po koncu koraka povečave (tudi v shaderju). Nazadnje je bilo treba zagotoviti, da bodo označevalci lahko sodelovali. Pri tem se pojavi podoben problem kot pri poligonih: učinkovitejše bi bilo, če se ob premikanju ne bi preračunavala celotna predstavitev WebGL, temveč samo ustrezni označevalec (animiran ob dotiku s kazalcem miške). Ker tega knjižnica Pixi.js ne omogoča zlahka, se med to interakcijo ustvari dvojnik označevalnika, ki pa se ne prikaže na canvasu, temveč kot element HTML prek vmesnika Leaflet API. To je na splošno zelo zmogljiva rešitev, saj je zdaj treba animirati samo en element HTML (z uporabo CSS). Takoj ko označevalec ponovno zapustite s kazalcem miške, se po izvedbi animacije z nasprotnim vrtenjem (pomanjševanje) ponovno odstrani in prvotni, optično enak označevalec WebGL pod njim postane ponovno viden. V osnovi druge komponente implementacije VerbaAlpina dostopajo do implementacije WebGL prek vmesnika, tako da bi jo teoretično lahko povezali tudi z drugimi aplikacijami ali izmenjali. Medtem je bilo izvajanje razširjeno in vključuje urejevalnik poligonov, ki omogoča urejanje ali ponovno risanje vseh poligonov WebGL.
Povzetek
Izvedba digitalnega prikaza zemljevidov VerbaAlpina izpolnjuje zahteve glede zmogljivosti in interaktivnosti s pomočjo najnovejših spletnih tehnologij. Z uporabo WebGL in odprtokodnega koncepta projekt predstavlja trajnostno rešitev, ki lahko tudi v prihodnosti sledi tehnološkemu razvoju. Poleg tega kombinacija programov Leaflet in WebGL omogoča vizualizacijo obsežnih in kompleksnih podatkov na spletnem zemljevidu, kar močno olajša uporabo in analizo jezikovnih podatkov. VerbaAlpina tako ne zagotavlja le dragocenega vira za raziskave, temveč predstavlja tudi primer učinkovite uporabe sodobnih spletnih tehnologij v znanosti.Uniform Resource Locator
VerbaAlpina