GML kao podloga geo-prostornoj interoperabilnosti

Size: px
Start display at page:

Download "GML kao podloga geo-prostornoj interoperabilnosti"

Transcription

1 SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br GML kao podloga geo-prostornoj interoperabilnosti Martin Žagar Zagreb, lipanj 2004.

2 Sadržaj 0. Uvod 6 1. Upotreba GML-a za opisivanje geo-prostornih podataka Pozadina i razvoj GML-a Svojstva GML-a Jednostavna svojstva Geometrijska svojstva Osnovne GML Sheme Svojstvena shema Geometrijska shema XLink Shema Kodiranje geografskih Informacija pomoću GML-a GML aplikacijske sheme Zaglavlje Korijenski element Dijeljene definicije Definicije svojstava Ograničenja na vrijednostima svojstava Struktura GML dokumenata Provjera ispravnosti GML dokumenata Zaključak Metode vizualizacije GML-a ArcExplorer Vizualizacija GML podataka pomoću SVG-a Vizualizacija geografskih podataka Nastanak i razvoj SVG-a Alati za vizualizaciju SVG-a Prikazivanje svojstava u SVG-u Vidljivo područje - Viewport i Viewbox Koordinatni sustavi i transformacije Osnovni geometrijski elementi SVG-a Tekst u SVG-u Stiliziranje grafike 34 2

3 3.10. Grupiranje elemenata u SVG-u Transformacije koordinata Ispunjavanje površina Naglašavanje linija Interakcija u SVG-u 42 4.Upotreba XSLT-a u vizualizaciji GML podataka XSL-FO i XPath Stabla i čvorovi XSLT struktura i elementi Predložak Selektiranje čvorova Imenovani predlošci Sadržaj izlaza Izlazne metode Umetanje lista pravila Stvaranje XSLT liste pravila XSLT Procesori Zaključak Primjer vizualizacije GML-a XMLNotepad Msxsl Rezultat transformacije prikazan u SVG obliku i vizualiziran pomoću MS IE Zaključak Literatura Sažetak Abstract Zahvala Životopis 73 Dodatak A: gmlfeature.dtd 74 Dodatak B: gmlgeometry.dtd 76 Dodatak C: mreza.gml 80 Dodatak D: transf.xsl 95 Dodatak E: SVG source dobiven transformacijom dokumenta mreza.gml 103 3

4 Popis oznaka i kratica OpenGIS Consortium (OGC) Geography Markup Language (GML) Extensible Markup Language (XML) Document Type Definition (DTD) Resource Description Framework (RDF) Geografski Informacijski Sustav (GIS) Computer Aided Design (CAD) Scalable Vector Graphics (SVG) Graphics Interchange Format (GIF) Joint Photographic Experts Group (JPEG) Portable Network Graphics (PNG) World Wide Web Consortium (W3C) XML Stylesheet Language Transformation (XSLT) Document Object Model (DOM) Cascading Style Sheet (CSS) XSL Formatting Objects (XSL-FO) XML Path Language (Xpath) 4

5 Popis slika i tablica Slika 1. Vizualizacija GML-a pomoću SVG-a 6 Slika 2. Izbornik interoperability 20 Slika 3. Učitavanje GML dokumenta 20 Slika 4. Primjer identificiranja za grad Beijing (Peking) 21 Slika 5. Mjerenje udaljenosti pomoću izbornika Measure 22 Slika 6. Definiranje transparentnosti u SVG-u 25 Slika 7. Uz definiciju atributa C elementa <path> 28 Slika 8. Primjer korištenja atributa C u elementu <path> 28 Slika 9. Primjer upotrebe ravnih i zakrivljenih linija 29 Slika 10. Primjer osnovnih geometrijskih elemenata 31 Slika 11. Različiti tekstualni elementi 33 Slika 12. Selekcija klasa 37 Slika 13. Pravila ispunjavanja 41 Slika 14. Značajke naglašavanja obrisa 42 Slika 15. Interaktivnost SVG dokumenta (1) 43 Slika 16. Interaktivnost SVG dokumenta (2) 43 Slika 17. XML Notepad 61 Slika 18. Greška koju javlja XMLNotepad ukoliko izvorni kod nije valjan 61 Slika 19. Msxsl komandni prozor 62 Slika 20. Izlazna datoteka proba31.svg 63 Slika 21. Prikazivanje koordinata 64 Slika 22. Ispisivanje atributa i značajki elementa trafo-stanica 65 Slika 23. Ispisivanje atributa i značajki elementa vod 67 Slika 24. Selektiranje teksta 68 Tablica 1. Osnovne geometrijske značajke u GML Tablica 2. Transformacije u SVG-u 39 Tablica 3. Funkcije, metode i varijable JavaScript-a 45 5

6 0. Uvod GML (eng. Geography Markup Language) je oblikovan da podrži interoperabilnost i to omogućava kroz uporabu osnovnih geometrijskih oznaka - tagova (svi sustavi koji podržavaju GML koriste iste geometrijske tagove), zajedničkim podatkovnim modelom (svojstvima) i mehanizmom za kreiranje i dijeljenje aplikacijskih shema. Kratki uvod u GML se nalazi u prvom poglavlju. Međutim, GML datoteke ne sadržavaju informacije o stilu i načinu prikazivanja. To se može riješiti na više načina, od kojih je za ovaj diplomski rad izabrano rješenje vizualizacije pomoću SVG-a (eng. Scalable Vector Graphics) (slika 1). Opis SVG standarda se nalazi u trećem poglavlju. Za prikaz je potrebno format GML transformirati u format SVG. Transformacija se obavlja definiranjem pripadne liste pravila, odnosno pripadnog XSLT dokumenta. Postupci stvaranja XSLT dokumenta su opisani u četvrtom poglavlju. U petom poglavlju je dan primjer prikaza razdjelne mreže u GML formatu. Slika 1. Vizualizacija GML-a pomoću SVG-a 6

7 1. Upotreba GML-a za opisivanje geo-prostornih podataka 1.1. Pozadina i razvoj GML-a Geografska informacija nije ograničena kao samostalan sustav ili jedna homogena mreža. Ona je dijeljena u heterogenim okolinama koje služe za prikaz geografske stvarnosti u računalu. U većini slučajeva su geografski podaci skupljani od više određenih organizacija u različite svrhe i zbog toga su podaci mogli biti u drugačijim modelima. Aplikacije koje koriste različite zbirke podataka (npr. za zaštitu okoliša, konstrukciju cesta) moraju međudjelovati sa drugim sustavima, ne samo na razini podataka, nego također i na aplikacijskoj razini. To uključuje podatke podijeljene između sustava, kao i podatke koji su strukturirani na način da imaju značenje u odgovarajućoj paradigmi. Uvođenje XML-a je omogućilo lagano stvaranje specijaliziranih jezika i kao rezultat su nastali neki geografski orijentirani jezici koji su trebali ispunjavati gore navedene zahtjeve, ali niti jedan se nije nametnuo kao prihvatljiv standard za geo-informacijsko područje. Napokon, OpenGIS Consortium (OGC) je predložio standard nazvan Geography Markup Language (GML), za prezentaciju geografskih podataka, temeljen na XML-u. Standard specificira strukturu za kodiranje podatka, način povezivanja podataka, te definira prijenos i spremanje podatka u okolini Interneta, uključujući i prostorne i neprostorne značajke pojedinih svojstava. GML 1.0 je definiran od OGC u svibnju g. i zasniva se na specifikaciji XML 1.0. Sastoji od tri GML profila, koji nude različite razine fleksibilnosti u strukturiranju podataka. Za to se koriste Document Type Definition (DTD) i Resource Description Framework (RDF). 7

8 Profil 1 je za one koji žele upotrijebiti rješenja koja se temelje na čistom DTD-u i ne žele razvijati poseban DTD specifičan za dotičnu aplikaciju. Ovaj profil zahtijeva upotrebu GML Feature i GML Geometry DTD-ova. Profil 2 je za one koji žele upotrijebiti rješenja koja se temelje na čistom DTD-u, ali su spremni razviti vlastiti, aplikacijski specifičan, DTD. Ovaj profil zahtijeva od korisnika da stvori aplikacijski specifični GML Feature DTD koji koristi ranije definiran GML Geometry DTD. Profil 3 je za one koji su spremni na korištenje RDF Sheme. Korisnici ovog profila tipično će zahtijevati veću kontrolu nad geoprostornim podacima (tj. oni moraju moći dati ime određenom tipu prema stvarnoj shemi definicije). Ovaj profil zahtijeva od korisnika da stvori specifičnu RDF Shemu definicija koja koristi GML RDF Shemu definicija. GML 2.0 je definiran i izdan u ožujku 2001., također od strane OGC-a, kao nasljednik standarda GML 1.0. GML 2.0 pruža jedinstveno kodiranje metoda (XML Shema) i jedinstven pristup stvaranju GML shema. GML 2.0 izbjegava nespretnu kombinaciju DTD-a i RDF-a u GML 1.0 i podržava nasljeđivanje tipova, distribuciju shema integracija i imena. Osim toga, pruža širok skup unaprijed definiranih primitivnih tipova podataka (string, boolean, real, month) i dopušta stvaranje ugrađenih i korisnički definiranih vrsta podataka. Upotreba XML Shema u GML pruža mehanizam za vrednovanje i verifikaciju definiran u specifikaciji XML 1.0. Specifikacija GML 2.0 definira tri osnovne sheme; geometrijsku shemu (geometry.xsd), svojstvenu shemu (feature.xsd), i XLink shemu (xlinks.xsd) za kodiranje geoprostornih informacija. Ove tri osnovne meta-sheme pružaju skup temeljnih klasa iz kojih se dalje konstruiraju aplikacijske sheme. Početkom je definiran standard GML 3.0 čija su dodatna svojstva, u odnosu na GML 2.0, vremenske značajke, jedinice mjere i proširenje pojedinih geometrijskih značajki unaprijed definiranih GML shemama. Trenutno je aktualna verzija GML 3.1. objavljena u travnju koja donosi neka pojednostavljenja u korištenju shema. 8

9 1.2. Svojstva GML-a GML modelira svijet zasnivajući se na običnom geografskom modelu pa se geografsko svojstvo definira kao apstrakcija nekog prirodnog obilježja i mora biti povezano s nekim mjestom na Zemlji. Zato se geografska stvarnost može digitalno predstaviti pomoću svojstva feature. Stanje obilježja je određeno pomoću skupa značajki, gdje svaka značajka ima ime, tip i vrijednost. Geografska svojstva su svojstva čije značajke imaju geometrijske vrijednosti. Zbirka svojstava je skup svojstava koja se može opisati kao jedno svojstvo. Definicija tipova svojstava ovisi o domeni primjene i broju značajki svojstva koja se mogu odrediti tipom svojstva Jednostavna svojstva Simple features (jednostavna svojstva) se koriste u GML specifikacijama 1.0 i 2.0. To su svojstva koja su prikazana dvodimenzionalnom geometrijom. Iako GML 2.0 dopušta 3-D koordinatne sustave, ne pruža izravnu potporu za trodimenzionalnu geometriju. Tek je GML 3.0 pružio potpunu potporu 3-D koordinatnim sustavima. Model jednostavnog svojstva je pojednostavljenje općeg modela opisanog OGC specifikacijom. Jedno pojednostavljenje je pretpostavka da svojstva imaju ili jednostavne značajke ili geometrijske značajke, a drugo je da se pretpostavlja 2- dimenzionalan SRS (Spatial Reference Sistem referentni koordinatni sustav) i upotreba linearne interpolacije između koordinata. Nadalje, Simple Feature model pruža geometrijske elemente koji odgovaraju geometrijskim klasama Point, LineString, LinearRing, Polygon, MultiPoint, MultiLineString, MultiPolygon, MultiGeometry i Box. Jednostavna svojstva su ona koja se mogu opisati osnovnim tipovima podataka kao na primjer string, integer, real, Boolean itd. 9

10 Geometrijska svojstva OGC model jednostavnih svojstava definira skup osnovnih geometrijskih elemenata (gore spomenutih), koja imaju neka svoja svojstva. Tip svojstva može imati više geometrijskih značajki koje opisuju različite geoprostorne osobine. GML imenuje geometrijske značajke u trima razinama: formalno ime obilježava geometrijske značajke kao vrijednosti temeljene na tipu geometrije opisno ime je skup standardiziranih sinonima za formalna imena koja olakšavaju upotrebu skupa uvjeta i aplikacijski specifična imena koja odabire korisnik i definirana su u pripadnim aplikacijskim shemama temeljenima na GML-u. Formalna i opisna imena za osnovne geometrijske značajke su navedena u tablici 1. Formalno ime Opisno ime Geometrijski tip boundedby - Box pointproperty location Position, CenterOf Point linestringproperty linestringproperty, edgeof LineString polygonproperty extentof, coverage Polygon geometryproperty - geometryproperty multipointproperty multilocation, multiposition, MultiPoint multicenterof multilinestringproperty multicenterlineof, multiedgeof MultiLineString multipolygonproperty multiextentof, multicoverage MultiPolygon multigeometryproperty - MultiGeometry Tablica 1. Osnovne geometrijske značajke u GML 2.0. (Izvor: GML 2.0 specifikacija) 1.3. Osnovne GML Sheme GML 2.0 definira tri osnovne shema za kodiranje prostornih informacija. Ove sheme pružaju komponente za izgrađivanje GML aplikacijskih shema. Drugim riječima, 10

