19

SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

�eské vysoké u£ení technické v Praze

Fakulta stavební

SEMESTRÁLNÍ PROJEKT

153PIN2 - Projekt Informatika 2

Aplikace pro tvorbu kartogram·

Marie Fu¬ákováSimona Karochová

Praha, 2013 Tomá² Vojt¥chovský

Page 2: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

Obsah

Úvod 3

1 O programu 4

1.1 Kartogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Nástroje pro vývoj 6

2.1 Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Quantum GIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Tvorba aplikace 8

3.1 Kompilace pod MS Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2 Na£tení knihoven QGIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.3 Vstupní a výstupní data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.4 Gra�cké rozhraní . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.5 Zdrojové kódy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 Problematické situace 11

4.1 Debug mód pro OS Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2 Zobrazování ikon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.3 Editovatelnost zlomových bod· t°íd . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.4 M¥°ítko a referen£ní systém . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.5 Pomalé na£ítání v¥t²ího mnoºství dat . . . . . . . . . . . . . . . . . . . . . . . . 12

4.6 Poskytnutí spustitelné aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5 Zhodnocení aplikace 14

5.1 Návrhy na zlep²ení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.1.1 Objektový návrh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.1.2 Legenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.1.3 Barevná stupnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.1.4 Popis vrstvy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.1.5 Prohlíºení vrstev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.1.6 Lokalizace aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5.1.7 Úpravy layoutu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6 Záv¥r 18

Literatura 19

Page 3: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

Úvod

Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatika 2 (153PIN2). Hlavním d·vo-

dem k naprogramování aplikace pro tvorbu kartogram· je vytvo°ení jednoduchého a p°ístup-

ného nástroje, který bude um¥t ovládat i £lov¥k bez znalostí GIS. Poºadavek na tuto aplikaci

vznikl od Ústavu pro prav¥k a ranou dobu d¥jinnou FF UK v Praze[2].

Cílem práce je sestavit program, který na základ¥ knihoven QGIS zobrazí soubor ve for-

mátu *.shp, podle kritérií vytvo°í kartogram a do mapy doplní mimo rámové údaje. Celá

aplikace je naprogramována v jazyce C++ ve vývojovém prost°edí QTCreator s vyuºitím

knihoven QGIS.

3

Page 4: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

1 O programu

1.1 Kartogram

Kartogram je jedna z vyjad°ovacích metod tematické kartogra�e. Jedná se o jednoduchou

mapu, v níº je intenzita jevu ve sledovaném území vyjád°ena gra�cky (nap°. barvou). To

znamená, ºe do díl£ích územních celk· mapy jsou plo²ným zp·sobem znázorn¥na statistická

data p°eváºn¥ geogra�ckého charakteru.

Pro kartogram je nutná plocha, která je nositelem informace, na základ¥ níº chceme data

vizualizovat.

Kartogramy se d¥lí na pravé a nepravé kartogramy. Nepravé kartogramy nejsou vztaºeny

k plo²e a nemají proto prostorový základ, protoºe data jsou p°epo£tena na jednotku plochy.

Nepravé kartogramy bývají £ast¥j²í neº b¥ºný kartogram.[3][1]

Mezi druhy kartogram· pat°í[1]:

• Jednoduchý � jeden jev

• Sloºený - více jev·

• Strukturní � £len¥ní jevu

• Te£kový � vizualizace pomocí te£ek

• �árový � vizualizace pomocí £ar

• Sí´ový � geometrické hranice

• Prostorový � typ blokdiagramu

• Anamorfovaný

V anglické literatu°e jsou kartogramy ozna£ovány pod pojmem choropleth mapping a výraz

cartogram odpovídá na²í anamorfované map¥ tj. map¥, kde z d·vodu lep²í £itelnosti a zvýraz-

n¥ní daného jevu mapa ztrácí polohopisný údaj. V takovýchto mapách je proto up°ednost¬ován

tematický obsah p°ed polohopisným.[3]

1.2 Aplikace

V jednoduché aplikaci pro tvorbu kartogram· je moºné na£íst soubor formátu *.shp. Dále

si uºivatel m·ºe vybrat ze sloupc· s £íselnou hodnotou, na jehoº základ¥ se provede klasi�kace

