27.06.2015 Views

Modelování geoprostorové báze dat na úrovni datového modelu KN

Modelování geoprostorové báze dat na úrovni datového modelu KN

Modelování geoprostorové báze dat na úrovni datového modelu KN

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Modelování geoprostorové báze <strong>dat</strong> <strong>na</strong> úrovni <strong>dat</strong>ového <strong>modelu</strong> <strong>KN</strong><br />

6 Testování generalizačních funkcí v Oracle Spatial<br />

10g<br />

V kapitole 3.7 a 3.8 jsem teoreticky popsal tři funkce a jednu<br />

proceduru, které se v prostředí Spatial nechají přímo či vhodnou volbou<br />

vstupních parametrů použít ke geometrickým generalizačním účelům.<br />

Tyto podprogramy jsem otestoval <strong>na</strong> <strong>dat</strong>ech uložených v tabulce<br />

KATASTRALNI_HRANICE_MAT ve sloupci hranice.<br />

Návratovou hodnotou otestovaných funkcí je generalizovaný<br />

geometrický popis katastrální hranice uložený v objektovém <strong>dat</strong>ovém<br />

typu SDO_GEOMETRY. Pro uchování generalizovaných <strong>dat</strong> jsem v tabulce<br />

KATASTRALNI_HRANICE_MAT definoval nový sloupec typu SDO_GEOMETRY,<br />

do kterého jsem uložil výsledky použité funkce. V jazyce PL/SQL jsem<br />

<strong>na</strong>programoval postup, během kterého došlo k <strong>na</strong>čtení vstupních<br />

hodnot (záz<strong>na</strong>my ve sloupci hranice), k aplikování generalizační funkce<br />

<strong>na</strong> každý vybraný záz<strong>na</strong>m a uložení zjednodušeného popisu zpět do<br />

tabulky KATASTRALNI_HRANICE_MAT do nově definovaného sloupce a<br />

odpovídajícího řádku. Nový sloupec byl definován pro každou nově<br />

použitou funkci a zároveň pro různé hodnoty parametrů jedné a té<br />

samé funkce. Ukázka zmíněného programu v jazyce PL/SQL:<br />

DECLARE<br />

pom_geom HRANICE_VIEW.HRANICE_VIEW%TYPE;<br />

smpl_geom HRANICE_VIEW.HRANICE_VIEW%TYPE;<br />

pom_id HRANICE_VIEW.id%TYPE;<br />

pocet NUMBER;<br />

pom NUMBER;<br />

CURSOR k1 IS<br />

SELECT id,HRANICE<br />

FROM KATASTRALNI_HRANICE_MAT<br />

WHERE id BETWEEN 1 AND 5;<br />

BEGIN<br />

pom:=0;<br />

pocet:=5;<br />

OPEN k1;<br />

LOOP<br />

FETCH k1 INTO pom_id,pom_geom;<br />

SELECT sdo_util.SIMPLIFY(hranice,50) INTO smpl_geom<br />

FROM KATASTRALNI_HRANICE_MAT<br />

WHERE id=pom_id;<br />

UPDATE KATASTRALNI_HRANICE_MAT<br />

SET simplify_50=smpl_geom<br />

WHERE id=pom_id;<br />

pom:=pom+1;<br />

IF pom=pocet THEN<br />

EXIT;<br />

END IF;<br />

END LOOP;<br />

CLOSE k1;<br />

END;<br />

/<br />

Př. 27: Generalizace geometrických popisů uložených ve sloupci hranice.<br />

64

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!