11 osnovne GML sheme pružaju meta-shemu, odnosno skup temeljnih klasa, od kojih se može konstruirati aplikacijska shema Svojstvena shema Svojstvena shema definira osnovni model svojstava i njihovih značajki koja opisuju i apstraktne i konkretne elemente i tipove. Definirane su i zbirke svojstava (kao tip svojstva), a uključuje i često korištene značajke svojstava, kao na primjer fid (feature identifier), ime i opis. Element <include> u svojstvenoj shemi uključuje definicije i deklaracije koje su sadržane u geometrijskoj shemi za upotrebu u definiranju tipova svojstava Geometrijska shema Geometrijska shema uključuje detaljnu geometriju komponente, odnosno definicije tipova za apstraktne geometrijske elemente, konkretne točke, linije i poligone, kao i složene definicije tipova. Element <import> u geometrijskoj shemi uvodi definicije i deklaracije koje su sadržane u XLink shemi XLink Shema XLink shema dopušta umetanje elemenata u XML dokument pomoću kojih se stvaraju i opisuju veze između resursa. Koristi XML sintaksu u stvaranju strukture povezivanja sličnog jednostavnim hiperlinkovima u HTML-u Kodiranje geografskih informacija pomoću GML-a Korištenjem triju osnovnih shema XML-a, može se kodirati raznovrsne geoprostorne informacije kao što su svojstva s ili bez geometrijskih značajki, geometrija, zbirka svojstava i načini na koji su svojstva povezana. Geografsko obilježje u GML-u je, kao 11

12 što je već spomenuto, lista jednostavnih i geometrijskih značajki. Svojstva su određena imenima elementa, a definicija klase svojstava imenuje značajke koje određeni tip svojstva mora imati. Definicije tipova nasljeđuju odgovarajuće ime klase na koji dodaju sufiks Type, npr. svojstvo Road se kodira kao <element name= "Road" type= "RoadType "/> GML aplikacijske sheme Tri osnovne GML sheme (svojstvena shema, geometrijska shema i XLink shema) same po sebi ne pružaju odgovarajuću shemu za složene podatkovne instance jer ograničavaju podatke, već definiraju osnovne tipove i strukture koje mogu biti korištene u aplikacijskoj shemi. GML aplikacijska shema opisuje stvarne tipove obilježja i tipove značajki koje su od interesa za određenu domenu, koristeći komponente definirane u standardnim shemama. Bilo koja GML aplikacijska shema mora biti pisana u skladu sa GML 2.0 specifikacijom i ne smije mijenjati ime, definiciju, ili tip podataka obaveznih GML elemenata. Međutim, definicije apstraktnih tipova mogu se slobodno proširivati ili ograničavati. Kao i bilo koji drugi XML dokument, GML aplikacijska shema također se sastoji od zaglavlja i tijela Zaglavlje Zaglavlje počinje s XML-om deklaracijom koja se sastoji od version i encoding atributa. Element <schema> mora sadržavati imenovane prostore koji su korišteni u definiranju sheme. Atribut targetnamespace definira korisnički imenovan prostor i njegova vrijednost je jedinstven identifikator za GML prostor. Za primjer: <?xml version="1.0" encoding="iso "?> <schema targetnamespace=" xmlns:gfm=" xmlns:gml=" xmlns:xlink= 12

13 xmlns= elementformdefault="qualified" version="1.0"> <annotation> <appinfo>gfm.xsd v1.0 </appinfo> <documentation xsl:lang="en"> GML aplication schema </documentation> </annotation> <import namespace= schemalocation="feature.xsd"/> U elementu <annotation> se nalaze informacije o aplikacijskoj shemi, dok se elementom <import> uključuje druge definirane GML sheme koje su korištene u ovoj shemi. U ovom slučaju je uključena GML svojstvena shema (feature.xsd) koja uključuje i geometrijske i Xlink sheme Korijenski element Prvi element u aplikacijskoj shemi definira korijenski element. U definiciji sheme korijenski element ima svoju zamjensku grupu i temelji se na gml:abstractfeaturecollectiontype. Na primjer, ako se topografska informacija sela modelira u GML-u, može se sastojati od ceste, rijeke, terena, zgrade i klasa koja opisuju svojstva granica. Zbirka ovih klasa svojstava je korijenski element i ako se on nazove kao VillageTopoModel, može biti određen u shemi kako slijedi. <element name="villagetopomodel" type="gfm:villagetopomodeltype" substitutiongroup="gml:_featurecollection/> <complextype name="villagetopomodeltype"> <complexcontent> <extension base="gml:abstractfeaturecollectiontype"> <sequence> <element name="datecreated" type="date"/> </sequence> </extension> </complexcontent> </complextype> 13

14 Dijeljene definicije Postoje neke značajke koje su dijeljene od više objekata u definiciji sheme. Na primjer, vremenske i metadata informacije su vezane za svako svojstvo u modelu. Da bi se naslijedile te značajke u svim svojstvima definira se complextype koji se odnosi na definicije grupa i svi tipovi svojstava moraju naslijediti taj tip. <group name="temporaldata"> <sequence> <element name="begindate" type="string" /> <element name="enddate" type="string" /> </sequence> </group> <group name="metadata"> <sequence> <element name="source_type" type="string"/> <element name="source_description" type="string"/> <element name="accuracy" type="string"/> <element name="actuality" type="string"/> <element name="code_num" type="integer"/> </sequence> </group> <complextype name="topodatatype" abstract="true"> <complexcontent> <extension base="gml:abstractfeaturetype"> <sequence> <element name="code_id" type="integer"/> <group ref="gfm:temporaldata"/> <group ref="gfm:metadata"/> </sequence> </extension> </complexcontent> </complextype> 14

15 Definicije svojstava Svojstva su objekti koji su vidljivi na karti. U primjeru ispod, zgrada je jedan tip svojstva i zbirka takvih građevinskih svojstava je predstavljena tipom BuildingLayer. Svi takvi slojevi mogu biti određeni u TopoDataLayerType koji nasljeđuje gml:abstractfeaturecollectiontype. <complextype name="topodatalayertype"> <complexcontent> <extension base="gml:abstractfeaturecollectiontype"/> </complexcontent> </complextype> <element name="buildinglayer" type="topodatalayertype" substitutiongroup="gml:_featurecollection"/> <element name="building" type="gfm:buildingtype" substitutiongroup="gml:_feature"/> <complextype name="buildingtype" > <complexcontent> <extention base="gfm:topodatatype> <sequence> <element name="type" type="string"/> <element name="function" type="string"/> <element name="height_category" type="string"/> <element name="height" type="string"/> <element name="status" type="string"/> <element ref="gml:geometryproperty"/> <element name="heightlevel" type="integer" minoccurs="0" /> <element name="name" type="string" minoccurs="0" /> </sequence> </extension> </complexcontent> </complextype> Svi drugi slojevi svojstava mogu biti definirani na sličan način. 15

16 Ograničenja na vrijednostima svojstava Značajka svojstva može imati unaprijed definiran broj dopuštenih vrijednosti. Kada je takva značajka tipa string, moguće je nabrajanje tih svojstava. <element name="function" type="functiontype"/> <simpletype name="functiontype"> <restriction base="string"> <enumeration value="municipality"/> <enumeration value="police office"/> <enumeration value="post office"/> <enumeration value="church"/> <enumeration value="hospital"/> <enumeration value="station"/> <enumeration value="storage tank"/> <enumeration value="other"/> </restriction> </simpletype> 1.6. Struktura GML dokumenata Bilo koji GML dokument počinje sa standardnim XML zaglavljem u kojem se definiraju encoding i version atributi, te nakon toga dolazi korijenski element (kao i kod aplikacijske sheme). Element <gml:boundedby> sadržava vanjsku granicu svih svojstava u GML dokumentu. Atribut SrsName unutar <Box> elementa govori o koordinatnom sustavu u kojem su koordinate opisane. Nakon određivanja granica cijele zbirke svojstava, svaka zbirka je opisana zasebno sa svojim granicama. Primjer tako fragmentiranog GML dokumenta se nalazi ispod. <gml:boundedby> <gml:box srsname="epsg:7408"> <gml:coordinates> , , </gml:coordinates> 16

17 </gml:box> </gml:boundedby> <gfm:featuremember> <gfm:buildinglayer> <gml:boundedby> <gml:box srsname="epsg:7408"> <gml:coordinates> , , </gml:coordinates> </gml:box> </gml:boundedby> <gfm:featuremember> <gfm:building fid="gfm.bld260"> <gfm:code_id>bld260</gfm:code_id> <gfm:begindate>10 Janu 2003</gfm:begindate> <gfm:enddate/> <gfm:code_num>8885</gfm:code_num> <gfm:type>tower</gfm:type> <gfm:function>municipality</gfm:function> <gfm:height_category>3</gfm:height_category> <gfm:height>40</gfm:height> <gfm:status>occupied</gfm:status> <gml:geometryproperty> <gml:polygon srsname="espg:7408"> <gml:outerboundaryis> <gml:linearring> <gml:coordinates> , , , , , </gml:coordinates> </gml:linearring> </gml:outerboundaryis> </gml:polygon> </gml:geometryproperty> </gfm:building> </gfm:featuremember> </gfm:featuremember> 17

18 1.7. Provjera ispravnosti GML dokumenata Ispravnost GML dokumenta mora biti provjerena kroz validaciju (vrednovanje). Prvo dokument mora biti dobro formiran (well-formed) što znači da je pisan u skladu sa XML sintaksom. Slijedeći korak je validacija u skladu sa definicijom sheme. To je moguće ostvariti pomoću programa XMLSpy, XMLNotepad, TurboXML i sl Zaključak GML je standard temeljen na XML-u i služi za opisivanje geografskih podataka. GML modelira geografske podatke kao svojstva i zbirke svojstava koje su definirane u aplikacijskim shemama. Aplikacijske sheme nasljeđuju temeljne GML sheme. GML dokument temeljen na takvoj shemi može biti obrađen bilo kojim XML parserom. GML ne pruža nikakve informacije o prikazu i zato se sadržaj podataka mora pretvoriti u drugi grafički format. 18

19 2. Metode vizualizacije GML-a Prema principima XML tehnologije i razvojnim ciljevima, GML ne bi trebao sadržavati prezentacijske podatke. Kao posljedica toga, GML datoteke ne sadržavaju informacije o stilu i načinu prikazivanja. S druge strane, postoje načini kako dodati stilove prema kojima se GML prikazuje. Jedna od metoda je, kada se GML podaci importiraju u GIS ili drugu CAD aplikaciju, stilovi mogu biti dodani kroz tu programsku podršku. Druga metoda je razvoj specifičnog GML-viewera (pokazivača) koji zna čitati GML podatke i generirati kartografski pogled. Takav program treba imati interaktivni modul da bi mogao mijenjati grafičke značajke i svojstva. Također je moguće napraviti odvojen dokument koji sadržava informacije potrebne za prikaz, koji će zajedno sa GML podacima takav viewer znati čitati i generirati grafički prikaz. Takvi specijalizirani pokazivači još nisu jako razvijeni i raspoloživi. Za sada postoji samo jedan GML-viewer zadovoljavajućih mogućnosti, a da je besplatan. Ime mu je ArcExplorer i proizvod je tvrtke «ESRI». Vjerojatno je i proizvod tvrtke «InterGraph» također visoko razvijen (jer je to poznata tvrtka na polju geografskih informacijskih sustava), ali njihov proizvod ima cijenu od oko 800 $ pa je dosta nepristupačan. ArcExploreru je posvećeno sljedeće poglavlje. Postoji još jedna mogućnost prikaza geografskih podataka, a to je transformacija GML-a u drugi XML grafički format - SVG. Glavna prednost ovakvog pristupa je u tome što je SVGViewer (proizvod tvrtke «Adobe») standardno ugrađen u MS IE 6.0 na više, pa nema potrebe za instalacijom dodatnih programa (ArcExplorer nakon što ga se instalira zahtjeva točno određen JRE i zahtjeva brisanje određenih programa što može stvarati probleme, tako da nije baš najpodesniji u smislu računalne otvorenosti). Način vizualizacije podataka pomoću SVGViewera bit će prikazan u poglavlju 3. 19

20 2.1. ArcExplorer Slika 2. Izbornik interoperability ArcExplorer-Java Edition je program za vizualizaciju geografskih podatka. Osim vizualizacije prostornih podataka i njihovih svojstava, moguće je nad njima obavljati i upite, razne analize i prilagođavati kartografski prikaz pojedinom korisniku. Slika 3. Učitavanje GML dokumenta Pomoću izbornika interoperability prikazanog na slici 2. moguće je učitati GML dokument zajedno sa pripadajućom aplikacijskom shemom (slika 3). Također je moguće spremiti izmjene ili kartografski prikaz nekog drugog formata u GML. Moguće je podesiti koje slojeve će program spremiti, koje labele će ostati vezane i spremiti selektirane podatke koje smo dobili upitima. Upitima postižemo selekciju 20