4

Page 5: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

podle zadaného po£tu t°íd a zvolené barevné ²kály. Poté je moºné na£tenou mapu obarvit �

vytvo°it tak kartogram.

P°i spu²t¥ní programu se otev°e jednoduché okno aplikace. V horní £ásti okna aplikace jsou

k dispozici dva panely, které si m·ºe uºivatel libovoln¥ p°emístit. Jeden panel slouºí pro práci

s oknem; obsahuje tla£ítka pro na£tení nové vrstvy, p°iblíºení, oddálení, posun a zobrazení

na£tených dat do celého okna. V druhém panelu je pak umíst¥no m¥°ítko, které zobrazuje

maximáln¥ 1 : 500 000 000. Men²í m¥°ítko jiº zaznamenáváno není.

V menu se nachází t°i poloºky File, View a Help. Poloºka File umoº¬uje na£íst vrstvu

*.shp (Load Shape�le), uloºit vytvo°ený kartogram (Save Map As) do n¥kolika formát· (nap°.

bmp, png, ppm,. . . ) a program uzav°ít (Quit). View pak slouºí pro práci s mapovým oknem

� posun a zoom. Help obsahuje stru£nou nápov¥du (Help) a informace o programu (About).

Otev°ít polygonovou vrstvu ve formátu *.shp je moºné prvním tla£ítkem zleva nebo v menu

File � Load Shape�le.

Pokud není na£ten soubor *.shp s £íselnou hodnotou aspo¬ v jednom sloupci, je okno

neaktivní a není v n¥m proto moºné nic zadávat. P°i na£tení nevyhovujícího souboru se zobrazí

varování, které upozorní na konkrétní problém.

Pokud je soubor správn¥ na£ten, v pravé dolní £ásti se zobrazí okno se statistickými údaji

o maximální, minimální hodnot¥ a pr·m¥rné hodnot¥ daného sloupce.

Po na£tení správného souboru je moºné v pravé £ásti zvolit libovolný sloupec s £íselnými

hodnotami, zadat po£et t°íd v rozmezí 1-12 a vybrat metodu pro vytvo°ení t°íd.

Uºivatel si m·ºe zvolit ze dvou metod: Equal interval nebo Editable Breakpoints. V prv-

ním p°ípad¥ je t°ída rozd¥lena na rovnom¥rné intervaly, které se znovu vytvo°í vºdy, kdyº je

vybrána tato moºnost. Ve druhém p°ípad¥ je moºné zvolit si vlastní lomové body. Hodnoty

bod· se zadávají do druhého £íselného sloupce to. Pokud nejsou zadané hodnoty se°azené,

program je dokáºe se°adit. Zárove¬ kontroluje, zda je zadaná hodnota v rozmezí mezi mini-

mální a maximální hodnotou. Pokud je niº²í, hodnota je automaticky p°evedena na nejniº²í

hodnotu, pokud je vy²²í, hodnota je p°evedena na nejvy²²í hodnotu.

Dále je na výb¥r z n¥kolika barevných ²kál spolu s moºností inverzních barev.

Vykreslení kartogramu podle zadaných parametr· se potvrdí tla£ítkem Apply.

Popis k jednotlivým plochám je moºné p°idat za²krtnutím Label this layer a výb¥rem

sloupce, který se má zobrazovat.

5

Page 6: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

2 Nástroje pro vývoj

2.1 Qt

Qt je knihovna, p°esn¥ji °e£eno framework, umoºnující vývoj aplikací s gra�ckým uºiva-

telským rozhraním (GUI, Graphical User Interface). Qt je cross-platformní, coº znamená, ºe

v n¥m vytvo°ené programy lze pouºívat na mnoha platformách v£etn¥ GNU/Linux, Mac OS

X a MS Windows. Podporovány jsou v²ak i dal²í opera£ní systémy jako nap°íklad systémy

n¥kterých mobilních telefonu.

Hlavním jazykem, který se pouºívá pro programování Qt aplikací, je C++. V závislosti na

