13 Web kartografija

Ako se vratimo na jednu od definicija kartografije, onda je jednostavnije definisati i Web kartografiju: “Kartografija je naučna disciplina koja se bavi metodama izrade i proizvodnje, kao i načinom korišćenja karata.” Ono što Web kartografiju razdvaja od tradicionalne, jeste njena „ograničenost" na Web, kao medijum. Većina prethodno dostupnog kartografskog znanja, ostaje i dalje na snazi, stupanjem na scenu Web-a.

Web kartografija predstavlja granu kartografija koja izučava: tehnike dizajniranja i implementacije karata na Web-u, načine korišćenja Web karata i sl. U užem smislu web kartografija izučava tehnologije dizajniranja, implementacije i diseminacije karata na Web-u.

Karta predstavlja apstrakciju i selekciju geografske realnosti, pri čemu su jasno izraženi prostorni oblici i odnosi, ali Web karta može imati i nove funkcije:

  • Deo pretraživačke mašine,
  • Deo pretraživačke mašine koja se odnosi na lokalnu infrastrukturu prostornih podataka,
  • Interfejs za pristup drugim geografskim ili negeografskim podacima,
  • Web karte su multimedijalne,
  • Često služe za kolaborativno kartiranje (eng. crowdsourcing),…

Primeri Web kartografskih aplikacija:

Pre nego što pređemo na tipičnu arhitekturu Web kartografskog portala biće dat najosnovniji pregled ključnih pojmova vezano za Internet tehnologije.

13.1 Uvod u Internet tehnologije

Internet predstavlja najveću i najznačajniju mrežu današnjice. Ova mreža povezuje veliki broj različitih mreža i računare širom cele planete. Ne postoji jedinstvena definicija Interneta već se dve grupe opisa Interneta mogu naći u literaturi i to: strukturni i funkcionalni opis Interneta.

Sa strukturnog stanovišta, Internet se definiše preko hardverskih, komunikacionih i softverskih komponenti koje ga sačinjavaju. Sa ovog stanovišta, Internet je WAN (eng. Wide Area Network) mreža koja povezuje mnoštvo manjih privatnih ili javnih mreža. Internet omogućava računarima i drugim uređajima povezanim na ove mreže da međusobno komuniciraju. Komunikacioni kanali su izrađeni od veoma različitih fizičkih komunikacionih tehnologija (raznih vrsta kablova, bežičnih veza, satelitskih veza). Krajnji računari se nazivaju i host računari. Između host računara postoje obično samo posredne veze preko uređaja koji se nazivaju ruteri. Struktura Interneta je hijerarhijska: host računari su povezani u mrežu njihovih lokalnih Internet dobavljača (eng. Internet Service Provider - ISP), uređaji lokalnih dobavljača su povezani u regionalne mreže, regionalne mreže su povezane u nacionalne i internacionalne, itd. I host računari i ruteri poštuju IP protokol komunikacije koji, između ostalog, svakom od njih dodeljuje jedinstvenu logičku adresu koja se naziva IP adresa. IP protokol definiše mogućnost slanja paketa informacija između hostova i rutera. Paketi informacija od hosta do hosta putuje preko niza rutera, pri čemu se putanja automatski određuje i hostovi nemaju kontrolu nad putanjom paketa. Softver koji je instaliran na host računarima korisnicima pruža različite usluge u mreži.

Sa funkcionalnog stanovišta, Internet se definiše preko usluga koje nudi svojim korisnicima. Sa tog stanovišta, Internet je mrežna infrastruktura koja omogućava rad distribuiranim aplikacijama koje korisnici koriste. Ove aplikacije uključuju Web koji omogućava korisnicima pregled hipertekstualnih dokumenata, elektronsku poštu (eng. e-mail), prenos datoteka (FTP, SCP) između računara, upravljanje računarima na daljinu preko prijavljivanja na udaljene računare (TALNET, SSH), itd. Vremenom se gradi sve veći i veći broj novih aplikacija. Ove aplikacije međusobno komuniciraju preko svojih specifičnih aplikacionih protokola (HTTP, SMTP, POP3,…).

Internet nudi različit broj servisa od kojih je najpoznatiji Web servis. Ovaj Internet servis nastao je ranih 1990-tih godina i čini najznačajniji Internet servis današnjice. Predstavlja sistem međusobno povezanih dokumenata poznatih kao Web stranice koje mogu da sadrže tekst, slike, video snimke i druge multimedijalne materijale. Web stranice su povezane korišćenjem veza (linkova), tj. prestavljaju hiperlinkove. Korisnici aktivirajući veze (jednostavnim klikom miša na vezu) prelaze sa jedne stranice na drugu.

Stranice se čuvaju na specijalizovanim Web serverima i na zahtev klijenata se prenose na klijentske računare gde ih specijalizovani programi prikazuju. Ovi programi predstavljaju Web pretraživače (eng. Web browser). Danas su najpoznatiji Web pretraživači Google Chrome, Mozilla Firefox, Microsoft Internet Explorer, Safari, Opera, itd.