21 točno određenih podataka i to je vrlo važno svojstvo jer je moguće u samom izrazu za selekciju uključiti različite atribute, operatore i izračune. Slika 4. Primjer identificiranja za grad Beijing (Peking) U izborniku Tools je moguće povećati ili udaljiti mapu, selektirati samo jedan njezin dio, identificirati pojedina svojstva pomoću naredbe identify (kao što je prikazano na slici 4., klikom miša iznad kružića koji predstavlja Peking dobili smo njegove značajke). Još jedno zgodno svojstvo je mjerenje udaljenosti između pojedinih svojstava (objekata) na karti. To je prikazano na slici 5. na primjeru udaljenosti ukupnog puta od New Yorka preko Kansas Citya i San Antonia do Houstona. Oznaka Segment koja se nalazi u gornjem lijevo uglu karte daje duljinu zadnjeg segmenta, a Total ukupnu označenu duljinu. 21

22 Slika 5. Mjerenje udaljenosti pomoću izbornika Measure U izborniku Layer možemo podesiti izgled prikaza (boje, veličina slova i oznaka) kao i informacije koje će se pojaviti na mapi (imena gradova, rijeka). Moguće je pridjeljivanje oznaka u odnosu na neka svojstva (na primjer različite boje za označavanje gradova s obzirom na broj stanovnika i sl.). Aktiviranje pojedinih slojeva moguće je korištenjem izbornika koji se nalazi na lijevoj strani (na slici 5. je uokviren crveno). Još jedna pogodnost ArcExplorera je opcija Geography Network kojom je moguće pristupiti globalnoj mreži geografskih podataka putem Interneta i korištenje podataka od korisnika diljem svijeta. U tu svrhu postoje i opcije WMS (Web Map Server) i WFS (Web Feature Server). Više o ArcExploreru na 22

23 3. Vizualizacija GML podataka pomoću SVG-a SVG (eng. Scalable Vector Graphics) je XML aplikacija za dvodimenzionalnu grafiku. Ima mnoge prednosti pred drugim grafičkim formatima. Ovdje će biti opisane prednosti i mogućnosti SVG-a, kao i prikladnost za gledanje geografskih podataka Vizualizacija geografskih podataka Geografski podaci daju informaciju o prirodnim elementima na Zemljinoj površina kao što su ceste, rijeke, zgrade, tlo, teren, granice i sl. Kada govorimo o vizualizaciji tih podataka, to znači da se svi ti elementi moraju grafički predstaviti. Pri tome se koriste osnovni grafički elementi, točke, linije i površine. Točke služe za definiranje položaja i najosnovniji su od ova tri tipa. Linije su linearna polja točaka i definiraju smjer kao i poziciju. Površine definiraju opseg, smjer i poziciju i predstavljene su dvodimenzionalnim razmještajem točaka. Da bi vizualizacija dobila što više na značenju, treba se identificirati i analizirati podatke koji će biti predstavljeni prije nego ih se simbolizira. Tekst se koristi u vizualizaciji za prikaz informacija koje nije moguće simbolizirati Nastanak i razvoj SVG-a Većina grafika na Webu se sastoji od slika predstavljenih kao niz obojenih piksela. GIF (Graphics Interchange Format), JPEG (Joint Photographic Experts Group) i PNG (Portable Network Graphics) su primjeri grafičkih formata koji se zasnivaju na ovom principu. Alternativan pristup za slanje vrijednosti piksela putem Weba je slanje uputa 23

24 kako nacrtati crtež koji prikazuje svojstva kao što su linije ili vektori, i popuniti te oblike (vektorska grafika), što nudi značajne prednosti pred formatima temeljenim na pikselima (bitmap i rasterska grafika). Međutim, niti jedan takav vektorski format nije bio široko prihvaćen od alata za kreiranje Web stranica i najčešće je bio vrlo kompliciran. Zbog toga je W3C (World Wide Web Consortium) godine razvio novi standardni format za vektorsku grafiku, Scalable Vector Graphics (SVG), koji se podudarao sa potrebama Web preglednika i relativno je jednostavan. SVG dopušta tri osnovna tipa grafičkih objekata; vektorski grafički oblici (tj. putovi koji se sastoje od ravnih i zakrivljenih linija), slike i tekst. Također podržava gradijentno ispunjavanje površina, korištenje filtara i komponente kao što su simboli i oznake (markeri). U SVG-u grafički objekti mogu biti grupirani, stilizirani, transformirani i spojeni u veće objekte. SVG crteži mogu biti dinamični i interaktivni. SVG nudi mnoge važne prednosti pred rasterskim formatima: Ima svojstvo zumiranja: slike mogu biti povećavane bez žrtvovanja oštrine, detalja ili jasnoće. Tekst ostaje tekst: tekst se u SVG slikama može editirati i može se pretraživati. Ne postoje ograničenja vezana uz font i korisnici će uvijek vidjeti sliku na isti način na koji je napravljena. Malena veličina dokumenta: donosi brzinu u izvođenju. Neovisnost prikaza, bez obzira na radnu stanicu. Interaktivnost: SVG slike mogu reagirati na korisničke akcije s promjenom izgleda, audio efektima i animacijom. Otvoren standard: SVG je otvoren standard razvijen od strane W3C i za razliku od nekih drugih grafičkih formata, SVG nema vlasnika. Baziran na XML-u: nudi sve prednosti XML-a, interoperabilnost, široku podršku i laganu transformaciju pomoću XML Stylesheet Language Transformation (XSLT). 24

25 3.3. Alati za vizualizaciju SVG-a Postoje dvoje glavne vrste SVG viewera, samostalni SVG vieweri i SVGenabled Web preglednici. Najrazvijeniji i najnapredniji samostalni SVG viewer je Adobe SVG viewer. Raspoloživ je za različite platforme i radi u svim značajnijim Web preglednicima. Ovaj viewer podržava većinu SVG specifikacije, uključujući i SVG DOMsupport, i ima velike mogućnosti uključivanja skriptnih jezika (ECMAScript, JavaScript). SVG viewer se standardno nalazi u Web pregledniku MS IE 6.0. na više Prikazivanje svojstava u SVG-u SVG je grafički format razvijen da udovolji zahtjevima Web okoline. SVG vieweri simuliraju «painters» algoritam, što znači da se preklapajuća područja prebojana ili ovisno o vrijednosti transparentnosti, prosijava donji sloj takvih područja. To se može vidjeti na slici 6. Transparentnost se definira atributom fill-opacity i vrijednost se kreće od 0 za prozirno do 1 za neprozirno. Slika 6. Definiranje transparentnosti u SVG-u 25

26 Ako su svi objekti definirani kao neprozirni na vrhu će biti onaj koji je zadnji definiran u dokumentu. Dakle elementi se prebojavaju u skladu sa slijedom pojavljivanja u kodu. Time možemo dobiti 2.5D prostor kojim se može relativno dobro prikazati reljef podloge Vidljivo područje - Viewport i Viewbox Viewport je područje u kojem će SVG biti vidljiv. Atributi width i height (širina i visina) elementa <svg> se koriste za definiranje dimenzija, a atributima x i y se određuju koordinate gornjeg lijevog ugla u dotičnom koordinatnom sustavu. Kada je <svg> element ugniježđen unutar SVG dokumenta, stvara se novi Viewport, kojem je pridružen novi koordinatni sustav s novim početnim koordinatama i vlastitom veličinom. ViewBox atribut definira područje prikazivanja u Viewport ekranu u kojem možemo definirati vlastite početne koordinate (atributi originx i originy), pa nam tako koordinatni sustav ne mora počinjati sa koordinatama 0,0 nego npr. -200, Koordinatni sustavi i transformacije SVG koristi Kartezijev koordinatni sustav, čije ishodište je locirano u gornji lijevi kut polja za prikaz. X-os raste prema desno, a Y-os raste nadolje. Zbog toga kada koristimo SVG za prikaz mapa, Y-os mora biti invertirana množenjem svih y- vrijednosti sa -1 ili nekim drugim načinom. 26

27 3.7. Osnovni geometrijski elementi SVG-a Slični kao i ostali vektorski grafički paketi, SVG također ima neke unaprijed definirane osnovne geometrijske oblike: <rectangle>, <circle>, <ellipse>, <line>, <polyline>, <polygon> i objekte puta (<path>). Element <path> je najvažniji i najsloženiji geometrijski oblik u SVG. Njime možemo nacrtati otvorene i zatvorene linije objekata i poligone, a sastoji se od liste koordinata. Primjer jednog od načina izgleda elementa <path>: <path d= "M x1 y1 L x2 y2 L x3 y3 L x4 y4... L xn yn "/>. Atribut d dopušta opis nekoliko tipova crteža. M x1 y1 znači pomakni se (move) na koordinate x1, y1. L x2 y2 povlači liniju od trenutnih koordinata na koordinate x2, y2. Element <path> koristi različitu sintaksu kojom se mogu ostvariti kompleksni oblici korištenjem samo jednog elementa. Moguće vrijednosti za d atribut su: M = moveto, L = lineto, H = horizontal lineto (ima samo jedan parametar, i to x, jer vrijednost y-osi ostaje ista), V = vertical lineto (ima samo jedan parametar, y, vrijednost x ostaje ista), C = curveto, S = smooth curveto, Q = quadratic bezier curveto, T = smooth quadratic bezier curveto, A = eliptcal arc i Z = closepath (navodi se na kraju bez koordinata i njime zatvaramo granice objekta povlačenjem ravne linije od trenutnih koordinata do početnih koordinata). Korištenjem velika slova (npr. M) definiramo apsolutne koordinate, a malim slovima (npr. m) relativno pozicioniranje. Slike 7. i 8. prikazuju mogućnosti povezane s parametrom c atributa d. 27

28 Slika 7. Uz definiciju atributa C elementa <path> Slika 8. Primjer korištenja atributa C u elementu <path> Primjer korištenja atributa elementa <path> je stvaranje patke kako je prikazano na slici 9. Gornja patka je definirana skupom točaka i sastoji se zapravo od niza pravaca koji povezuju te točke: <path d="m L L L L L L L L L L L L L L L L L L L 28

29 L L L L L L L L L L L L L L L L L L L L L L L Z"/> Slika 9. Primjer upotrebe ravnih i zakrivljenih linija Donja patka je prikazana pomoću skupa zakrivljenih linija: <path d="m C C C C C C C C Z"/> 29

30 Iz primjera je vidljiva prednost upotrebe zakrivljenih linija, jer smo dobili patku koja ima glađe linije i definirana je sa samo 23 točke, naspram 45 točaka koliko je bilo potrebno za gornju patku. SVG sadržava nekoliko semantičkih i sintaktičkih mjera za smanjivanje veličine izraza kojima se opisuje put: korištenje relativnih koordinata glatke zakrivljene linije - često se susjedne zakrivljene linije trebaju zagladiti. To se postiže definiranjem prve kontrolne točke druge linije kao refleksije od druge kontrolne točke prve linije. sintaktičke simplifikacije - može se ispustiti prazno mjesto kada je rezultat nedvosmislen. Na primjer, prazno mjesto nije potrebno između naredbenog slova (M, L) i vrijednosti koordinate; negativne koordinate ne trebaju razdvojenost od prethodne; ako je slijedeća naredba ista kao prethodna, naredbeno slovo može biti ispušteno. Primjenjujući gore navedena pravila, patku možemo nacrtati i sa samo 160 znakova (u usporedbi sa početnih 443): <path d="m 0 312c c c c c c c c z"/> Izrazi puta su jako svestrani, ali mogu biti nepotrebno moćni kada definiramo jednostavne oblike. Kao posljedica, SVG definira nekoliko drugih osnovnih elemenata u svojoj specifikaciji, kao što su <rectangle>, <circle>, <ellipse>, <line>, <polyline> i <polygon>. Osnovni atributi su opisani u slijedećem primjeru (i na slici 10): <svg tyle="stroke:orange;fill:green" width="820" height="820"> 30

31 <circle cx="70" cy="100" r="50" /> <rect x="150" y="50" rx="20" ry="20" width="135" height="100"/> <line x1="325" y1="150" x2="375" y2="50" /> <polyline points="50, , , , , , 350" /> <polygon points=" 250, , , , , 284" /> <ellipse cx="400" cy="300" rx="72" ry="50" /> </svg> Slika 10. Primjer osnovnih geometrijskih elemenata 31

32 3.8. Tekst u SVG-u Tekst se u SVG-u može ostvariti pomoću više različitih elemenata koji ga opisuju. Ovdje će biti definirana tri glavna (slika 11): tekst definiran pomoću elementa text tekst definiran pomoću elementa tspan kojim je moguće varirati značajke i atribute korištene u prezentaciji teksta tekst čiji je put određen pomoću elementa textpath <text x="220" y="20"> <tspan x="220" dy="30">ovo je kompleksna linija</tspan> <tspan x="220" dy="30">teksta ili tekst</tspan> <tspan x="220" dy="30" style="fill:white;stroke:green">sa različitim značajkama </tspan> <tspan x="20" dy="30" rotate=" ">koje sa mogu napraviti</tspan> <tspan x="220" dy="30">korištenjem elementa tspan</tspan> </text> <path id="duck" d="m C C C C C C C C Z"/> <text style="font-size:10"> <textpath xlink:href="#duck"> Idemo gore, pa idemo dolje, onda opet gore oko glave. Sada smo naopačke jer idemo uz vrati uzduž leđa do repa. </textpath> </text> <text> <tspan x="30" dy="30" font-size="16">ovo </tspan> 32