tom, jakou aplikaci vyvíjíme, lze v²ak pouºít i jiné programovací jazyky (nap°. JavaScript £i

Python) £i postupy (nap°. gra�cké skládání uºivatelského rozhraní).

Sou£ástí Qt SDK je i vývojové prost°edí (IDE), které se jmenuje QtCreator. Je voln¥

dostupné ke staºení a je pod licencí GNU GPL. Díky tomu je moºné jej pouºívat k tvorb¥

komer£ního software a to i toho s uzav°enými zdrojovými kódy (proprietárního software).

QtCreator se °adí mezi takzvané lightweight IDE, tedy vývojová prost°edí, která sice na

rozdíl od oby£ejných textových editor· nabízejí ²irokou podporu p°i programování, ale na

druhou stranu nejsou tak náro£ná na nau£ení (a p°ípadn¥ i na výkon) jako rozsáhlá vývojová

prost°edí, která v sob¥ obsahují podporu pro nep°eberné mnoºství £inností.

QtCreator má speciální funkce pro vývoj Qt aplikací. Jedná se nap°íklad o gra�cký nástroj

Qt Designer pro tvorbu gra�ckého uºivatelského rozhraní. [4]

2.2 Quantum GIS

Neboli zkrácen¥ jen QGIS je volný a multiplatformní geogra�cký systém pod licencí GNU

GLP, jehoº vývoj zapo£al roku 2002. Je psán v jazyce C++ a gra�cké uºivatelské rozhraní je

postaveno na knihovn¥ Qt.

QGIS je v neustálém vývoji, který zaji²´uje skupina dobrovolník·. Jeho funk£nost zaji²´ují

zásuvné moduly.

Zdrojové kódy, ale i hotové instala£ní balí£ky jsou poskytovány zdarma na adrese:

http://qgis.org/.

QGIS je napsaný v C++ a postavený na platform¥ Qt. QGIS nabízí n¥kolik moºností,

jak roz²í°it a nebo pouºít jeho funkcionalitu. První moºností je napsání zásuvného modulu

6

Page 7: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

£ili pluginu do desktopové aplikace QGIS. Tento plugin m·ºe být napsán v C++ nebo v

Pythonu. Dal²í moºností je postavit na základ¥ r·zných £ástí QGISu svou vlastní desktopovou

£i serverovou aplikaci, to je op¥t moºné v C++ i Pythonu. Asi poslední moºností je p°ímo

modi�kovat existující QGIS aplikaci.[4]

Námi vytvo°ená �stand-alone� aplikace je postavena na verzi QGIS 1.8. V sou£asné dob¥

je p°ipravována k vydání verze 2.0, která se jiº výrazn¥ li²í v mnoha funkcionalitách.

7

Page 8: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

3 Tvorba aplikace

�Stand-alone� aplikace na tvorbu kartogram·, byla programována v jazyce C++ v pro-

gramu QtCreator 2.7.0 a kompilována pomocí Qt win 4.8.4. vs2008 za pouºití knihoven

QGIS 1.8. Aplikace byla tvo°ena pod opera£ními systémy Windows 7 a Windows Vista.

3.1 Kompilace pod MS Windows

Je zapot°ebí mít nainstalovanou star²í verzi Qt (niº²í neº verze 5, kde je Qt a Qt Creator

odd¥len). Aplikace byla tvo°ena v Qt Creator 2.7.0 zaloºeném na Qt 4.8.4 (32bit) [6].

Dále je nutné si do po£íta£e nainstalovat MS Visualstudio 2008 [9] a OSGEO4w [7], který

se musí spustit jako správce. P°i instalaci je pot°eba za²krtnout pouze balí£ky:

• qgis (Desktop)

• qgis-devel (Libs)

• qt4-devel (Libs)

• qwt5-devel-qt4 (Libs)

Poté je t°eba p°izp·sobit také Qt projekt, a to p°idáním

C:\OSGeo4W\bin;C:\OSGeo4W\apps\qgis\bin

do prom¥nné PATH. Dále bylo nutné zvolit jako kompilátor Microsoft VisualStudio a nastavit

verzi Qt p°idáním souboru qmake.exe z C:\OSGeo4W\bin. Podrobný návod viz. [5]

3.2 Na£tení knihoven QGIS