Osnovni razlog za uspeh Interneta je definisanje i pridržavanje standarda komunikacionog protokola. Protokoli definišu način na koji računari, odnosno aplikacije koje se na tim računarima nalaze međusobno komuniciraju bez obzira na hardverske platforme i operativne sisteme koji se nalaze na računarima u mreži.

13.1.1 HTTP

Hipertext Transfer Protokol (HTTP) predstavlja osnovu Web-a. HTTP je implementiran u okviru dve vrste programa: klijentskim programima, najčešće Web pretraživačima i serverskim programima, najčešće Web serverima. Ovi programi međusobno komuniciraju razmenom HTTP poruka. HTTP definiše strukturu ovih poruka i način na koji klijenti i serveri razmenjuju ove poruke. Web u suštini predstavlja jednu distribuiranu aplikaciju koja je zasnovana na Web stranicama. Web stranice se sastoje od objekata - hipertekstualnih datoteka opisanih na jeziku HTML, slika u raznim formatima (npr. JPG, PNG, GIF), Java apleta i sl. Svaki pojedinačni objekat ima svoju adresu na Web-u u obliku tzv. URI (eng. Uniform Resource Identifier).

HTTP protokol funkcioniše tako što klijent uspostavlja TCP konekciju (obično na portu 80) sa serverskim računarom, i zatim šalje HTTP zahteve (eng. HTTP request) za određenim Web objektima serverskom računaru.

HTTP zahtevi i odgovori se navode u precizno specifikovanom formatu.

HTTP zahtev se šalje nakon što je je uspostavljena TCP konekcija sa nekim host računarom. U prvoj liniji, navodi se metoda, putanja (na serveru) do objekta koji se zahteva i verzija HTTP protokola.

Postoji nekoliko različitih metoda, pri čemu se najčešće koriste GET, POST i donekle HEAD metoda.

HTTP zahtev sadrži i niz polja i njihovih vrednosti kojima klijent serveru saopštava neke relevantne informacije. Nakon prijema HTTP zahteva, server šalje HTTP odgovor.

Razmena informacija između Web klijenta i Web servera odvija se u skladu sa HTTP protokolom korišćenjem HTML-a (eng. HiperText Markup Language) i XML (eng. eXtensible Markup Language) jezika za struktuiranje.

GET metoda šalje zahtev i podatke kroz URL za specificirani resurs dostupan na serveru i najčešće se kao odgovor dobijaju podaci koje taj resurs može da poslužuje. POST metode ne šalje podatke kroz URL već kroz atribut send() metode, pa je bezbednija i koristi se kada treba slati poverljive podatke (najčešće koje unosi korisnik). POST metoda se najčešće koristi kad se žele poslati podaci na neki resurs na serveru, na kom je to omogućeno. HEAD metoda traži od servera header-e sa navedene URL adrese bez sadržaja dokumenta (koristi se npr. da bi se proverio datum izmene resursa).

13.1.2 HTML

HTML (eng. HyperText Markup Language) je jezik za kreiranje hipertekstualnih dokumenata (struktura koja se sastoji od međusobno povezanih jedinica informacije prikazana na nekom elektronskom uređaju) i predstavlja jednu od osnova Web-a.

HTML je opisni jezik koji se koristi za definisanje sadržaja Web stranica. Razvija ga i održava W3C (eng. World Wide Web Consortium) konzorcijum. U trenutku pisanja ovog rada aktuelna verzija jezika je HTML 5.0. Pomoću HTML-a se na Web strani mogu jednostavno odvojiti elementi kao što su naslovi, paragrafi, citati, slike, tabele i slično. Dakle, HTML je isključivo opisni jezik iako se određeni dinamički aspekti Web strane mogu postići korišćenjem predefinisanih tagova u aktuelnoj verziji HTML 5.0 (multimedijani sadržaj, prikaz skalabilne grafike). Prednost HTML standarda je potpuna nezavisnost jezika od platforme na kojoj se prikazuje Web strana koja je opisana HTML-om. Mana HTML-a je ograničen broj tagova čime postaje neefikasan za opisivanje složenijih podataka i nema mogućnost korisničke definicije taga koji bi opisivao bilo koji podatak za kojim korisnik ima potrebu.

13.1.3 XML

XML (eng. eXtensible Markup Language) je meta jezik za obeležavanje koji je nastao sredinom 1990-tih kao rezultat potrebe za postojanjem jezika koji bi bio jako sličan preteči HTML jezika – SGML (eng. Standard Generalized Markup Language) jeziku. XML je jezik koji je jednostavan za parsiranje (rasčlanjavanje) i obradu. Prilikom pisanja dokumenta na XML jeziku moraju se poštovati striktna pravila koja su definisana standardom. Neke od najznačajnijih karakteristika XML jezika bi bile:

  • XML je Internet jezik,
  • XML podržava veliki broj aplikacija,
  • Jednostavno je pisati programe koji procesiraju XML dokumente (ASCII fajlovi),
  • XML ne sadrži opcione i proizvoljne delove,
  • XML dokumenti su čitljivi i jasni za ljude,
  • XML dokumenti se veoma jednostavno kreiraju.