33 <tspan x="330" dy="30" fill="red">je </tspan> <tspan x="530" dy="30" font-weight="normal">jedna </tspan> <tspan x="130" dy="30" font-family="courier" fontsize="28">jedini </tspan> <tspan x="330" dy="30" fill="blue">tekstualna </tspan> <tspan x="30" dy="60" font-style="italic">rečenica </tspan> <tspan x="430" dy="30" font-size="18">koja </tspan> <tspan x="330" dy="30" font-size="20">je </tspan> <tspan x="230" dy="30" font-size="24">razbacana </tspan> <tspan x="130" dy="30" font-size="28">skroz </tspan> <tspan dx="30" dy="30">po </tspan> <tspan dx="130" dy="30">grafičkoj </tspan> <tspan dx="-230" dy="30">podlozi</tspan> </text> Slika 11. Različiti tekstualni elementi 33

34 Upotrebom elementa text definiramo pomoću atributa x i y mjesto prikaza teksta. Koordinate predstavljaju donji lijevi kut prvog znaka i znakovi su prikazani od lijevo nadesno. Atributima povezanima s tekstom može se promijeniti početna pozicija, karakteristike teksta i smjer. Tekst unutar tspan može imati koordinate definirane apsolutno x i y ili relativno dx i dy. Trenutni položaj teksta je pomaknut za vrijednost koja je specificirana u slučaju postojanja relativnih atributa. Za oba atributa, dx i dy, može biti definirana lista u kojem slučaju prvi broj definira pomak za prvi znak, drugi definira pomak od prvog znaka za drugi znak i tako dalje. Svaki od znakova u tekstu unutar tspan elementa može biti zakrenut korištenjem atributa rotate Stiliziranje grafike Stilske značajke definiraju kako će biti prikazani grafički elementi u SVG dokumentu. SVG upotrjebljava te značajke za parametre kao na primjer fill, stroke colors, line widths i dash styles, koji su vizualne prirode, parametre povezane sa stilizacijom teksta kao na primjer font-family i font-size. Povrh statičnog stiliziranja SVG elemenata, dopušteno je i stiliziranje pomoću deklaracijske animacije ili skripte. Međutim, stiliziranje grafike je potencijalno složenije nego stiliziranje teksta. Da li je boja u grafici, na primjer, stil ili sadržaj elementa? Ako se boja koristi na karti za razlikovanje pojedinih zemalja, onda vjerojatno govorimo o stilu. Važno je da je boja jedne zemlje različita od boje druge zemlje. Stiliziranje može biti u ovoj situaciji od velikog značaja: najbolji izbor boje bi mogao ovisiti o kontekstu u kojem se karta koristi, definiranje boje kroz mehanizme stiliziranja omogućava promjenu boje od jednog konteksta do drugog. Boja ipak nije uvijek stil. Boja u logu, u umjetničkoj slici ili u preciznoj prezentaciji objekata realnog svijeta je svojstvo vezano uz sadržaj elementa. U ovom slučaju je boja atribut koji će biti prikazan točno tako (ukoliko može) u svakom kontekstu. Promijeniti boju kroz mehanizme stiliziranja bilo bi u ovom slučaju potpuno krivo. 34

35 Ovi slučajevi, boja kao stil i boja kao sadržaj elementa, se ostvaruje u SVG-u pomoću dva različita mehanizama. Jedna metoda je postaviti vizualne atribute direktno. Na primjer: <rect fill="yellow" stroke="black" x="20" y="30" width="300" height="200"/> <rect fill="none" stroke="red" x="20" y="330" width="300" height="200"/> U primjeru smo definirali dva pravokutnika, prvi je žuti s crnom granicom, drugi je proziran s crvenom granicom. Druga metoda stiliziranja je ilustrirana primjerom: <svg viewbox= " " > <style type="text/css"> <![CDATA[ rect {stroke:black; fill:yellow} rect.different {stroke:red; fill:none} ]]> </style>... <rect x="20" y="30" width="300" height="200"/> <rect class="different" x="20" y="330" width="300" height="200"/> </svg> Ovime se postiže isti vizualni efekt kao i u prvom primjeru. Element <style> definira listu pravila izraženu u CSS (Cascading Style Sheet) sintaksi. Oznaka CDATA se koristi da se izbjegne parsiranje i provjeravanje XML-a sintakse. U primjeru su opisana dva stila, prvi za pravokutnike općenito (ispunjavanje žutom bojom s crnom granicom) i drugi za pravokutnike koji pripadaju u klasu «different». Koji su prozirni i omeđeni crvenom bojom. Isti efekt se mogao postići definiranjem vanjskog CSS-a mystyle.css : rect (stroke:black; fill:yellow} rect.different (stroke:red; fill:none} 35

36 i uključivanjem u SVG dokument: <?xml-stylesheet type="text/css" href="mystyle.css"?> <svg viewbox= " " > <rect x="20" y="30" width="300" height="200"/> <rect class="different" x="20" y="330" width="300" height="200"/> </svg> Stil može također biti povezan izravno s elementom kojeg opisuje. Gornji primjer bi se tako mogao napisati: <rect style="stroke:black;fill:yellow" x="20" y="30" width="300" height="200"/> <rect style="stroke:red;fill:none" x="20" y="30" width="300" height="200"/> SVG dopušta da slike imaju proizvoljnu hijerarhijsku strukturu. CSS pruža mehanizme kontrole izgleda, bazirane na vrijednostima atributa (obično atributi pojedine klase) i strukturi SVG elemenata. Moguće je također napisati: rect [class~="different"] {stroke:red; fill:none} što bi selektiralo pravokutnike čija klasa sadržava vrijednost different. Pri tome "." notacija predstavlja isto što i "~=". Slijedi složeniji primjer. <svg width="400" height="250" > <style type="text/css"> <![CDATA[ rect {stroke:black; fill:white} rect.different {stroke:red; stroke-width:4; fill:none} rect.different.again {stroke:none; fill:white} rect.different.again.encore {stroke:blue; stroke-width:8; fill:none} 36

37 ]]> </style> <rect x="20" y="20" width="100" height="100"/> <rect class="different" x="20" y="140" width="100" height="100"/> <rect class="different again" x="140" y="20" width="100" height="100"/> <rect class="different again encore" x="140" y="140" width="100" height="100" /> </svg> Na slici 12. je prikazan rezultat. Slika 12. Selekcija klasa 37

38 3.10. Grupiranje elemenata u SVG-u Često postoji potreba za grupiranjem grafičkih elemenata. Jedan razlog je ako skup elemenata dijeli isti atribut. Međutim, najčešća potreba je kod definiranja novog koordinatnog sustava za skup elemenata primjenom transformacija na svaku koordinatu specificiranu u skupu elemenata. Grupiranje se u SVG postiže korištenjem elementa g. Skup elemenata može biti određen kao grupa, njihovim uključivanjem unutar g. Na primjer: <g style="fill:red;stroke:black"> <circle cx="70" cy="100" r="50" /> <rect x="150" y="50" rx="20" ry="20" width="135" height="100" /> <line x1="325" y1="150" x2="375" y2="50" /> <polyline points="50, , , , , , 350" /> <polygon points=" 250, , , , , 284" /> <ellipse cx="400" cy="300" rx="72" ry="50" /> </g> Element g može imati bilo koji od atributa ili značajki stila, definirane samo za njega, koje su primjenjive na druge grafičke elemente. U primjeru iznad, svi osnovni oblici će biti nacrtani s crvenom unutrašnjosti i crnom granicom Transformacije koordinata Atribut transform primijenjen u g elementu, definira transformaciju nad svim koordinatama u grupi. Na primjer: 38

39 <g transform="translate(100,0)"> <circle cx="70" cy="100" r="50" /> <rect x="150" y="50" rx="20" ry="20" width="135" height="100" /> </g> Umjesto kruga nacrtanog sa centrom na točci (70,100), sada će centar biti pomaknut na koordinate (170,100). Pravokutnik će imati gornji lijevi kut na (250,50) umjesto (150,50). Dakle, korisna metoda definiranja kompozicije nad nekoliko grafičkih objekata određuje svaki objekt kao grupu korištenjem odgovarajućeg koordiniranog sustava i potom upotrebljava transformacije primijenjene nad grupom da bi dobili grafički prikaz kao cjelinu. Grupe mogu biti ugniježđene do bilo koje dubine i preobrazbe se primjenjuju na svaku od njih. Moguće preobrazbe su: Transformacija Značenje Parametri translate translacija koordinata x i y određuju vrijednost translacije scale množenje koordinata sx i sy, množi x i y sa s rotate rotacija oko točke kut, x i y skewx pogreška po x-osi kut u stupnjevima, x=y*tan(angle) skewy pogeška po y-osi kut u stupnjevima, y=x*tan(angle) Tablica 2. Transformacije u SVG-u Atribut transform može se sastojati od niza individualnih transformacija u kojem slučaju se one izvode s lijeva na desno. Isti efekt se može postići na čitljiviji način ugnježđivanjem nekoliko g elemenata, svakog s jednom transformacijom Ispunjavanje površina Glavne značajke popunjavanja, koje mogu biti određene ili kao atributi ili kao značajke osnovnih SVG elemenata, putova, teksta ili grupe su: fill - metoda ispunjavanja područja sa nekom bojom. Vrijednost none definira da područje nije ispunjeno. 39

40 opacitiy - govori o prozirnosti boje područja. fill-rule - koristi se za složene putove, definicija kako će biti ispunjeno područje. Primjer koji koristi sve tri mogućnosti: <path style="fill:red;opacity:0.5;fill-rule:evenodd" d="m10,20h100v50h-80v-70h-20v20z" /> Boje se koriste za različite operacije u SVG-u, uključujući ispunjavanje i naglašavanje. Boja može biti definirana na dva načina: ime boje (red, green) numerički, RGB specifikacijom <rect width="10" height="10" style="fill:coral" /> <rect width="10" height="10" style="fill:rgb(255,127,80)" /> <rect width="10" height="10" style="fill:#f75" /> <rect width="10" height="10" style="fill:#ff7f50" /> Ispunjavanje područja definiranog nekim putem, osnovnim grafičkim elementima ili tekstom, zahtijeva jasnu definiciju što je unutar granica, a što je vani. Za jednostavne putove koji se ne sijeku, unutrašnjost je očita. Međutim, za put koji križa sebe ili se sastoji od nekoliko segmenata, definicija unutrašnjosti i vanjštine je manje jasna. SVG definira dvije metode kojima se može definirati unutrašnjost: evenodd: broji se broj sječenja linije između točke i beskonačnosti, ako broj je neparan, točka je unutar područja i trebati biti ispunjena. nonzero: koliko puta element puta prolazi oko točke. Ako je broj različit od nule, točka je unutra. Slika 13. pokazuje različite rezultate koji se dobiju uporabom gornjih metoda. 40

41 Slika 13. Pravila ispunjavanja Naglašavanje linija Dio značajki kojima se postiže naglašavanje linija: stroke: metoda prikazivanja obrisa sa bojom. Moguće vrijednosti su iste kao i za fill značajku. stroke-width: definira širinu obrisa. stroke-dashaarray: definira stil linije (dotted, solid, dashed). stroke-dashoffset: za isprekidanu liniju; pokazuje gdje bi uzorak trebao početi. stroke-linecap: definira način prikazivanja kraja linije. stroke-linejoin: definira kako će biti prikazan spoj između dvije linije. Načini naglašavanja obrisa su prikazani na slici

42 Slika 14. Značajke naglašavanja obrisa Interakcija u SVG-u Kada se Web dokument (neki od jezika baziranih na XML-u) učitava u preglednik, dokument se parsira i stvara se unutarnja struktura koja se koristi za prikazivanje načina na koji je dokument kreiran. Za manipulaciju tim strukturama se koristi DOM (eng. Document Object Model) sučelje. DOM dozvoljava upotrebu skriptnih jezika čime se postiže dinamička modifikacija Web dokumenata unutar preglednika. Modifikacije dokumenta pomoću DOM-a se obično okidaju na događaj u pregledniku, npr. pomicanjem miša iznad određenog dijela dokumenta, klikom iznad nekog poligona i sl. U slijedećem primjeru su ilustrirane osnovne ideje. <svg width="500" height = "500"> <script language="javascript" type="text/javascript"> <![CDATA[ function onmouseover(evt) { var elem = evt.target; var style = elem.getstyle(); 42

43 style.setproperty("fill-opacity", 0.5); } function onmouseout(evt) { var elem = evt.target; var style = elem.getstyle(); style.setproperty("fill-opacity", 1.0); } ]]></script> <rect x="20" y="20" width="250" height="250" style="fill:red; stroke:none" onmouseover="onmouseover(evt)" onmouseout="onmouseout(evt)" /> <rect x="210" y="210" width="250" height="250" style="fill:green; stroke:none" onmouseover="onmouseover(evt)" onmouseout="onmouseout(evt)" /> </svg> Interaktivnost dokumenta je prikazana na slikama 15. i 16. Slika 15. Interaktivnost SVG dokumenta (1) Slika 16. Interaktivnost SVG dokumenta (2) Atributi onmouseover i onmouseout specificiraju imena skriptnih funkcija koje se pozivaju kad se pripadni događaj i dogodi. Određivanje elementa u stablu DOM-a se 43