Aby bylo moºné pouºívat knihovny QGIS, musí se p°idat do souboru *.pro cesty ke knihov-

nám QGIS[5]:

QGISINCDIR=C:\OSGeo4W\apps\qgis\include

QGISLIBDIR=C:\OSGeo4W\apps\qgis\lib.

8

Page 9: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

3.3 Vstupní a výstupní data

Vstupními daty do aplikace je polygonový soubor formátu *.shp, který musí mít minimáln¥

jeden sloupec s £íselnými hodnotami, pomocí kterého lze vytvo°it kartogram. Výstupem je pak

vytvo°ený kartogram, který je moºné exportovat a uloºit v n¥kolika formátech nap°. .bmp,

.png, .ppm,. . . .

3.4 Gra�cké rozhraní

Gra�cký návrh aplikace byl vytvo°en pomocí gra�ckého nástroje QtDesigner. Rozhraní

aplikace je tvo°eno jedním oknem (MainWindow), jehoº velkou £ást zabírá plátno (Frame).V

horní £ásti okna se nachází menu se t°emi poloºkami a dv¥ li²ty; první s ovládacími ikonami

a druhá s m¥°ítkem. V pravé £ásti okna se pak nachází ovládací panel (ScrollArea). V této sekci

se nachází °ada výb¥rových polí Combo Box, tla£ítek Push Button £i popsis· Label. Nejv¥t²í

£ást v²ak zabírá editovatelná tabulka Table Widget.

Obrázek 1: Okno aplikace

3.5 Zdrojové kódy

Hlavními stavebními kameny aplikace jsou zdrojové kódy p°evzaté z knihoven QGIS. Nej-

více jsme se inspirovali soubory qgisapp (*.cpp, *.h), které popisují funkcionalitu hlavního

okna programu QGIS. Konkrétn¥ nás zajímaly prost°edky pro na£tení vrstvy, její zobrazení

a následnou navigaci v map¥.

Nedílnou sou£ástí na²í aplikace je moºnost obarvování polygon·, která je popsána v sou-

boru qgsgraduatedsymboldialog.

9

Page 10: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

N¥které funkce byly pro snaz²í implementaci pro nás pouze inspirací, nebo´ byly velmi

sloºité a odkazovaly na dal²í a dal²í funkce. P°íkladem je editovatelný combobox s ukazatelem

m¥°ítka nebo p°i°azení barevné stupnice.

Z nedostatku £asu a z d·vodu velkých technických problém· b¥hem celého projektu (ob-

zvlá²t¥ na po£átku), se jiº nesta£ilo p°istoupit k vytvo°ení a aplikování objektového návrhu,

který by vedl ke zp°ehledn¥ní aplikace a obsahoval logické £len¥ní na jednotlivé t°ídy. Apli-

kace se proto skládá pouze z mainwindows.h, mainwindows.cpp a mainwindows.ui. P°íklad

moºného objektového návrhu je uveden v kapitole 5.1.1.

10

Page 11: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

4 Problematické situace

B¥hem vývoje aplikace jsme se dostali do mnoha problematických situací. Prvním a zásad-

ním problémem bylo p°eloºení zdrojového kódu pod OS Windows (viz.3.1) a na£tení knihoven

QGIS (viz.3.2), kdy tyto problémy zabraly mnohem více £asu, neº bylo ºádoucí.

Dal²í problémy nastávaly b¥hem sestavování kódu, kdy bylo nutné pro£ítat velmi dlouhé

zdrojové kódy QGIS, které mají i n¥kolik tisíc °ádk·.

4.1 Debug mód pro OS Windows

Protoºe jsou knihovny QGIS pro OS Windows zkompilovány v Release módu, nelze pou-

ºívat Debug. Aby ho bylo moºné vyuºívat, bylo by nutné v²echny pouºívané knihovny QGIS

vlastnoru£n¥ zkompilovat v Debug módu. k tomuto kroku nebylo z £asových d·vod· p°i-

stoupeno. Debug mód umoº¬uje zobrazovat vnit°ní stav programu, coº je tém¥° nezbytné

pro testování a vývoj programu. Tím pádem se vývoj programu zna£n¥ zkomplikoval. Je na