Vremenom se pojavio veliki broj aplikacija, odnosno XML dijalekata. Neki od njih su:

  • XHTML – zapis hipertekstualnih dokumenata,
  • MathML – zapis matematičkog sadržaja,
  • SMIL – zapis multimedijalnog sadržaja,
  • SVG – zapis vektorskih crteža,
  • SOAP – korišćenje Web servisa,
  • GML – razmena i struktuiranje prostornih podataka.

S obzirom na strogu sintaksu XML dokumenta, XML je vremenom postao jezik za zapisivanje raznovrsnih struktuiranih i polustruktuiranih informacija i došlo je do razvoja specijalnih baza podataka koje su zasnovane na skladištenju informacija u XML dokumentima i korišćenja specijalizovanih jezika (Xpath, XQuery) za pretraživanje.

Dakle, XML omogućava razmenu podataka između nekompatibilnih sistema i omogućava interoperabilnost u komunikaciju. XML se koristi za čuvanje podataka u fajlovima ili bazama podataka, kreiranje novih jezika, npr. WML (eng. Wireless Markup Language). On olakšava deljenje podataka kroz različite informacione sisteme, a posebno kroz one koji su povezani sa Internetom.

13.1.4 JavaScript/ECMAScript

JavaScript predstavlja najpopularniji jezik za pisanje klijentskih Web skriptova. Razvijen je u kompaniji Netscape i veoma brzo je počeo da se intenzivno koristi za dodavanje dinamičnosti Web stranicama. Ubrzo nakon toga, Microsoft ugrađuje podršku za svoj jezik u Internet Explorer, ali zbog pravnih pitanja svoj dijalekat naziva Jscript. Prvo ime jezika u Netscape-u je bilo LiveScript što je trebalo da ukaže da je namena ovog jezika izrada dinamičkih, “živih” Web stranica. Skoro u isto vreme, u kompaniji Sun Microsystems pojavio se jezik Java koji je stekao veliku popularnost na Internetu jer je u njemu bilo moguće pisati Java aplete, a i Netscape ubacuje podršku za aplete u njihov Web pretraživač. Nešto kasnije Netscape je preimenovao svoj jezik u JavaScript kako se ne bi narušila tadašnja popularnost jezika Java.

JavaScript predstavlja jezik koji danas implementira i donekle proširuje standard poznat kao ECMAScript definisan u dokumentima ECMA-262 i ISO/IEC 16262. Standardizacija jezika urađena je pod okriljem asocijacije ECMA. European Computer Manufacturers Association (ECMA) je industrijska asocijacija osnovana 1961. posvećena standardizaciji u oblasti Information and Communication Technology (ICT) i Consumer Electronics (CE).

JavaScript sintaksa je u velikoj meri inspirisana sintaksom jezika Java, čija je sintaksa inspirisana jezicima C i C++. Veliki broj standardnih imena je preuzet iz jezika Java. Jezik razlikuje mala i velika slova. JavaScript je dinamički i slabo tipiziran jezik koji kombinuje nekoliko programskih paradigmi i to pre svega proceduralnu i objektno orijentisanu. Programiranje u JavaScript-u se u velikoj meri zasniva na korišćenju objekata standardne biblioteke kao i DOM (Document Object Model) objekata. JavaScript kod se u potpunosti odvija u okviru procesa Web pretraživača i iz njega nije moguće pristupati okruženju van samog pretraživača što je veoma važno iz bezbedonosnih razloga kako bi se sprečili zlonamerni skriptovi da pristupe delovima fajl sistema klijentske mašine.

Na razvoju JavaScript-a danas radi Mozilla Foundation, koja se smatra naslednikom Netscape-a.

Detaljno o Internet tehnologijama videti na http://poincare.matf.bg.ac.rs/~filip/uvit/.

13.2 Tipičana arhitekrura Web kartografskih aplikacija

Tipičan Web kartografski portal je opisan Slikom 13.1. Na serverskoj strani je Web server, Web kartografski server, baza podataka ili fajlovi. Najčešće su sve ove komponente na jednom računaru, a mogu biti i na više različitih računara.

Arhitektura Web kartografskog portala. Izvor: https://www.e-education.psu.edu/geog585/node/684, Credit: Icons by RRZEicons (Own work), via Wikimedia Commons.

Slika 13.1: Arhitektura Web kartografskog portala. Izvor: https://www.e-education.psu.edu/geog585/node/684, Credit: Icons by RRZEicons (Own work), via Wikimedia Commons.