44 određuje pomoću parametara koji se šalju funkciji. Funkcija onmouseover mijenja značajku fill-opacity (prozirnost) elementa na vrijednost 0.5. Ova funkcija se poziva kada se mišem dođe iznad područja prekrivenog pravokutnikom. Funkcija onmouseout vraća prozirnost na inicijalnu vrijednost (1.0). Ova funkcija se poziva kada se miš pomakne izvan područja pravokutnika. Neki od događaja na koje se obavlja okidanje su: onclick onactivate onmousedown onmouseover onmousemove onmouseout onload Događaj onactivate je širi pojam od događaja onclick i djeluje i za ostale uređaje, a ne samo za miš. Element onload je osnovna metoda za aktiviranje skripte kada se učitava SVG dokument. U SVG-u se mogu koristiti razni skriptni jezici (EcmaScript, JavaScript). Za ovaj primjer je odabran JavaScript. Definiranje skripte unutar SVG dokumenta se ostvaruje sljedećom shemom. <script language="javascript" type="text/javascript"> <![CDATA[... funkcije definirane u skripti... ]]></script> Uključivanje vanjskog JavaScript dokumenta u SVG dokument se ostvaruje naredbom <script xlink:href="file_name" />. 44

45 U tablici 3. se nalaze funkcije, varijable i metode koje su definirane i mogu se koristiti u oblikovanju skripte. Ime Tip Parametri Opis Primjer evt ownerdocument getownerdocument( ) target gettarget() getelementbyid("rec tangle") getattribute("id") setattribute("id",vrije dnost) varijabla nema funkcija nema funkcija nema funkcija ID objekta funkcija ime atributa metoda ime atributa i vrijednost NS setattributens("..."," xlink:href",vrijednost) metoda referenca, atribut i vrijednost Style getstyle() setproperty("fill",vrije dnost) getpropertyvalue("fill ") varijabla na koju se SVG fokusira vraća SVG dokument vraća objekt na koji se fokusira vraća objekt sa ID kao parametrom vraća vrijednost atributa pridjeljuje vrijednost atributu pridjeljuje vrijednost atributu (za NS prostor oznaka) <svg width="400" height="200" onload="funkcija(evt)"> svgdoc = evt.target.ownerdocument() objekt = evt.target objekt=svgdoc.getelementbyid("rectangle") širina=objekt.getattribute("width") objekt.setattribute("width",300) objekt.setattributens("...","xlink:href", truc.htm) funkcija nema vraća stil aspect=objekt.style metoda ime značajke i vrijednost funkcija ime značajke pridjeljuje vrijednost značajki vraća vrijednost značajke objekt.getstyle().setproperty("fill","red") boja=objet.getstyle().getpropertyvalue ("fill") attributes funkcija nema vraća atribute objekta kao imenovanu listu čvorova att=objekt.attributes att.length daje broj atributa att.item(i) odnosi se na i-ti atribut att.item(i).name daje njegovo ime att.item(i).value daje njegovu vrijednost createelement("rect" ) appendchild(novi) replacechild(novi,sta ri) insertbefore(novi,po zicija) funkcija tip objekta kreira objekt Novi=svgdoc.createElement("rect") metoda ime objekta metoda objekti metoda objekti umeće objekt kao dijete čvora zamjenjuje stari čvor s novim umeće novi objekt ispred cvor.appendchild(novi) cvor.replacechild(novi,stari) cvor.insertbefore(novi,stari) 45

46 pozicije createtextnode("tra la la") setdata("tra la la") firstchild getfirstchild() funkcija tekst metoda tekst funkcija nema addeventlistener ("mousemove",funkci metoda ja,false) događaj, funkcija false removechild(dijete) metoda ime objekta clonenode(true) getcharcode() String.fromCharCod e (key) clientx getclientx() clienty getclienty() screenx getscreenx() screeny getscreeny() funkcija false ili true funkcija nema funkcija kod funkcija nema funkcija nema funkcija nema funkcija nema kreira čvor s tekstom pridjeljuje tekst djetetu tekstualnog čvora vraća prvo dijete čvora kreira događaj za objekt briše imenovano dijete čvora tekst=svgdoc.createtextnode("tra la la"); objekt.setdata("tra la la") tekst=objekt.firstchild objekt.addeventlistener ("mousemove",alert,false) cvor.removechild(dijete) kopira objekt i svu njegovu novi=objekt.clonenode(true) djecu ako je true vraća kod pritisnute tipke tipka=evt.getcharcode() vraća znakovnu vrijednost = String.fromCharCode(key) vrijednost ključa vraća x vrijednost x_mouse=evt.clientx pokazivača u SVG-u vraća y vrijednost y_mouse=evt.clienty SVG-u vraća x pokazivača u x_mouse=evt.screenx HTML-u vraća y pokazivača y_mouse=evt.screeny HTML childnodes getchilnodes() funkcija nema vraća djecu čvora u listi grupa=node.childnodes getelementsbytagn ame(tag) length getlenght() funkcija tip objekta "*" džoker funkcija nema item(n) funkcija integer >=0 vraća djecu po tipu u listi vraća broj objekata liste čvorova vraća ime objekta lista grupa=node.getelementsbytagname('rect' ) broj=grupa.lenght objekt=grupa.item(1) nodetype funkcija nema vraća tip čvora i=objekt.nodetype nodename funkcija nema vraća ime čvora ima=objekt.nodename 46

47 getcharnumatpositi on(d) funkcija SVGPoint getextentofchar(i) funkcija integer >=0 getstartpositionofc har(i) getendpositionofch ar(i) funkcija integer>=0 getnumberofchars() funkcija nema getcomputedtextle ngth() selectsubstring(i,j) getbbox() funkcija nema metoda funkcija nema indeks starta i duljina stringa vraća kod znaka na poziciji vraća pravokutnik oko slova kao SVGRect objekt vraća donju lijevu koordinatu slova kao SVGPoint vraća broj slova vraća broj točaka koje trebaju da bi se prikazao string selektira podniz vraća granice oko objekta kao SVGRect object kod=objekt.getcharnumatposition(d) trace=objekt.getextentofchar(5); trace.x, trace.y, trace.width i trace.height p=objekt.getstartpositionofchar(1); p.x i p.y su koordinate dužina=objekt.getnumberofchars() zauzmi=objekt.getcomputedtextlength() objekt.selectsubstring(0,2) trace=objekt.getbbox; trace.x, trace.y, trace.width i trace.height getctm() funkcija nema vraća matricu transformacija matrica=objekt.getctm() Inverse multiply(matrica2) funkcija nema funkcija matrica currentscale broj Nema vraća inverz matrice množi sa matricom2 vraća faktor uvećanja inverzna_matrica=matrice.inverse rezultat=matrica1.multiply(matrica2) currentscale=2 Tablica 3. Funkcije, metode i varijable JavaScript-a Dublji prikaz i ostale mogućnosti SVG-a (animacije, uporabe filtara i dr.) se mogu naći na Adobeovim stranicama. 47

48 4.Upotreba XSLT-a u vizualizaciji GML podataka Glavna tema ovog poglavlja je opis načina na koje se GML podaci mogu vizualizirati transformacijom u SVG format, odnosno, uloga XSLT-a (eng. Extensible Stylesheet Language Transfomation) u tom procesu. Budući da XML ne upotrebljava unaprijed definirane oznake, generički XML procesor koji čita XML dokument nema pojma što je autor mislio pri dokumentiranju i kako je to želio predstaviti. Zato mora postojati dodatni dokument koji pruža informaciju kako to predstaviti, a to je XSL. XSL je specifikacija razvijena od strane World Wide Web konzorcija (W3C) za formatiranje XML-a koja se dokumentira na uobičajeni način. Specifikacija definira da je XSL jezik kojim se izražava lista pravila (stylesheet). Liste pravila se koriste za opisivanje načina kako bi sadržaj danog strukturiranog dokumenta trebati biti predstavljen. XSL se sastoji od triju sastavnih jezika koji su opisana W3C standardom. To su XSLT, XSL Formatting Objects (XSL-FO) i XML Path Language (Xpath). XSLT i XSL-FO mogu međusobno neovisno funkcionirati. XSLT je najvažniji dio XSL standarda. On sadrži elemente koji definiraju pravila kako se jedan XML dokument pretvara u drugi XML, HTML ili tekstualni dokument. Ako je transformirani dokument u XML-u, može upotrijebiti tagove i DTD od izvornog dokumenta ili može upotrijebiti sasvim drugačiji skup elemenata. XSLT može dodati nove elemente u izlazni dokument, ukloniti postojeće elemente, preurediti sortiranje elemenata i odlučivati kroz odgovarajuće liste pravila. Transformacija se može izvršiti na tri glavna načina. Prvo, XML dokument i pripadajuća lista pravila može biti dan Web pregledniku, koji zatim transformira dokument kako je specificirano listom pravila. Druga mogućnost je da Web server primijeni XSLT listu pravila na XML dokument i pošalje transformirani dokument korisniku. Treća mogućnost je da XSLT procesor transformira izvorni XML dokument u navedeni format po listi pravila, prije nego što je dokument stavljen na server. Svaki 48

49 od ovih triju pristupa upotrebljava drugačiju programsku podršku, iako svi upotrebljavaju isti XML dokument i XSLT listu pravila. Pri tome se preferira treći pristup kao najprikladniji za ostvarivanje željenih ciljeva XSL-FO i XPath XSL-FO je XML aplikacija koja opisuje kako će dokument izgledati kada ga bude čitao korisnik. To je omogućeno formatiranjem pomoću formatirajućih objekata i formatirajućih svojstava pridijeljenih svakom objektu. Xpath je jezik za referenciranje specifičnih dijelova XML-a dokumentira, bitan za slučajeve gdje je potrebno odrediti točan dio dokumenta koji će biti transformiran XSLT-om. Xpath ima proširivu sintaksu, temeljenu na znakovnim nizovima, koja opisuje put između pojedinih dijelova jednog ili više dokumenata pomoću path/file sintakse Stabla i čvorovi Stablo je podatkovna struktura sastavljena od povezanih čvorova čiji početni čvor se naziva korijen. Zato je svaki pravilno formiran (well-formed) XML dokument stablo. Korijen je spojen sa svojim čvorovima djecom, od kojih je svaki spojen sa nula ili više vlastitih čvorova djece. Najkorisnija značajka stabla je da svaki čvor i njegova djeca također formira novo stablo. Tako je stablo zapravo hijerarhijska struktura stabala u kojoj je svako stablo izgrađeno od manjih stabala. XSLT modelira XML dokument kao stablo koje sadržava sedam vrsta čvorova: korijen, elemente, tekst, svojstva, oznake imena, procesne instrukcije i komentare. XSLT lista pravila je u osnovi skup pravila za transformaciju XML dokumenata. U slučaju vizualizacije podataka, uloga XSLT-a je da transformira XML sadržaj 49

50 podataka u format pogodan za grafičko prikazivanje, kao na primjer HTML/XHTML, SVG, XSL-FO, tekst ili bilo koji drugi strukturirani format. Međutim, tradicionalni XSLT-ovi kodiraju informaciju o izgledu teksta i rasporedu sadržaja. Ali, u kontekstu GIS-a, GML podaci temeljeni na XML-u moraju biti predstavljeni u grafičkom formatu SVG-u koji je XML temeljen jezik za opisivanje 2D grafike XSLT struktura i elementi XSLT lista pravila se sastoji od skupa pravila koja se nazivaju predložak (template). Predložak sadržava skup pravila koja se dijele na dva dijela; uzorak koji se uspoređuje sa čvorovima u izvornom stablu i sačinjava dio rezultata izlaznog stabla. To dopušta listi pravila da bude primjenljiva na široku klasu dokumenata koji imaju slične izvorne strukture stabla. Kao i bilo koji drugi XML dokument, XSLT lista pravila počinje s XML deklaracijom. Sljedeća linija je ili element <xsl:stylesheet> ili element <xsl:transform> koji su sinonimi i definiraju početak liste pravila i korijenski element. U njima mora biti deklarirana verzija XSLT-a na kojoj se lista pravila bazira. XSLT atribut xmlns definira prostor oznaka imenom: xmlns:xsl=" (dogovorno se xsl prefiks koristi za označavanje XSLT prostora oznaka). Osnovna struktura liste pravile je definirana: <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <!- predlošci idu ovdje-- > </xsl:stylesheet> 50