zváºení, zda by nebylo výhodn¥j²í zkompilovat knihovny p°ed za£átkem vývoje.

4.2 Zobrazování ikon

Pro zobrazování ikon je zapot°ebí vytvo°it soubor resources.grc a do n¥j umístit cestu

k obrázku. Nap°.:

<RCC>

<qresource prefix="/icon">

<file>icons/mActionAddMap.png</file>

<file>icons/mActionPan.png</file>

<file>icons/mActionZoomFullExtent.png</file>

<file>icons/mActionZoomIn.png</file>

<file>icons/mActionZoomOut.png</file>

</qresource>

</RCC>

11

Page 12: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

4.3 Editovatelnost zlomových bod· t°íd

Poºadavek na editovatelnost zlomových bod· vycházel ze samotné podstaty úlohy. V QGISu

se zadání nových zlomových bod· °e²í n¥kolika novými okny, £emuº jsme se cht¥li pokud moºno

vyhnout. Bylo tedy nutné pozm¥nit funkci, která se stará o vykreslení barevné palety a vy-

tvo°it její variantu pro mód editovatelných zlomových bod·. Po analýze moºností, jak nejlépe

o²et°it zadávání zlomových bod·, bylo rozhodnuto, ºe editovatelná by m¥la být pouze horní

hranice intervalu a spodní hranice dal²ího intervalu se odvozovala od p°edchozí horní hranice.

Zárove¬ je ºádoucí, aby se zadané horní hranice °adily podle velikosti a nebylo moºné za-

dat hodnotu mimo rozsah dat. Tyto t°i poºadavky nejsou v QGISu v·bec o²et°eny. Uºivatel

m·ºe zadat p°ekrývající se intervaly i intervaly mimo rozsah dat. Proto bylo nutné zm¥nit

typ objektu, do kterého se t°ídy ukládají, z p·vodního list widgetu (kde byla spodní a horní

hranice odd¥lena poml£kou v jedné poloºce) na table widget, kde hodnoty spodních a horních

hranic jsou v r·zných sloupcích a tím i poloºkách, coº umoº¬uje editaci pouze horní hranice.

Po stisknutí tla£ítka Apply jsou intervaly nejd°íve se°azeny a poté vykreslen kartogram.

4.4 M¥°ítko a referen£ní systém

V sou£asné verzi aplikace nezachytává referen£ní systém na£tené vrstvy, coº vede k chyb-

nému ukázání m¥°ítka. Referen£ní systém je porovnáván se systémy v interní databázi QGIS,

na²e aplikace zatím nedokáºe k této databázi p°istoupit. Bylo zji²t¥no, ºe tuto databázi hledá

p°ímo ve sloºce programu, nikoliv ve správném umíst¥ni C:\osgeo4w\apps\qgis\plugins. D·-

sledkem toho je, ºe m¥°ítko se zobrazuje správn¥ pouze p°i na£tení vrstvy bez de�novaného

referen£ního systému. Pod Linux lze problém odstranit p°idáním de�nice prom¥nné prost°edí

QGIS_PREFIX_PATH, do projektu anebo p°ímo do main.cpp. Pod Windows se problém

zatím nepoda°ilo odstranit a to zejména z £asové tísn¥.

4.5 Pomalé na£ítání v¥t²ího mnoºství dat

Rychlost na£tení nové vrstvy je závislá na po£tu polygon·, respektive na po£tu zlomových

bod·. P°i na£ítání polygonové mapy obcí dochází k prodlev¥ n¥kolika vte°in. Pokusili jsme se

testovat délku na£ítání v na²í aplikaci a QGIS. Výsledek byl takový, ºe na£ítání rozsáhlých

polygon· v aplikaci trvá p°ibliºn¥ trojnásobnou dobu neº v QGIS. D·vod pro£ tomu tak je

12

Page 13: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

zatím nebyl zji²t¥n. Tento problém by alespo¬ £áste£n¥ uºivateli zp°íjemnil ProgressBar, který

ukazuje aktuální postup na£ítání.

4.6 Poskytnutí spustitelné aplikace