Web server predstavlja računar na kome je instaliran odgovarajući softver koji ima mogućnost interpretiranja zahteva, koji se šalju putem HTTP protokola (ali i drugih kao npr. HTTPS, FTP, FTPS, SMTP,…). Klijent na mreži može da zahteva različite resurse od strane servera. Preko HTTP protokola server odgovara zahtevima za Web stranicama, slikama, fajlovima, podacima, različitim servisima, itd. Kada klijent (Web pretraživač) zahteva pristup nekom sajtu, Web server odgovara na njegov zahtev. Server obrađuje zahtev, interpretira ga, i vraća odgovor koji Web pretraživač prikazuje korisniku. Moguće je slati zahtev za različitim tipovima resursa (fajlova) putem HTTP-a, a ne samo zahteve za HTML stranicama. Kako je pristup svakom računaru određen portovima (ulazima) koji su predstavljeni brojevima, tako je i pristup Web serveru određen portom. Uobičajeno port za pristup Web serveru je 80. Svaki server ima IP adresu, tako da kada se neka stranica posećuje, posećuje adresa kao npr. http://osgl.grf.bg.ac.rs, tada praktično na osnovu zadatog imena u Internet pregledaču vrši se preusmerenje u ovom slučaju na jedinstven IP: 147.91.22.148:80, gde broj 80 govori da se radi o Web serveru, i može biti izostavljen. Apač (Apache) je najkorišćeniji Web server na Internetu, trenutno je vrlo popularan i nginx server.

Web kartografski serveri predstavljaju specijalizovanu softversku aplikaciju koja čini deo Web server modela i koja ima implementiranu funkcionalnost da prima i odgovara na zahteve za geoinformacijama. Web kartografski server koristi različite protokole. Najčešće je reč o WMS (eng. Web Map Service), WFS (eng. Web Feature Service) i mnogim drugim protokolima otvorenog ili industrijskog standarda. Ovi protokoli su razvijeni specijalno za razmenu geoinformacija, bilo da je reč o vektorskim podacima, geoprostornim atributima ili rasterskim kartama i sl. U najpoznatije Web kartografske servere mogu se svrstati:

Web kartografski klijenti predstavljaju biblioteke (najčešće u JavaScript jeziku) koje omogućavaju vizualizaciju, manipulaciju i analizu geoprostornih podataka oslanjajući se na Web standarde. Takođe, klijenti mogu biti i standardne GIS aplikacije koje imaju nabrojane funkcionanosti, npr QGIS i druge.

Na klijentskoj strani, nalazi se komponenta za prikazivanje Web karte (eng. Mapping Widget) koja je umetnuta na Web stranici (geoportalu) i ona procesira i prikazuje podatke u formi karte. Takođe, klijent treba da obezbedi mogućnost kreiranja zahteva za podacima na serveru i mogućnost da rezultate upita sa serverske strane prihvati i prikaže u Web pretraživaču.

Komunikacija klijentskog, aplikacionog i serverskog sloja vrši se putem mreže, npr. Web-a, i ceo sistem je distribuirane arhitekture, komponente su fizički odvojene, a ceo servis deluje kao jedna funkcionalna celina. Kartografskim servisima se pristupa putem standardnih Web kartografskih protokola (WMS, WFS,…) slanjem poruke sa zahtevom preko HTTP protokola. Klijent može biti direktan korisnik podataka ili drugi kartografski servis koji obrađuje zahteve nekog drugog klijenta. Format za razmenu podataka u mreži je XML. Tipičane Web klijent aplikacije su: OpenLayers, Leafleat, Cesiumjs i drugi.

13.3 OGC (Open Geospatial Consortium) servisi

OGC (eng. Open Geospatial Consortium) je internacionalni industrijski konzorcijum sa više od 500 kompanija, vladinih agencija i univerziteta koji učestvuju u stvaranju javno dostupnih geoprostornih standarda. Ovi standardi podržavaju interoperabilna rešenja koja uključuju prostorne podatke u Web, bežične i lokacijski bazirane servise i u IT industriju uopšte. Takođe omogućavaju ljudima i organizacijama koje rade na razvoju tehnologije da prave kompleksna rešenja u oblasti prostornih informacija i servisa, koja će biti upotrebljiva i korisna sa svim vrstama aplikacija i različitim platformama.

OGC razvija interfejse za geoprostorne Web servise, koji se oslanjaju na W3C protokole za razmenu informacija preko Web-a. Web servisi funkcionišu kroz interfejse i operacije koje omogućavaju razmenu informacija sa određenim kodiranjem. Servis predstavlja funkcionalnost koju kroz skup interfejsa nudi neki entitet. Interfejs u ovom smislu sadrži set poziva (zahteva) koje korisnik može da uputi enitetu da bi isti izvršio određeni proces (npr. upit ili transformaciju nad podacima). Obično interfejs definiše nazive operacija, skup neophodnih parametara koje korisnik unosi i njihove dozvoljene vrednosti. U kontekstu Web servisa, operacija predstavlja zahtev upućen serveru. Neki od standarda su: WMS, WCS, WFS, WPS, SLD i drugi.

13.4 WMS (Web Map Service)

WMS (eng. Web Map Service) je standardni HTTP protokol za serviranje georeferenciranih rasterskih slika preko Interneta, praktično WMS isporučuje kartografski stilizovane prostorne lejere, Slika 13.2. Takvi lejeri mogu se koristiti kao pozadinske karte u okviru neke GIS aplikacije ili mogu biti deo Web karte. Servirane slike su najčešće u JPEG ili PNG formatu, a servis podržava i podešavanje transparencije, tako da je moguće preklapati više lejera odjednom.

Shematizovan prikaz Web servisa. Izvor: http://www.e-cartouche.ch/.

Slika 13.2: Shematizovan prikaz Web servisa. Izvor: http://www.e-cartouche.ch/.