51 4.4. Predložak Predložak pravila je definiran elementom <xsl:template> i najvažniji je dio XSLT liste pravila. Svaki <xsl:template> element sadržava pravila koja se primjenjuju kada se navedeni čvor pronađe u izvornom dokumentu. Ova pravila opisuju doprinose pojedinih pronađenih čvorova koji se dodaju izlaznom dokumentu. Pravila mogu sadržavati i tekst koji će se pojaviti doslovno u izlaznom dokumentu i XSLT naredbe koje kopiraju dijelove ulaznog XML dokumenta u rezultat. Sljedeći primjer predloška transformira čvorove FeautreMember u ulaznom dokumentu, dodaje sadržaj od čvorova djece koji se zovu identification i type i stvara <g> element u izlaznom dokumentu s atributima id i class. Također, upotrebljava drugi predložak za procesiranje čvora Polygon. <xsl:template match="//featuremember"> <xsl:variable name="id" select="identification"/> <xsl:variable name="tip_cvora" select="type"/> <xsl:element name="g"> <xsl:attribute name="id"> <xsl:value-of select="$id"/> </xsl:attribute> <xsl:attribute name="class"> <xsl:value-of select="$tip_cvora"/> </xsl:attribute> <xsl:apply-templates select="..//gml:polygon"/> </xsl:element> </xsl:template> Podudarnost je opisana atributom match koji specificira na koji se čvor ulaznog dokumenta odnosi predložak. Također se njime može definirati predložak za cijeli XML dokument (s match="/" se definira cijeli dokument, ".." označava roditeljski 51

52 čvor, a "." trenutni). Kada XSLT procesor čita ulazni dokument, korijen je prvi čvor koji nađe i tada se izvršavaju pravila koja su definirana za korijenski element. Da bi se doseglo dalje od korijena, koristi se element <xsl:apply-template>. Kod uključivanja ovog elementa, parser će uspoređivati svaki čvor dijete od trenutnog čvora s predlošcima u listi pravila, i ako je pronađena podudarnost, izvršiti predložak za svaki takav pronađeni čvor. Atribut select se označavaju djeca koja će biti izabrana. Atributom match se može odrediti podudarnost čvorova po imenu elementa, čvorovima djece, roditeljima, atributima, ID-u elemenata, komentarima, tekstu, kao i primjenom jednostavnih testova na nekima od ovih elemenata Selektiranje čvorova Atribut select se koristi u xsl:apply-template, xsl:value-of, xsl:foreach, xsl:copy-of, xsl:variable, xsl:param i xsl:sort za specificiranje točno određenih čvorova nad kojima se vrši transformacija. Vrijednost ovog atributa je izraz napisan u XPath-u. XPath jezik pruža sredstva identificiranja određenog elementa, grupe elemenata, dijela teksta ili nekog drugog dijela XML dokumenta. XPath pruža nekoliko poveznica koje mogu biti korištene pri odabiru dijelova stabla, odnosno prema kontekstnom čvoru. Inicijalno je kontekstni čvor onaj čvor na koji se odnosi predložak Imenovani predlošci Element <xsl:template> može imati atribut name kojim može biti direktno pozvan, čak i onda kada nije direktno primjenjiv. Takvi predlošci se zovu imenovani predlošci. 52

53 Imenovani predlošci se koriste za ponavljanje liste pravila unutar nekog drugog predloška i omogućuju uključivanje podatka s mjesta od kuda je predložak pozvan. Element <xsl:call-template> se koristi za pozivanje takvog predloška 4.7. Sadržaj izlaza U transformaciji XML dokumenta često je nužno uključiti nove elemente, atribute, procesne naredbe, komentare i sl. u izlazni dokument da bi se dobila željena izlazna struktura. Na primjer, izlaz XSLT liste pravila dizajniran za transformaciju GML sadržaja u SVG, treba udovoljiti SVG specifikaciji. To se postiže odgovarajućim XSL elementima kao na primjer xsl:element, xsl:attribute, xsl:processinginstruction, xsl:comment i xsl:text i atributnim vrijednostima predloška. Atributne vrijednosti kopiraju podatke iz ulaznog dokumenta u atributne vrijednosti na izlazu. Element <xsl:element> umeće novi element u izlazni dokument. Ime ubačenog elementa je dano vrijednošću atributa name, a sadržaj je definiran vrijednošću elementa <xsl:element>. Element <xsl:attribute> definira ime atributa i njegovu vrijednost, i umeće ih u elemente izlaznog dokumenta. Zato se mora pojaviti kao dijete od <xsl:element>. Kada se ista grupa atributa primjenjuje u mnogim različitim elementima, takav skup atributa može biti određen kao element na najvišoj razini stabla pomoću oznake <xsl:attribute-set> i umetnuti gdje god je potrebno sa <xsl:use-attribute-sets>. <xsl:processing-instruction> element stavlja procesnu naredbu u izlazni dokument. Cilj procesne naredbe je specificiran atributom name, a sadržaj <xsl:processing-instruction> elementa postaje sadržaj same procesne naredbe. Elementi <xsl:comment> i <xsl:text> umeću komentare, odnosno tekst u izlazni dokument. 53

54 4.8. Izlazne metode Većina XSLT procesor podržava tri tipa izlaznih metoda: XML, HTML i Text. XSLT procesor se ponaša drukčije, ovisno o tome koja od izlaznih metoda je specificirana. Izlazna metoda je određena elementom najviše razine <xsl:output>. XSLT ne pruža elemente za opisivanje unutarnjeg DTD podskupa za izlazni dokument. Međutim, može se pomoću atributa doctype-system i doctypepublic elementa <xsl:output> uključiti DOCTYPE deklaracija koja ukazuje na vanjski DTD. Atributom indent elementa <xsl:output>, koji ima dvije vrijednosti yes i no, se ostvaruje umetanje praznih mjesta u izlazni dokument, radi bolje čitljivosti Umetanje lista pravila XSLT lista pravila se može direktno umetnuti u XML dokument. U tom slučaju <xsl:stylesheet> element se mora pojaviti kao dijete elementa kojim se definira XSLT dokumenta i ima ID atribut koji mu daje jedinstveno ime. Taj atribut se pojavljuje kao vrijednost atributa href u elementu XML-stylesheet označen pomoću znaka #: <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xml" href="#mystyle"?> <Root_Element> <xsl:stylesheet version="1.0" xmlns:xsl=" id="mystyle"> 54

55 <xsl:template match="/"> <! Sadržaj predloška ide ovdje--> </xsl:template> <! Drugi predlošci idu ovdje--> <xsl:template match="xsl:stylesheet"/> </xsl:stylesheet> <! ostatak podataka ide ovdje--> </Root_Element> Stvaranje XSLT liste pravila XSLT lista pravila mora biti pravilno oblikovan XML dokument i bi treba udovoljiti XSLT specifikaciji koja opisuje je dopuštenu sintaksu. Sadržaj lista pravila u potpunosti ovisi o ulaznoj strukturi dokumenta i zahtijevanoj izlaznoj strukturi. Sljedeće smjernice se koriste u kreiranju XSLT liste pravila čiji je cilj transformacija GML dokumenta u SVG. 1. XML deklaracija. <?xml version="1.0" encoding="utf-8"?> 2. Korijenski element liste pravila uključuje verziju i prostor oznaka (uključujući sve prostore nađene ulaznom dokumentu). <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:gml=" xmlns:xlink=" 3. Deklariranje elemenata najviše razine. 55

56 <xsl:output method="xml" encoding="utf-8" standalone="no" indent="yes" omit-xml-declaration="no" mediatype="text/xml" doctype-public="-//w3c//dtd SVG //EN" doctype-system=" /DTD/svg-10.dtd"/> Ova lista pravila proizvodi sljedeće deklaracije u izlaznom dokumentu. <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG //EN" " 10.dtd"> 4. Predložak koji kreće od korijenski element ulaznog dokumenta. Ovo može uključivati mnoge izračune da bi se odredile vrijednosti atributa za korijenski element izlaznog dokumenta i drugih predložaka u listi pravila. <xsl:template match= "/"> 5. Procesne instrukcije trebaju biti uključene ovdje. To se odnosi na vanjske liste pravila. <xsl:processing-instruction name="xml-stylesheet"> href="style.css" type="text/css" </xsl:processing-instruction> To će dati u izlaznom dokumentu: <?xml-stylesheet href="style.css" type="text/css"?> 6. Stvoriti korijen element i povezati atribute u izlaznom dokumentu. <xsl:element name="svg"> <xsl:attribute name="xml:space">preserve</xsl:attribute> <xsl:attribute name="width">100%</xsl:attribute> Primjer za izlaz ovog dijela liste pravila je: 56

57 <svg xml:space="preserve" width="100%" height="100%" viewbox=" " id="svgall" onmousemove=" showcoords(evt)" onzoom="resetcoords()" onscroll="resetcoords()" onload="startmap(evt)"> 7. Stvoriti elemente najviše razine u izlaznom dokumentu. <xsl:element name="script"> <xsl:attribute name="xlink:href">external.js</xsl:attribute> <xsl:attribute name="type">text/javascript</xsl:attribute> </xsl:element> Time smo kreirali element <script> u izlaznom dokumentu koji se referencira na vanjskom Display.js JavaScript dokument. <script xlink:href="display_data.js" type="text/javascript"/> 8. Kreiranje čvorova djece u izlaznom dokumentu, u skladu sa hijerarhijom u ulaznom dokumentu. <xsl:apply-templates select="//feature"/> <xsl:apply-templates select="//featuremember"/> Primijeniti ostale predloške i imenovane predloške. Na primjer, u vizualizaciji geografskih podataka, mreže linija granica, teksta i drugih efekata koji će napraviti prezentaciju sadržajnijom. Sljedeći fragment poziva predložak kojim se crtaju granice. <xsl:call-template name="grids"> <xsl:with-parem name="max_x" select="$max_x"/> </xsl:call-template> 57

58 10. Zatvoriti korijenski element u izlaznom dokumentu. </xsl:element> 11. Zatvoriti listu pravila koja se odnose na korijenski element ulaznog dokumenta. </xsl:template> 12. Deklarirati predloške koje selektiraju čvorove djecu. Ovo su stvarni predlošci koji utječu na selektirani čvor spominjan u osmoj točci. <xsl:template match="feature"> <! lista pravila ide ovdje--> </xsl:template> <xsl:template match="featuremember "> <! lista pravila ide ovdje--> </xsl:template> 13. Deklarirati imenovane predloške. <xsl:template name="grids"> <! lista pravil ide ovdje--> </xsl:template> 14. Zatvoriti korijenski element liste pravila. </xsl:stylesheet> XSLT Procesori Da bi se izvele transformacije definirane u XSLT listi pravila, mora postojati drugi program nazvan XSLT procesor, zato što su i izvorni XML dokument i lista pravila obični tekstualni dokumenti koje treba povezati. XSLT procesor uzima kao ulaz XML dokument i listu transformacija XML dokumenta. Procesor u transformaciji prolazi 58

59 kroz stablo strukture XML dokumenta, promatrajući svaki čvor redom, i uspoređuje ga s uvjetom svakog predloška definiranog u listi pravila. Kada procesor nađe čvor koji se poklapa s uvjetom predloška, izvršava pravila zapisana u predlošku. Postoje mnogi XSLT procesori koji su prilagođeni XSLT 1.0 specifikaciji, kao što su i Instant SAXON, ixslt, XML Spy, a u ovom radu je korišten Msxsl (opisan nešto kasnije) Zaključak XML sadržaj može biti predstavljen na više načina. XSLT je W3C specifikacija za formatiranje XML dokumenta. XSLT lista pravila sastoji se od pravila transformacija, definiranih u predlošcima, a transformacija se postiže uporabom XSLT procesora. GML podaci mogu se pretvarati u SVG format korištenjem ove metode. Struktura XSLT liste pravila potpuno ovisi o strukturi ulaznog i izlaznog dokumenta. 59

60 5.0. Primjer vizualizacije GML-a Za primjer vizualizacije GML podataka uzeta je razdjelna električna mreža čije značajke su opisane u [19]. GML dokument (mreza.gml) je napisan u jednom od alata pogodnih za pisanje podataka temeljenih na XML standardu. Potom je napisan pripadajući XSLT (transf.xsl) kojim će se taj GML dokument transformirati u SVG koji će se moći grafički predočiti u MS InternetExplorer pregledniku. Za povezivanje GML dokumenta i pripadajućeg XSLT-a služi alat msxsl koji će biti opisan u poglavlju 5.2. Listing koda za dokument mreža.gml se nalazi u dodatku C, dok se listing koda za datoteku transf.xsl nalazi u dodatku D XMLNotepad Za pisanje GML dokumenta mreža.gml korišten je program XMLNotepad (slika 17). To je program koji olakšava pisanje XML temeljenih aplikacija i provodi validaciju. U lijevom polju je prikazana struktura dokumenta, dok se u desnom nalaze vrijednosti pojedinih svojstava i njihovih značajki. Unošenje se obavlja jednostavnim klikom iznad polja, dok se imena značajki i svojstava (i njihovo dodavanje ili brisanje) mogu promijeniti klikom iznad samog imena. 60