Aby byla aplikace .exe funk£ní, je nutné mít ve stejné sloºce i v²echny knihovny, které apli-

kace pouºívá. Po£et t¥chto knihoven je pom¥rn¥ velký a není snadné zjistit, o které knihovny

se jedná, protoºe se knihovny mohou odkazovat i na dal²í. Vytvo°ení minimalistického balí£ku

(obsahujícího .exe aplikaci a minimální po£et knihoven) by bylo obtíºné a velmi £asov¥ ná-

ro£né. Proto jsme p°istoupili k alternativnímu °e²ení. Tím je umíst¥ní .exe souboru do sloºky

C:\OSGeo4W\bin, respektive do odpovídající sloºky na konkrétním po£íta£i. Nevýhoda spo-

£ívá v nutnosti instalace QGIS, coº znamená staºení a uloºení i nepot°ebných knihoven a v¥t²í

nárok na volný prostor na disku.

13

Page 14: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

5 Zhodnocení aplikace

Aplikace slouºí k vykreslování kartogramu se zadaného shape�lu. Snaha byla vytvo°it apli-

kaci co nejjednodu²²í, aby ji dokázal ovládat i £lov¥k bez jakýchkoliv znalostí GIS. Troufáme

si tvrdit, ºe tato podmínka je spln¥na.

I kdyº je aplikace funk£ní, má stále velkou °adu nedostatk·, které se z £asových £i tech-

nických d·vod· zatím nepoda°ilo odstranit. Mnoho v¥cí téº nebylo °e²eno zcela optimálním

zp·sobem, protoºe bylo nutné zabývat se prioritn¥j²ími v¥ci, jako nap°íklad základní funkcio-

nalitou.

Vzhledem k nesnázím a £asové tísni je aplikace v rámci moºností pouºitelná, i kdyº ne

ideální.

5.1 Návrhy na zlep²ení

Jak jiº bylo °e£eno, v aplikaci je stále mnoho v¥cí, které je moºné dále upravovat a vy-

lep²ovat. Mnohé v¥ci nebyly dovedeny do optima z d·vodu velké £asové tísn¥. Moºností na

vylep²ení je mnoho, uvádíme ty nejd·leºit¥j²í.

5.1.1 Objektový návrh

Objektový návrh nebyl v prvopo£átcích projektu v·bec °e²en, protoºe byl velký problém

zhotovit v·bec jakoukoliv spustitelnou aplikaci. k pozd¥j²í úprav¥ kódu se nesta£ilo p°istoupit.

Proto má sou£asný kód jen jednu t°ídu, která je velmi nep°ehledná. Pro zp°ehledn¥ní by bylo

vhodné kód logicky roz£lenit a odd¥lit tak logickou £ást aplikace od £ásti gra�cké.

K aplikaci vhodného objektovému návrhu by bylo ale nutné zm¥nit koncepci zcela od

základu. Sou£asné metody spou²tí mnoho díl£ích funkcí a metod, které by mohly, ne-li p°ímo

m¥ly, být ve vlastní t°íd¥. Sou£asný návrh je zcela nevyhovující a nep°ehledný, ale p°epsání

prakticky celého kódu není z £asových moºností reálné.

14

Page 15: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

Objektový návrh

Uvádíme návrh na rozd¥lení do následujících t°íd a jejich metody

• MainWindow

� funkce p°ímo spojeny p°ímo s gra�ckým oknem a jeho komponenty (tla£ítka atd.)

• MapNavigation

� zoom in, out, full

� pan mode

� m¥°ítko - ukázání a nastavení

• SaveImage

� getSaveAsImageName

� createFileFilter_

• LayerProperties

� maximum

� minimum

� pr·m¥r

� AddNumericFields()

� klasi�kace dat

• Labeling

� funkce pro tvorbu popisk·

• ColorRamp

� getColorFromRamp

� updateEntryIcon

� vytvá°ení barevných symbol·

� dal²í funkce spojené s barevnými paletami

Stávající funkci choroplethSettings() je nutné rozpustit a její obsah p°esunout do metod

t°íd ColorRamp a LayerProperties. Jde o páte°ní funkci celé aplikace, která vytvá°í barevné