OGC je realizovao nekoliko verzija do danas:

  • WMS v. 1.0.0, april 2000;
  • WMS v. 1.1.0, jun 2001;
  • WMS v. 1.1.1., januar 2002;
  • WMS v. 1.3.0, januar 2004

WMS protokol je implementiran u velikom broju aplikacija, kako komercijalnih, tako i onih besplatnih i otvorenog koda. Dve najčešće korišćene implementacije otvorenog koda su GeoServer (opisan u jednom od sledećih poglavlja) i Mapserver. Od komercijalnih na primer: ArcGIS Server, ArcIMS, GeoMedia i druge.

Ovaj protokol propisuje parametre upita kojima se pravi zahtev ka serviranim lejerima (Slika 13.3), a najznačajnija su sledeća dva:

  • GetCapabilities - daje opis servisa (postavke WMS-a), i popis dostupnih layer-a,
  • GetMap - vraća rastersku sliku karte zavisno od definisanih parametara u upitu (zatraženi layer-i, koordinate vrhova graničnog okvira i slično).
GetMap i GetCapabilities zahtevi. Izvor: http://www.e-cartouche.ch/.

Slika 13.3: GetMap i GetCapabilities zahtevi. Izvor: http://www.e-cartouche.ch/.

Osim gore navedenih parametara upita, zavisno od implementacije, WMS korisnik može koristiti i sledeće upite za pristup informacijama: GetFeaturerInfo (dobijanje atributa podataka), DescribeLayer (dobijanje dodatnih podataka o layer-u), GetLegendGraphic (dobijanje legende kartografskog prikaza).

Takođe, prilikom dobijanja podataka korišćenjem WMS upita potrebno je definisati još neke parametre: Layers (odabir željenih layer-a u prikazu), Styles (kombinovanje stilova za vizualizaciju prostornih podataka), SRS/CRS (definisanje željenog koordinatnog sistema), Height i Width (visina i širina izlazne slike), Format (format dostavljene slike), i drugo.

Primer jednostavnog GetMap WMS upita za seizmički lejer koji je: “Karta inteziteta na površini lokalnog tla za povratni period od 975 godina”. Ovaj lejer je serviran preko Geoservera koji je deo Laboratorije za razvoj geoprostornih tehnologija otvorenog koda na Građevinskom fakultetu u Beogradu, http://osgl.grf.bg.ac.rs. Naziv lejera na u Geoserver aplikaciji je: povrsina_lokalnosti_975_region.

http://osgl.grf.bg.ac.rs/geoserver/osgl_3/
  wms?service=wms&version=1.3.0&request=GetMap&
  layers=povrsina_lokalnosti_975_region&
  bbox=18,40,24,48&width=512&height=512&
  format=image/png

link

Kao rezultat ovog upita (upisanog u adresnu traku Internet pretraživača, sve u jednom redu bez razmaka), prikazaće se rasterska slika traženog područja, Slika 13.4. Prvi deo zahteva je od ostatka odvojen znakom ‘’?’‘, a ostali delovi su odvojeni znakom’‘&’’.

WMS GetMap, karta inteziteta na površini lokalnog tla za povratni period od 975 godina

Slika 13.4: WMS GetMap, karta inteziteta na površini lokalnog tla za povratni period od 975 godina

http://osgl.grf.bg.ac.rs/geoserver/osgl_3/wms  # adresa wms servera
?wms&version=1.3.0   # servis i verzija
&request=GetMap     # WMS zahtev
layers=povrsina_lokalnosti_975_region # lejer koji se traži
&bbox=18,40,24,48  # prostorni obuhvat
&width=512&height=512& # dimenzije prikaza u pikselima
format=image/png   # format prikaza

Tabela 13.1 sa svim parametrima GetMap zahteva data je bez prevoda na srpski.

Tabela 13.1: WMS GetMap parametri.
Parameter Required? Description
service Yes Service name. Value is WMS.
version Yes Service version. Value is one of 1.0.0, 1.1.0, 1.1.1, 1.3.0.
request Yes Operation name. Value is GetMap.
layers Yes Layers to display on map. Value is a comma-separated list of layer names.
styles Yes Styles in which layers are to be rendered. Value is a comma-separated list of style names, or empty if default styling is required. Style names may be empty in the list, to use default layer styling.
srs or crs Yes Spatial Reference System for map output. Value is in form EPSG:nnn. crs is the parameter key used in WMS 1.3.0.
bbox Yes Bounding box for map extent. Value is minx, miny, maxx, maxy in units of the SRS.
width Yes Width of map output, in pixels.
height Yes Height of map output, in pixels.
format Yes Format for the map output. See WMS output formats for supported values.
transparent No Whether the map background should be transparent. Values are true or false. Default is false
bgcolor No Background color for the map image. Value is in the form RRGGBB. Default is FFFFFF (white).
exceptions No Format in which to report exceptions. Default value is application/vnd.ogc.se_xml.
time No Time value or range for map data. See Time Support in GeoServer WMS for more information.
sld No A URL referencing a StyledLayerDescriptor XML file which controls or enhances map layers and styling
sld_body No A URL-encoded StyledLayerDescriptor XML document which controls or enhances map layers and styling