61 Slika 17. XML Notepad Ukoliko GML dokument nije valjan (well-formed), što znači da nije napisan u skladu s pripadajućim DTD-ovima (gmlfeature.dtd i gmlgeometry.dtd) koji se nalaze u istoj datoteci, XMLNotepad će pri ponovnom učitavanju tog GML dokumenta javiti grešku (prikazano na slici 18). Listing gmlfeature.dtd se nalazi u dodatku A, dok se listing gmlgeometry.dtd nalazi u dodatku B. Slika 18. Greška koju javlja XMLNotepad ukoliko izvorni kod nije valjan 61

62 5.2. Msxsl Msxsl.exe je alat koji se pokreće iz komandne linije datoteke u kojoj su smješteni GML dokument i njegov pripadni XSLT i primjenjuje transformaciju zapisanu u XSLTu na GML dokument koristeći Microsoft XSL processor. Unutar njega se nalazi Microsoft XML Parser 4.0 (msxml4.dll) koji izvodi transformaciju. Ukoliko navedemo opciju o (prikazano na slici 19) dobiveni izlaz će se zapisivati u izlaznu datoteku. Komandna linija izgleda ovako: Slika 19. Msxsl komandni prozor E:\Martin\DIPLOMSKI>msxsl source stylesheet [options] [param=value...] [xmlns:prefix=uri...] Najbitnije opcije su: - o filename ispisuje izlaz u imenovanu datoteku - v provjerava da li je izvorni dokument valjano pisan - t daje informaciju o vemenu učitavanja i vremenu transformacije - koristi se kad se bilo izvorni dokumnet, bilo stylesheet unose sa stdin ulaza. 62

63 Dakle, izvršenjem naredbe msxsl mreza.gml transf.xsl o proba31.svg dobili smo izlaznu datoteku u formatu SVG (nebitno je da li napišemo ekstenziju svg ili svgz jer se transformacija iz GML formata u SVG format obavlja pomoću transf.xsl, a ekstenzija izlazne datoteke je bitna samo za InternetExplorer jer on za formate.svg i.svgz po definiciji pokreće SvgViewer koji je ugrađen u njega Rezultat transformacije prikazan u SVG obliku i vizualiziran pomoću MS IE Izlazna datoteka proba31.svg će izgledati kao na slici 20. Slika 20. Izlazna datoteka proba31.svg 63

64 Karta koju smo dobili predstavlja grafički prikaz dijela razdjelne sheme. Tamno plavi kružići predstavjaju trafo-stanice čija imena su naznačena desno od svake točke. Narančastom bojom su prikazani niskonaponski vodovi, a crvenom visokonaponski. SVG dokument ima neka svojstva interaktivnosti koja su ugrađena u njega pomoću XSLT-a, a ostvarena jezikom JavaScript. Konkretno, pomicanjem miša preko mreže (i to samo nacrtanog dijela; pozadina je neosjetljiva jer je prazna) u dnu slike će se pojaviti trenutne koordinate (ili zadnje koordinate mreže na kojima je miš bio, ako se trenutno nalazi na praznom području). To je prikazano na slici 21. Slika 21. Prikazivanje koordinata 64

65 Isto tako, ugrađen je i atribut onmouseover koji farba dotični element u zeleno kad se mišem dođe iznad njega (dakle da znamo što ćemo selektirati). Originalna boja se vraća kad se mišem maknemo izvan dotičnog elementa (pomoću atributa onmouseout). Kada se klikne iznad selektiranog objekta dobit će se informacije o njemu (pomoću atributa onclick). Atributi koji su vezani uz trafo-stanicu mogu se dobiti klikom iznad kružića koji predstavlja trafo-stanicu. To je prikazano na slici 22. Slika 22. Ispisivanje atributa i značajki elementa trafo-stanica 65

66 Zanimljivo je pogledati prva tri atributa koji se nalaze u listi značajki svojstava trafostanica. Prvi je atribut ID (identifikacijska oznaka) koji ima vrijednost 123. Ako se pogleda karta, vidjet će se da je zelen kružić koji označava trafo-stanicu 123. atributi cx i cy predstavljaju središte kružića kojim je predstavljena trafo-stanica i imaju vrijednosti cx=326 i cy=383. Te vrijednosti se poklapaju s vrijednostima koordinata koje se nalaze u dnu zaslona, što je i logično jer klikom miša iznad dotične točke taj prozor prestaje biti aktivan (aktivan postaje prozor Alert u kojem se nalaze vrijednosti značajki) pa prema tome u polju koordinata ostaju zapisane zadnje vrijednosti, a to su upravo koordinate selektirane točke. Time je dokazana i ispravnost ugrađene funkcije za određivanje koordinata meže. Na slici 23. se može vidjeti ispis značajki vezanih uz svojstvo vod. Slika 23. Ispisivanje atributa i značajki elementa vod 66

67 Vidljivo je na mapi da je selektiran vod koji spaja TS123 i TS124 jer je taj vod označen zelenom bojom. U prozoru sa informacijama su navedene tehničke značajke tog voda. Još jedno bitno svojstvo SVG-a je da se tekst može selektirati, pretraživati (odnosno, tekst ostaje tekst). Pretraživanje unutar SVG dokumenta prikazano je na slici 24. Traženi pojam TS128 SVG je našao i selektirao. Slika 24. Selektiranje teksta 67

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family

More information

VRIJEDNOSTI ATRIBUTA

VRIJEDNOSTI ATRIBUTA VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not

More information

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv Mašinska vizija Dr Nenad Jovičić 2017. tnt.etf.rs/~mv Linearne 2D geometrijske transformacije 2D geometrijske transformacije Pretpostavka: Objekti u 2D prostoru se sastoje iz tačaka i linija. Svaka tačka

More information

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje

More information

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete

More information

JavaScript i HTML DOM

JavaScript i HTML DOM 4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.

More information

PREDMET. Osnove Java Programiranja. Čas JAVADOC

PREDMET. Osnove Java Programiranja. Čas JAVADOC PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,

More information

PROGRAMIRANJE. Amir Hajdar

PROGRAMIRANJE. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u

More information

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje WEB programiranje HTML & CSS Autor/i: Juraj Benić 2018 1. Zadatak Kreirati stranicu kojoj će naslov biti Zadatak 1. i veličina teksta 20px te staviti

More information

CSS

CSS http://www.csszengarden.com/ CSS CSS CSS - Cascading Style Sheets Stilovi određuju kako ispisati HTML dokumenta Obično se pohranjuju u listove stila (style sheets) Dodani su HTML verziji 4.0 Vanjski list

More information

VB komande. Programiranje 1

VB komande. Programiranje 1 VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj

More information

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

More information

Sberbank Business Online na Mozilla FireFox

Sberbank Business Online na Mozilla FireFox Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI

More information

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133 Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost

More information

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010 Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa

More information

<A rel="stylesheet" B="mystylesheet.css" C="text/css" />

<A rel=stylesheet B=mystylesheet.css C=text/css /> 1 od 9 9.4.2013 7:18 EFOS_kol1_2011 - RJEŠENJA 16.4.2011. Uključivanje vanjske mystylesheet.css datoteke sa određenim stilovima, postiže se zadavanjem naredbe unutar HTML koda, koja izgleda ovako:

More information

Lab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) CSS3

Lab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) CSS3 Lab. vježba 6 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić) CSS3 P R O G R A M I R A N J E Z A I N T E R N E T Općenito Posljednja verzija Cascading Style Sheetsa, verzija

More information

Izrada VI laboratorijske vježbe

Izrada VI laboratorijske vježbe Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box

More information

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()

More information

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB 10 th International Scientific Conference on Production Engineering DEVELOPMENT AND MODERNIZATION OF PRODUCTION KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB

More information

Uputstvo za korišćenje logrotate funkcije

Uputstvo za korišćenje logrotate funkcije Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen

More information

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak...

Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike

More information

VDSL modem Zyxel VMG1312-B10A/B30A

VDSL modem Zyxel VMG1312-B10A/B30A VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,

More information

Vežbe - XII nedelja PHP Doc

Vežbe - XII nedelja PHP Doc Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog

More information

Uputa za instaliranje programske potpore za operativni sustav WINDOWS

Uputa za instaliranje programske potpore za operativni sustav WINDOWS ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE

More information

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,

Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016

More information

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR. SVG format datoteke. Filip Sakač. Za predmet: Računalna forenzika

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR. SVG format datoteke. Filip Sakač. Za predmet: Računalna forenzika SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR SVG format datoteke Filip Sakač Za predmet: Računalna forenzika Zagreb, siječanj, 2017. Sadržaj Sadržaj... 2 Uvod... 3 Format datoteke...

More information

Upute za postavljanje Outlook Expressa

Upute za postavljanje Outlook Expressa Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete

More information

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa

More information

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365

Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365 Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint

More information

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if

More information

Zadatci Small Basic za 7. Razred ( programa)

Zadatci Small Basic za 7. Razred (  programa) Zadatci Small Basic za 7. Razred (www.smallbasic.com-preuzimanje programa) 1. Nacrtaj slijedeći crtež pomoću naredbi u small basic-u. Boje odaberite po svojim željama. GraphicsWindow.Width = 600 Visina

More information

GUI - događaji (Events) i izuzeci. Bojan Tomić

GUI - događaji (Events) i izuzeci. Bojan Tomić GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša

More information

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1 NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija

More information

Uputstvo za podešavanje mail klijenta

Uputstvo za podešavanje mail klijenta Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno

More information

NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad. (16 pt, Bold)

NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad. (16 pt, Bold) Sveučilište u Zagrebu (12 pt, Bold) Ekonomski fakultet (12 pt, Bold) Naziv diplomskog studija (12 pt, Bold) NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad (16 pt, Bold) Ime i prezime studenta/studentice,

More information

Prva recenica. Druga recenica.

Prva recenica. Druga recenica. Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta

More information

Maurizio Tesconi 24 marzo 2015

Maurizio Tesconi 24 marzo 2015 Maurizio Tesconi 24 marzo 2015 Raster graphics images Lossy (jpeg, jpeg2000) Lossless (gif, png, >ff, ) Fixed resolu>on Can be very large Original informa>on is lost Difficult to add metadata Difficult

More information

Besplatni softverski alati

Besplatni softverski alati Sadržaj Besplatni softverski alati GIMP 1 1. 2. 3. 4. 5. Zoltan Geller zoltang@ff.uns.ac.rs 2016 6. Potrebni alati - Kompresovanje fajlova i foldera - Potrebni alati - Dekompresovanje fajlova i foldera

More information

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce)

Geant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) Geant2 - JRA1 Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) 21.11.2007, CUC2007, Rijeka Što je to JRA1? Glavni zadatak JRA1 (Performance

More information

Programiranje Internet aplikacija

Programiranje Internet aplikacija Programiranje Internet aplikacija Čas 8 - HTML 5 Dražen Drašković, Sanja Delčev Neka pravila HTML 5 Nove mogućnosti treba da se zasnivaju na HTML-u, CSS-u, DOM-u i JavaScript-u. Smanjiti potrebu za eksternim

More information

Vjež ba 3-3: Ražvoj ASP.NET MVC 4 Pogleda s Ražor sintaksom

Vjež ba 3-3: Ražvoj ASP.NET MVC 4 Pogleda s Ražor sintaksom Vjež ba 3-3: Ražvoj ASP.NET MVC 4 Pogleda s Ražor sintaksom U ovoj vježbi trebate dodati sljedeće view-ove u OnlineVrijednosnice aplikaciju: Details view za Graf model objekte ovaj view će prikazivati

More information

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0. Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new

More information

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA SPECIFIKACIJA BAZE PODATAKA ZA PROJEKAT NAZIV_PROJEKTA Veb knjižara - Specifikacija baze podataka 1 10.04.2017. Verzija V 1.0 Datum: 20. mart 2017. Istorija

More information

PKI Applet Desktop Application Uputa za instalaciju programske potpore

PKI Applet Desktop Application Uputa za instalaciju programske potpore 1 SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE POTPORE 3 4. INSTALACIJA PROGRAMSKE POTPORE 3 5. DEINSTALACIJA PROGRAMSKE POTPORE 6 2 1. Uvod PKI

More information

Računarske osnove Interneta (SI3ROI, IR4ROI)

Računarske osnove Interneta (SI3ROI, IR4ROI) Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)

More information

Programske paradigme Funkcionalna paradigma

Programske paradigme Funkcionalna paradigma Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju

More information

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,

Case Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, Case Study Hrvatska pošta: Korisničko iskustvo iz snova Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, 27.12.2018. Sadržaj Hrvatska pošta prije projekta Izazovi projekta Tehnologije korištene

More information

Što ćete naučiti CSS. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML

Što ćete naučiti CSS. Internet općenito HTML CSS XML XHTML Javascript DOM DHTML Što ćete naučiti Internet općenito HTML XML XHTML Javascript DOM DHTML AJAX jquery PHP ASP.NET Ruby On Rails MS Silverlight FLASH, SMIL, SVG... http://www.csszengarden.com/ Kaskadni stilovi Vladati izgledom

More information

FRANJO GALEKOVIĆ SVG GRAFIKE NA WEB-U