symboly, klasi�kuje data a p°i°azuje jednotlivým t°ídám barvu.

15

Page 16: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

5.1.2 Legenda

P°i tvorb¥ legendy jsme se cht¥li inspirovat °e²ením pouºitém v QGIS. Tam je legenda °e-

²ena otev°ením nového okna, které obsahuje objekt t°ídy �QgsComposition� . V na²í aplikaci

pouºíváme ale objekt t°ídy �QgsMapCanvas� , stejn¥ jako základní okno QGISu. QqsCom-

position má de�novány úpln¥ jiné metody neº Canvas, a proto není moºné ty dva QFramy

voln¥ zam¥nit. Tvorba legendy by byla moºná dv¥ma zp·soby. První zp·sob je vytvo°it nové

okno, stejn¥ jako postupuje QGIS, coº je ale pro na²í aplikaci zbyte£n¥ sloºité a neºádoucí.

Druhý zp·sob je zm¥na pouºívaného QgsMapCanvas na QgsComposition, jehoº sou£ástí by

byl QgsMapCanvas. To by byl znamenalo velké zm¥ny v kódu, které jsme nebyli schopni

uskute£nit z £asových d·vod·.

5.1.3 Barevná stupnice

Pro lep²í p°edstavu o barvách palety by bylo vhodné místo popisu ve výb¥rovém poli

zobrazit skute£nou barevnou ²kálu. Na p°ání koncového uºivatele je moºné roz²í°it výb¥r

barev o dal²í barevné palety.

5.1.4 Popis vrstvy

Popisy nejsou p°ímo sou£ástí kartogram· ani poºadavkem zadavatele, a proto jejich zob-

razení nebylo v¥nováno tolik £asu. Nyní je moºné zobrazit popis v jedné velikosti písma, který

je automaticky umíst¥n. Pro moºnost reálného vyuºití a správné zobrazování podle kartogra-

�ckých zásad by bylo nutné vytvo°it dal²í dialogové okno, kde by uºivatel de�noval velikost,

styl, barvu, oto£ení £i umíst¥ní v·£i plo²e, ke které je popis vztaºen.

5.1.5 Prohlíºení vrstev

V aktuální verzi není moºné na£íst shape�le, který neobsahuje v atributové tabulce alespo¬

jeden sloupec s £íselnými hodnotami. Zárove¬ není moºné otev°ít soubor, který neobsahuje

polygony, ale jiné geometrické objekty (linie £i body). Otázkou je, zda je ºádoucí tyto typy

soubor· alespo¬ zobrazit. Prohlíºení jakýchkoliv vrstev formátu *.shp (i nepolygonových nebo

bez numerického sloupce) bez moºnosti vytvo°ení kartogramu je moºné poskytnout na p°ání

koncového uºivatele.

16

Page 17: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

5.1.6 Lokalizace aplikace

Aplikace je vytvo°ena v anglickém jazyce, ale bylo by vhodné, aby £e²tí uºivatelé m¥li

k dispozici £eskou verzi. k tomu je nutné vytvo°it seznam výraz·, které je nutné p°eloºit,

vytvo°it p°eklad a implementovat lokalizaci. Z £asových d·vod· bylo rozhodnuto, ºe lokalizace

aplikace není nezbytn¥ nutná.

5.1.7 Úpravy layoutu

P°i zmen²ení aplikace by bylo vhodné, aby se vpravo zobrazil rolovací panel. Pokud je okno

zmen²eno, není moºnost se dostat k nezobrazeným poloºkám. P°i zv¥t²ení aplikace by naopak

bylo ºádoucí, aby se tabulka t°íd Table Widget roztáhla do maximální moºné vý²ky.

17

Page 18: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

6 Záv¥r

Výsledkem na²í práce je voln¥ spustitelná aplikace pro tvorbu kartogram· na základ¥

polygonového souboru Shape�le.

Celá aplikace byla psána v jazyce C++ s vyuºitím knihoven QGIS. Protoºe jsme nem¥li

prakticky ºádné p°edchozí zku²enosti s knihovnami QGIS, trvalo procházení kódu a jeho po-

chopení vºdy velmi dlouhou dobu.