Operacija GetCapabilities je protokol kojim se zahtevaju metapodaci o servisima, ti podaci su u formatu čitljivom za računar i čoveka, najčešće XML format, Slika 13.5. Sadržaj poruke sadrži informacije o podacima na serveru i parametrima koji se mogu prosleđivati. Sledeći primer ilustruje upotrebu GetCapabilities zahteva:

http://osgl.grf.bg.ac.rs/geoserver/osgl_3/wms?service=wms&
version=1.3.0&request=&REQUEST=getcapabilities

link

Rezultat GetCapabilities zahteva u Internet pregledaču.

Slika 13.5: Rezultat GetCapabilities zahteva u Internet pregledaču.

Sledeći primer zahteva je za opis pojedinačnog lejera koristeći DescribeLayer zahtev:

http://osgl.grf.bg.ac.rs/geoserver/osgl_3/wms?
  service=wms&version=1.1.1&request=DescribeLayer&
  layers=povrsina_lokalnosti_975_region&
  output_format=application/json

link

{"version":"1.1.1",
  "layerDescriptions":[{"layerName":"osgl_3:povrsina_lokalnosti_975_region",
    "owsURL":"http://osgl.grf.bg.ac.rs:80/geoserver/osgl_3/wfs?",
    "owsType":"WFS",
    "typeName":"osgl_3:povrsina_lokalnosti_975_region"}]
  }

Operacija GetFeatureInfo zahteva atributne podatke o lejeru na specificiranoj lokaciji.

http://osgl.grf.bg.ac.rs/geoserver/osgl_3/wms?&SERVICE=WMS&
  INFO_FORMAT=application/json&crs=EPSG:4326&REQUEST=GetFeatureInfo&
  X=150&Y=250&bbox=18,40,24,48&width=512&height=512&
  LAYERS=povrsina_lokalnosti_975_region&
  QUERY_LAYERS=povrsina_lokalnosti_975_region

link

GetLegendGraphic je zahtev za preuzimanje legende, Slika 13.6.

http://osgl.grf.bg.ac.rs/geoserver/osgl_3/wms?
  REQUEST=GetLegendGraphic&VERSION=1.3.0&
  FORMAT=image/png&WIDTH=20&HEIGHT=20&
  LAYER=povrsina_lokalnosti_975_region

link

Rezultat GetLegendGraphic zahteva.

Slika 13.6: Rezultat GetLegendGraphic zahteva.

13.4.1 WMS-C (WMS Tile Caching)

WMS-C (punim imenom WMS Tile Caching) standard je nadogradnja na WMS protokol, a njegova svrha je ubrzano dostavljanje rasterskih slika kartografskog prikaza određenog područja. Ovo se postiže korišćenjem već spremnih slika (eng. perendered cashed image), koje obično pokrivaju dosta manje područje nego što korisnik zahteva. Kombinovanjem većeg broja slika u pravougaonu mrežu postiže se pokrivenost većeg područja (eng. tiling ili tessellation – popločanje).

Iako ova metoda značajno ubrzava dostavljanje slika prostornih podataka krajnjem korisniku, ona ima i određena ograničenja koja se javljaju zbog načina na koji radi. Zato što su slike spremne, korisnik prilikom upita ne može menjati izgled slika definisanjem dodatnih parametara u upitu. Na primer, onemogućeno je drugačije vizualizovanje prostornih podataka od već definisanog, izlazni format podataka je fiksan, ne mogu se skrivati ili prikazivati layer-i prema želji korisnika, širina i visina slika su takođe predefinisani, koristi se isključivo WGS 84 koordinatni sistem, i slično.

U slučaju da WMS-C posredni server (eng. proxy server) primi puni WMS zahtev (sa definisanim svim argumentima u upitu), isti vraća poruku o grešci ili preusmerava upit na klasični WMS server. U tom slučaju se gubi brzina dostavljanja kartografskih slika.

WMS-C protokol koristi NASA-in World Wind servis za prikaz satelitskih snimaka zemljine površine. Takođe servisi poput Google Maps-a, rade na način sličan WMS-C protokolu, te tako omogućavaju brzo i efikasno dostavljanje slika prostornih podataka velikom broju korisnika istovremeno.

13.4.2 TMS (Tile Map Service)

TMS (eng. Tile Map Service) je standard propisan od strane OGC-a i omogućava pristup unapred pripremljenim (eng. cashed) slikama georeferenciranih podataka. Ovaj standard definiše način na koji korisnik zahteva slikovne jedinice (eng. tiles), te se njihovim slaganjem u pravougaonu mrežu postiže kartografski prikaz određenog područja.

Korišćenjem ovog protokola, slično kao i kod WMS-C protokola, korisnik uzima slikovne jedinice koje su već pripremljene na serveru. Slikovne jedinice su dostupne samo u prethodno definisanim razmerama, sadrže unapred definisane layer-e, pripre-mljene su u unapred definisanoj projekciji i slično. Na primer, promenom razmere, korisnik preuzima drugi niz slikovnih jedinica. To znači da server ne priprema prikaz prostornih podataka nakon korisničkog zahteva, nego da je već pripremljen skup slika.

