0 Vykreslení brázku z databázvéh slupce na referenční bd gemetrie
OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 -
1 Cíl příkladu V tmt příkladu si ukážeme jak standardní gemetrický prvek (BOD/ČÁRA/POLYGON atd.) v jeh referenčním bdě nahradíme brázkem (PNG/JPEG/GIF). Obrázek máme ulžený v databázi SQLite a t ve slupečku IMG typu BLOB gemetrické tabulky. Příklad byl vytvřen ve verzi 4.0.3.14 a nemusí být tedy kmpatibilní se staršími verzemi. 2 Práce s příkladem D slžky c:\marushkaexamples\ rzbalíme bsah subru ImgFrmPint_CZ.zip. Cílvu slžku je nutné respektvat kvůli prvázansti cest s prjektem. V případě umístění subrů d jiné cesty by nebyl mžné s příkladem pracvat. V prstředí MarushkaDesignu tevřeme prjekt ImgFrmPint_CZ.xml. Označíme frmální vrstvu IMG_TABLE v datvém skladu SQLite (WKB), v kntextvém menu vybereme Data Načti vše: V mapvém kně zvlíme zbrazit Vše : Spustíme lkální webvý server: - 2 -
3 Ukázka dialgvéh kna Obr 1: Přepnutí d módu data v SQLite Expert Persnal manageru Obr 2: Výběr Image Editru v SQLite manageru - 3 -
Obr 3: Načtení brázku v SQLite manageru Obr 4: Ukázka výsledku příkladu v lkálním webvém serveru v MarushkaDesignu - 4 -
4 Stručný ppis příkladu v MarushkaDesignu Cílem příkladu je ukázat, jak lze ulžit binární reprezentaci brázku d slupečku databáze v SQLite a pté ji načíst pmcí pseudslupce SET_PARS_IMAGE_FROM_CORG míst bdvých prvků a vykreslit tyt brázky d mapvé kmpzice. Příklad bsahuje frmální vrstvu IMG_TABLE, která je dkázána na databázvu tabulku IMG_TABLE. Tat tabulka bsahuje brázky, jejichž binární reprezentace je ulžená ve slupci IMG. V tmt příkladu se knkrétně jedná znaky krajských měst České republiky, které jsu umístěny v suřadnicích příslušných měst. Obrázky jsu vykresleny ve veliksti 20 000 m. Tabulka v SQLite bsahuje krmě standardních slupců i slupec IMG, který je stejně jak slupec GEOM databázvéh typu BLOB. D něh se ptm v SQLite manageru pmcí Image Editru ulží binární reprezentace brázku, který se zbrazí v místě referenčníh bdu bdvéh prvku. Míst referenčníh bdu bdvéh prvku by mhl být brázek zbrazen také v místě referenčníh bdu elementu typu LINESTRING, POLYGON neb GEOMETRYCOLLECTION. Pstup je následující: 1. Příprava dat Nejdříve si připravíme data v SQLite manageru (zde byl knkrétně pužit SQLite Expert Persnal verze 3.5.89.205, dále jen SQLite manager). V něm se přepneme d módu Data (viz br. 1), najdeme záznam, u kteréh chceme změnit brázek a u tht záznamu pmcí dvjkliku levéh tlačítka vybereme slupec IMG. Zbrazí se Recrd Editr, v něm u slupce IMG klikneme na vlbu Image Editr (viz br. 2). Dále klikneme na Lad, vybereme brázek, který chceme v daných suřadnicích zbrazit, klikneme na Otevřít (viz. br. 3). Pté zvlíme mžnst OK. Nyní je již brázek v databázi ulžen v binárním frmátu a můžeme jej vykreslit. 2. Vykreslení (prezentace) dat V MarushkaDesignu si vytvříme frmální vrstvu, která bude dkazvána na tabulku s ulženými brázky (v našem případě IMG_TABLE). D vlastnsti frmální vrstvy DBClumnsTClient vlžíme tent řetězec: IMG,'IMG 20000' SET_PARS_IMAGE_FROM_CORG První část tht řetězce říká, že ze slupce IMG budeme načítat brázky veliksti 20 000 metrů. Míst hdnty IMG v řetězci je mžné vlžit jakýkliv jiný název slupce, ve kterém je ulžena binární reprezentace brázku, míst hdnty 20 000 lze zvlit jakukliv jinu velikst brázku. Pseudslupec SET_PARS_IMAGE_FROM_CORG má dva parametry: a) jmén databázvéh slupce, ve kterém je brázek ulžen, tent slupec musí být natažen z databáze prstřednictvím DBClumnsTClient, b) výška brázku. V případě, že databázvý slupec IMG bsahuje i jiné záznamy než puze brázky, my však statní záznamy nechceme zbrazit, je mžné d vlastnsti frmální vrstvy DBWhereClause vlžit pdmínku: IMG IS NOT NULL. Ta nám zaručí, že záznamy, které mají ve slupci IMG hdntu NULL (nemají přiřazen žádný brázek), se nebudu zbrazvat. V pačném případě se načtu i statní prvky ze slupce IMG databázvé tabulky. Nyní již zbývá jen zbrazit si tímt způsbem vlžené brázky v MarushkaDesignu, t prvedeme stejným způsbem jak na brázku v kapitle 2 tht příkladu (Data Načti vše). - 5 -