V pr·b¥hu tvorby aplikace jsme narazili na mnohé nesnáze, z nichº mnohé se poda°ilo

více £i mén¥ vy°e²it, jiné, p°eváºn¥ z £asových d·vod·, stále z·stávají. Nejv¥t²í problém byl

v prvopo£átcích aplikace, kdy trvalo velmi dlouho neº se v·bec poda°ilo spustit jakoukoliv

aplikaci. �as, který byl investován do zprovozn¥ní první aplikace, se nám v záv¥ru nedostával,

a nebylo tak moºné doladit v²echny pot°ebné funkcionality. Na²im cílem bylo v zadaném

termínu mít v rámci moºností funk£ní aplikaci, £ehoº bylo dosaºeno a zadavatel projektu je

s prozatímní aplikací spokojen. Dal²í vylep²ování a optimalizace aplikace je pak uº jen otázkou

£asu. Postupy nutné ke zdokonalení aplikace jsou nám známy a zbývá jen jejich aplikace.

Velké nesnáze nám zp·sobilo rozhodnutí programovat aplikaci pod OS MS Windows, coº

zp·sobilo °adu problém·, kterým bylo moºné se vyhnout a s kterými jsme se potýkali od

za£átku do konce. Nejv¥t²í problém, který z toho vyplýval, byla nemoºnost vyuºívání debug

modu viz kapitola 4.1.

B¥hem práce jsme se blíºe seznámili s knihovnami QGIS, jazykem C++ a prost°edím Qt

Creator. Práce nás obohatila o °adu uºite£ných zku²eností.

18

Page 19: SEMESTRÁLNÍ PROJEKTgeo.fsv.cvut.cz/gdata/2013/pin2/a/dokumentace/dokumentace.pdf · Úvod Práce byla vytvo°ena v rámci p°edm¥tu Projekt Informatiak 2 (153PIN2). Hlavním d·vo-dem

Literatura

[1] �ERBA, O. Kartogramy: P°edná²ka z p°edm¥tu Tematická kartogra�e (KMA/TKA). [on-

line]. [cit. 2013-05-13]. Dostupné z WWW: http://gis.zcu.cz/studium/tka/Slides/

kartogramy.pdf

[2] FFUK Praha. Ústav pro archeologii [online]. [cit. 2013-05-14]. Dostupné z WWW: http:

//uprav.ff.cuni.cz/

[3] Kartogramy. In: Wikipedia: otev°ená encyklopedie. [online]. [cit. 2013-05-13]. Dostupné

z WWW: http://cs.wikipedia.org/wiki/Kartogram

[4] PETRÁ�, V.; KRATOCHVÍLOVÁ, A. Zásuvný model QGISu pro práci s katastrálními

daty: Dokumentace [online]. [cit. 2013-05-14]. Dostupné z WWW: http://geo.fsv.cvut.

cz/gdata/2012/pin2/b/dokumentace/dokumentace_2012_b.pdf

[5] QGIS / Tvorba vlastní C++ aplikace pomocí QGIS knihoven [online]. Poslední re-

vize 27.3.2013 [cit. 2013-05-14]. Dostupné z WWW: http://geo.fsv.cvut.cz/freegis/

QGIS_/_Tvorba_vlastn%C3%AD_C%2B%2B_aplikace_pomoc%C3%AD_QGIS_knihoven

[6] Qt win opensource 4.8.4. Library download [online]. [cit. 2013-03-08]. Dostupné

z WWW: http://releases.qt-project.org/qt4/source/qt-win-opensource-.8.

4-vs2010.exe

[7] Qt win opensource4.8.4:OSGeo4W. Download. [online]. [cit. 2013-03-08]. Dostupné

z WWW: http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe

[8] Quantum GIS APU documentation 1.8. [online]. [cit. 2013-03-08]. Dostupné z WWW:

qgis.org/api/1.8

[9] Visual Studio. Download. [online]. [cit. 2013-03-08]. Dostupné z WWW: http://www.

microsoft.com/visualstudio/cze/downloads#d-2010express

Pod¥kování

D¥kujeme za mnohé uºite£né rady a konzultace Ing. Martinu Landovi.

19