Prednost ovakvog načina posluživanja prostornih podataka je brzina dostavljanja slike nekog područja (što se lako uočava ako uslugu koja se temelji na ovom protokolu istovremeno koristi veliki broj korisnika). Nedostatak ovog standarda je njegova nefleksibilnost, tj., nemogućnost prilagođavanja prikaza prostornih podataka zavisno od korisničkih želja.

13.5 WFS (Web Features Service)

Web Features Service (skraćeno WFS) je protokol koji omogućava preuzimanje i izmenu prostornih podataka preko Interneta koristeći standardizovane upite. Održava ga i razvija, kao i prethodno navedene standarde OGC.

Verzije WFS servisa su: 2.0.0, 1.1.0 i 1.0.0.

Za razliku od WMS protokola, koji kao rezultat svakog upita dostavlja rastersku sliku traženog područja, WFS protokol praktično omogućava preuzimanje izvornih vektorskih podataka.

Ovakav oblik podataka omogućava izvođenje puno bogatijih analiza u daljem radu (izmena stila vizualizacije prostornih podataka, kombinovanje sa drugim prostornim podacima, njihovo preuzimanje od strane korisnika i slično), umesto samo pregledanje karte, što je slučaj kod WMS protokola.

Prostorni podaci preuzeti WFS-om se korisniku najčešće dostavljaju u GML (eng. Geography Markup Language) formatu. Osim GML-a, pri služenju prostornih podataka WFS protokolom mogu se koristiti ESRI Shape, JSON (eng. JavaScript Object Notation) i drugi formati.

Osim preuzimanja prostornih podataka, proširena specifikacija WFS-T (eng. Transactional Web Feature Service) protokola omogućava i njihovu izmenu u vidu stvaranja novih i brisanja ili izmene postojećih podataka. Takođe moguće je i zaključavanje prostornih podataka, koji se koriste u situacijama kada više korisnika istovremeno pristupa jednom skupu istih.

Standardni WFS zahtevi su:

  • GetCapabilities - za preuzimanje opisa servisa, lejera i parametara.
  • DescribeFeatureType - za XML strukturu kojom se omogućava klijentu da rasčlanjuje rezultate (parsira).
  • GetFeature - za preuzimanje vektorskih entiteta.
  • GetGmlObject (opciono samo za verziju 1.1.0) - za entitet (element) vektora koji se dobija uz prosleđen ID elementa.
  • Transaction (opciono) za izmenu nekog elementa (operacije: kreiranje, ažuriranje ili brisanje entiteta).
  • LockFeature (opciono) za onemogućavanje izmene entiteta u nekom vremenskom intervalu ili konačno (značajno kad više korisnika istovremeno rade na modifikaciji podataka).

WFS upit se preko HTTP protokola sa korisničkog računara šalje serveru, koji potom bira koje će informacije poslužiti, zavisno od parametara navedenih u upitu. Server zatim korisniku šalje odgovor u obliku geometrije sa atributima u, npr., GML obliku.

Shematski prikaz WFS GetCapabilities zahteva. Izvor: http://www.e-cartouche.ch/.

Slika 13.7: Shematski prikaz WFS GetCapabilities zahteva. Izvor: http://www.e-cartouche.ch/.

Sledeći primer ilustruje GetFeature zahtev za preuzimanje dve tačke iz lejera koji predstavlja temperaturne trendove u Srbiji za period od 1970-90, servis je opisan na serveru metapodataka OSGL Beograd.

http://osgl.grf.bg.ac.rs/geoserver/osgl_2/wfs?service=WFS&version=1.0.0
&request=GetFeature&typeName=osgl_2:tac_trends_annual&
maxFeatures=2&outputFormat=application/json

link

{
  "type": "FeatureCollection",
  "totalFeatures": 64,
  "features": [
    {
      "type": "Feature",
      "id": "tac_trends_annual.1",
      "geometry": {
        "type": "Point",
        "coordinates": [
          504984.47472919,
          4810811.705007
        ]
      },
      "geometry_name": "the_geom",
      "properties": {
        "Stanice": "Aleksandrovac",
        "NV": 360,
        "temp50": 10.74,
        "temp1": 10.29,
        "trend1": -0.05049,
        "sgn1": 1,
        "amp1": 10.31,
        "temp2": 11.15,
        "trend2": 0.03703,
        "sgn2": 0,
        "amp2": 10.61,
        "cor": 0.5457,
        "god_p": 1985,
        "trend1_dec": -0.5049,
        "trend2_dec": 0.3703
      }
    },
    {
      "type": "Feature",
      "id": "tac_trends_annual.2",
      "geometry": {
        "type": "Point",
        "coordinates": [
          616218.37037067,
          4769607.0385912
        ]
      },
      "geometry_name": "the_geom",
      "properties": {
        "Stanice": "Babusnica",
        "NV": 495,
        "temp50": 10.04,
        "temp1": 9.69,
        "trend1": -0.00839,
        "sgn1": 0,
        "amp1": 10.07,
        "temp2": 10.62,
        "trend2": 0.06799,
        "sgn2": 1,
        "amp2": 10.84,
        "cor": 0.5299,
        "god_p": 1992,
        "trend1_dec": -0.0839,
        "trend2_dec": 0.6799
      }
    }
  ],
  "crs": {
    "type": "name",
    "properties": {
      "name": "urn:ogc:def:crs:EPSG::3046"
    }
  }
}