FRANJO GALEKOVIĆ SVG GRAFIKE NA WEB-U MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVA FRANJO GALEKOVIĆ SVG GRAFIKE NA WEB-U ZAVRŠNI RAD ČAKOVEC, 2017. MEĐIMURSKO VELEUČILIŠTE U ČAKOVCU STRUČNI STUDIJ RAČUNARSTVA FRANJO GALEKOVIĆ

More information

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :

More information

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme

Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme INFOTEH-JAHORINA Vol. 12, March 2013. Razvoj hibridnih mobilnih aplikacija pomoću PhoneGap platforme Igor Dujlović Elektrotehnički fakultet Banja Luka Banja Luka, BiH dujlovic@gmail.com Zoran Đurić Elektrotehnički

More information

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Obrada izuzetaka Šta je izuzetak? Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi. Prosleđuje izuzetak,

More information

Naredbe za kontrolu toka

Naredbe za kontrolu toka Naredbe za kontrolu toka Naredbe za kontrolu toka Nakon odslušanog bit ćete u stanju: objasniti semantiku naredbi za kontrolu postupaka navesti sintaksu naredbi if, if-else i case u programskom jeziku

More information

Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu

Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Stipe Gorenjak, Kineziološki fakultet Sveučilišta u Zagrebu e-mail: stipe.gorenjak@kif.hr Sponzori Ugasite mobitele. Hvala.

More information

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta String string ili znakovni niz (string) nije niz znakova u Javi su stringovi klase String paketa java.lang!!! Usporedba: char gf = G ; Niz znakova String char [] gf = { G, e, o, d, e, t, s, k, i ; String

More information

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

KLASIFIKACIJA JELENA JOVANOVIĆ.   Web: KLASIFIKACIJA JELENA JOVANOVIĆ Email: jeljov@gmail.com Web: http://jelenajovanovic.net PREGLED PREDAVANJA Šta je klasifikacija? Binarna i više-klasna klasifikacija Algoritmi klasifikacije Mere uspešnosti

More information

PARALELNO PROGRAMIRANJE

PARALELNO PROGRAMIRANJE Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom

More information

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;

More information

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end. NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while

More information

PROGRAMSKA PODRŠKA ZA DVODIMENZIJSKU GRAFIKU NA WEB-U

PROGRAMSKA PODRŠKA ZA DVODIMENZIJSKU GRAFIKU NA WEB-U SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1748 PROGRAMSKA PODRŠKA ZA DVODIMENZIJSKU GRAFIKU NA WEB-U Merlin Rebrović Zagreb, rujan 2008. Posvećujem ovaj rad baki Dragici.

More information

Hipertekst - nastavak. 2. vježbe iz WEB programiranja. Dodavanje slika. Ćelija, redak i ćelija zaglavlja. Struktura tablice 8.3.

Hipertekst - nastavak. 2. vježbe iz WEB programiranja. Dodavanje slika. Ćelija, redak i ćelija zaglavlja. Struktura tablice 8.3. 2. vježbe iz WEB programiranja četvrtak, 8. ožujka 2012. XHTML i CSS 2. dio Hipertekst - nastavak ZADATAK: Kreirajte HTML dokument web_prog.html na kome ćete koristiti link prema web stranici kolegija

More information

CAD u građevinarstvu. v.prof.dr. Samir Lemeš. Predavanja za predmet CAD u građevinarstvu. Politehnički fakultet Univerziteta u Zenici, 2018.

CAD u građevinarstvu. v.prof.dr. Samir Lemeš. Predavanja za predmet CAD u građevinarstvu. Politehnički fakultet Univerziteta u Zenici, 2018. CAD u građevinarstvu v.prof.dr. Samir Lemeš Predavanja za predmet CAD u građevinarstvu Politehnički fakultet Univerziteta u Zenici, 2018. Korisnički interfejsi AutoCAD interfejsi Komandna linija Visual

More information

Pametna komunikacija na Internetu preko REST protokola

Pametna komunikacija na Internetu preko REST protokola Pametna komunikacija na Internetu preko REST protokola Davor Lozić, dr. sc. Alen Šimec Tehničko veleučilište u Zagrebu, Vrbik 8, 10000 Zagreb, Hrvatska, dlozic@tvz.hr, alen@tvz.hr Abstract - REST protokol

More information

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list. Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj

More information

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2 Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 Baze podataka 2 Web: http://www.fpmoz.ba/gkraljevic Pitanja, primjedbe,

More information

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije } 1. FUNKCIJE I STRUKTRUE PROGRAMA Složeni problemi lakše se rašavaju ako se podele na manje celine koje mogu nezavisno da se rešavaju. Rešenje celokupnog složenog problema dobija se kombinovanjem rešenja

More information

An introduction and overview of Geography Markup Language

An introduction and overview of Geography Markup Language An introduction and overview of Geography Markup Language Lecturer: Dr Dan Cornford d.cornford@aston.ac.uk http://wiki.aston.ac.uk/dancornford CS3210, Geographic Information Systems, Aston University,

More information

Hybrid Cloud najbolje od oba svijeta

Hybrid Cloud najbolje od oba svijeta Partneri: Hybrid Cloud najbolje od oba svijeta Drazen.Bzik@COMBIS.HR Cloud okolina Hybrid infrastruktura Gartner & Hyperconverged Infrastruktura Source: Gartner, Magic Quadrant for Hyperconverged Infrastructure,

More information

Uvod, varijable, naredbe, petlje

Uvod, varijable, naredbe, petlje 8. JavaScript Uvod, varijable, naredbe, petlje M. Zekić-Sušac 1 Što je JavaScript? JavaScript je najpopularniji skriptni jezik na Internetu kojeg podržavaju svi poznatiji preglednici (Internet Explorer,

More information

HTML, CSS i JavaScript

HTML, CSS i JavaScript Tehnologije za Web HTML, CSS i JavaScript HTML, CSS i JavaScript su jezici koji se koriste pri pravljenju interaktivnih web sajtova. Ovi jezici dopunjuju jedan drugog, i zbog toga se često koriste zajedno.

More information

Windows Phone SDK 8.0 omogućuje kreiranje aplikacija za Windows Phone 8 and Windows Phone 7.5 uređaje. SDK 7.1

Windows Phone SDK 8.0 omogućuje kreiranje aplikacija za Windows Phone 8 and Windows Phone 7.5 uređaje. SDK 7.1 Igor Mirković SDK 8.0 Windows Phone SDK 8.0 omogućuje kreiranje aplikacija za Windows Phone 8 and Windows Phone 7.5 uređaje. SDK 7.1 Windows Phone SDK 7.1 i 7.1.1 omogućuju razvoj aplikacija za Windows

More information

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Sustavi za praćenje i vođenje procesa Seminarski rad LOGIČKI ANALIZATOR (PC kao instrument) 26. svibnja 2007. Ivan Grubišić 0036404380 1. Logički analizator Logički

More information

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi. 1 PANEL komponenta kontejnerska, slična GropBox. Roditeljska komponenta za komp. postavljene na nju. Zajedno se pomeraju. Caption svojstvo za naziv; Alighment pomera svojstvo Caption levo i desno; Align

More information

Jezik Baze Podataka SQL. Jennifer Widom

Jezik Baze Podataka SQL. Jennifer Widom Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case

More information

Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša. JavaScript. Završni rad. Pula, 2015.

Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam Dr. Mijo Mirković Marino Pereša. JavaScript. Završni rad. Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr. Mijo Mirković" Marino Pereša JavaScript Završni rad Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet za ekonomiju i turizam "Dr.

More information

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar PROGRAMIRANJE Amir Hajdar Teme 2 Packages Reference objekata Inheritance nasljeđivanje Exceptions Packages API Application Programmer Interface Sve klase ponuđene u sklopu Java jezika, uključujući i kompajler

More information

Cjenovnik usluga informacionog društva

Cjenovnik usluga informacionog društva Cjenovnik usluga informacionog društva Verzija: 01/2018 Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Konverzija tipova Konverzija tipova Prilikom komunikacije aplikacije sa korisnikom, korisnik najčešće unosi ulazne podatke koristeći tastaturu.

More information

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije Iskustva u razvoju i implementaciji ADF aplikacije Sadržaj Opis aplikacije za AZ Mirovinski Fond Internacionalizacija aplikacije Integracija sa Oracle Reports Iskorištenje postojeće PL/SQL logike Kreiranje

More information

Nove značajke u Liferay portalu v6.2. Ivica Čardić Senior Software Engineer, Liferay Inc.

Nove značajke u Liferay portalu v6.2. Ivica Čardić Senior Software Engineer, Liferay Inc. Nove značajke u Liferay portalu v6.2 Ivica Čardić Senior Software Engineer, Liferay Inc. Fokus u Liferay v6.2 Mobilna platforma Poboljšano web iskustvo Kolaboracijska platforma Aplikacijska platforma Mobilna

More information

VHDLPrimeri Poglavlje5.doc

VHDLPrimeri Poglavlje5.doc 5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0

More information

Lab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) HTML5

Lab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) HTML5 Lab. vježba 5 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić) HTML5 P R O G R A M I R A N J E Z A I N T E R N E T Općenito HTML5 je posljednja verzija HyperText Markup

More information

NIZOVI.

NIZOVI. NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata

More information

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu: Database Programming with SQL kurs 2017 database design and programming with sql students slajdovi 7-1 Oracle Equijoin and Cartesian Product Prethodna sekcija se bavila upitima preko više od jedne tabele

More information

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2)

1/42 SQL DDL. CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2) 1/42 SQL DDL CREATE ALTER DROP Schema Table Tablespace Index View Domain Constraint... DECLARE TABLE (DB2) 2/42 SQL DDL: CREATE SCHEMA CREATE SCHEMA ime-sheme [ AUTHORIZATION ime-vlasnika-sheme] [ CREATE

More information

Numerical Computation

Numerical Computation GNU Octave Numerical Computation vrlo često u tehnici retko stvarni problemi imaju closed-form solution čak i kad imaju, pitanje upotrebljivosti mnogo detalja numerički pristup u početku tretirano kao

More information

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0

Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu

More information

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine

Sadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera 6 8 Cloud usluge 6 9 Aktivni servisi koji nijesu u

More information

2. Linijska algoritamska struktura

2. Linijska algoritamska struktura Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,

More information

Nizovi. Programiranje 1

Nizovi. Programiranje 1 Nizovi Programiranje 1 VB Nizovi Zamislite da imate 10,000 šešira i da morate svakome od njih dati jedinstvenu oznaku. Kako biste to napravili? Bilo bi razumno svakom šeširu dati njegov broj. Sada možete

More information

Reprodukcija slikovnih informacija

Reprodukcija slikovnih informacija Reprodukcija slikovnih informacija Seminar 1 Ante Poljičak Sadržaj Konvecionalna reprodukcija Sustav za upravljanje bojom CMS PCS Profile Connection Space ICC profili Opseg boja Kalibracija uređaja Uređaji

More information

9. RAD S DATOTEKAMA PODATAKA

9. RAD S DATOTEKAMA PODATAKA Rad s datotekama 7-1 9. RAD S DATOTEKAMA PODATAKA U programiranju se često radi sa skupovima podataka koji se čuvaju na jedinicama perfernih memorija, a koji se organizuju u posebne cjeline koje nazivamo

More information

x y = z Zadaci - procedure

x y = z Zadaci - procedure Zadaci - procedure Zad1. Data je kvadratna meta u koordinatnom sistemu sa koordinatama A(0,0), B(1,0), C(1,1), D(0,1). Sastaviti proceduru Gadjanje koja će odrediti broj poena na sledeći način: ako je

More information

Extensible Stylesheet Language jezik za definiranje stila XML dokumenta

Extensible Stylesheet Language jezik za definiranje stila XML dokumenta 7. XSL Extensible Stylesheet Language jezik za definiranje stila XML dokumenta 1 Što je XSL? XSL = Extensible Stylesheet Language (proširivi jezik stilskog uzorka) XSL definira kako će se neki XML dokument

More information

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SMTP autentikacija

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SMTP autentikacija SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINARSKI RAD IZ PREDMETA SUSTAVI ZA VOĐENJE I UPRAVLJANJE PROCESIMA SMTP autentikacija Dejan Božić 0036376981 Zagreb, 05.06.2005. SADRŽAJ 1.

More information

dr. sc.. Josip Musić Originalne slideove izradio:

dr. sc.. Josip Musić Originalne slideove izradio: Uvod u programiranje Programiranje 1 (450) Poglavlje 1 Uvod u računala, Microsoft.NET i VB.NET (dio 2 od 2): Pregled.NET platforme dr. sc.. Josip Musić jmusic@fesb.hr 1 Originalne slideove izradio: Teo

More information

RAČUNARSKI PRAKTIKUM II

RAČUNARSKI PRAKTIKUM II Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM II Predavanje 07 - Uvod u PHP 4. svibnja 2015. Sastavio: Zvonimir Bujanović PHP PHP Interpretirani skriptni

More information

Objektno orjentirano programiranje

Objektno orjentirano programiranje Objektno orjentirano programiranje Predavanje 4 Objektno orijentirani koncepti Konstruktori Metoda koja se poziva prilikom stvaranja novog objekta Svojstveni su OO programiranju Imaju isto ime kao i klasa

More information