Prvi deo zahteva navodi Internet adresu servera koji sadrži tražene prostorne podatke. Od ostatka upita ovaj deo je odvojen znakom upitnika ‘’?’’.

Drugi deo je obavezan i definiše protokol koji će se koristiti za preuzimanje željenih prostornih podataka. U ovom slučaju je reč o WFS protokolu opisanom u ovom poglavlju. Treći deo je takođe obavezan ako koristimo WFS protokol i defiiniše verziju korišćenog protokola.

Četvrti deo definiše radnju koju želimo da server obavi. U ovom slučaju preuzimamo podatke u vidu geometrije i njenih atributa, te se zato koristi operacija GetFeatures. Zatim, je zadat broj entiteta koji se preuzimaju i format podataka, GeoJSON.

Prilikom korišćenja WFS protokola moguće je koristiti i sledeće parametre:

  • sortBy - sortira podatke zavisno od njihovih atributa, kojih se može navesti i više, ali se tada odvajaju zarezom,
  • bbox - definiše granice obuhvata sa dva para koordinata, međusobno odvojenih zarezom.

13.6 WCS (Web Coverage Service)

OGC Web Coverage Service (WCS) predstavlja standard kojim je omogućeno preuzimanje rasterskih podataka koji čine jedan prostorni obuhvat (eng. coverage): digitalne geoprostorne informacije koje modeliraju prostorno-varijabilne fenomene, polja ili rasterski pristup.

Pojednostavljeno rečeno, ono što je WFS za vektorske podatke, to je WCS za rasterske podatke. Dakle, jedna od glavnih funkcionalnosti ovog servisa je mogućnost preuzimanja publikovanih izvornih rastera. WCS ima nekoliko verzija, aktuelna je 2.0.1.

Potrebno je praviti razliku između WCS i WMS servisa. Ovi servisi su veoma slični i mogu klijentu da daju slične rasterske formate, ali WCS servis omogućava veću količinu povratnih informacija, uključujući i vrednosti metapodataka o odabranom rasteru i veći broj raspoloživih rasterskih formata, koji su georefencirani i mogu se dalje koristiti u bilo kom GIS softveru. Rezultat zahteva koji je upućen WCS-u može biti iskorišćen za kompleksnije modeliranje i analizu, što omogućava ekstrakciju većeg broja informacija iz publikovanih podataka. Upiti koje postavlja klijent mogu biti definisani i za deo obuhvata, a ne i za ceo raster. Na primer, ukoliko je publikovani raster digitalni model visina (eng. Digital Elevation Model - DEM), pri WMS zahtevu za DEM-om odgovor servera se ne bi mnogo razlikovao od skenirane karte DEM-a, koja je u GIS alatima neupotrebljiva bez prethodnog georeferenciranja jer praktično ima samo pikselske koordinate ako se upotrebljava bez kartografskog servisa.

Svaki WCS servis podržava sledeća tri ineterfejsa: GetCapabilities, DescribeCoverage i GetCoverage.

Primer upita dat je na lejeru koji predstavlja prosečne temperature u Srbiji, servis je opisan na OSGL Beograd katalogu metapodataka.

http://osgl.grf.bg.ac.rs/geoserver/osgl_2/ows?
service=WCS&version=2.0.1&request=GetCoverage&
coverageId=osgl_2__tac_temp_1961_2010&format=geotiff

link

Parametri su slični kao u prethodnim primerima.

13.7 WPS (Web Processing Service)

Web Processing Service (WPS) je standardni interfejs koji obezbeđuje pristup predefinisanim procesima nad prostornim podacima. WPS sadrži i kontrolne operacije za početak procesiranja, kontrolu i monitoring izvršenja procesa tj. algoritma. Takav proces izvršenja nekog algoritma tipično proizvodi nove podatke bilo da su prostorni podaci ili samo nove informacije na bazi prostornih podataka.

Ključne operacije koje WPS servis sadrži su:

  • GetCapabilities - Obezbeđuje meta podatke o servisu sa listom procesa koji su obezbeđeni datim servisom.
  • DescribeProcess - Daje detaljan opis procesa sa opisom ulaznih i izlaznih parametara.
  • Execute - Služi za pokretanje procesa na serveru koristeći ulazne parametre koji su neophodni za vraćanje izlaznih parametara.

Dodatno ako server nudi asinhrone procese, još tri zahteva su moguća:

  • GetStatus - Za status posla koji se asinhrono izvršava.
  • GetResult - Za preuzimanje rezultata nastalih kroz asinhron proces.
  • Dismiss - Za prekid asinhronog procesa.

Osim navedenih OGC standarda postoje još mnogo drugih koji se mogu primenjivati za različite potrebe, spisak svih standarda dostupni su na url adresi:

http://www.opengeospatial.org/standards/common.