JTS je základním prvkem Jump Projektu, protože poskytuje základní geometrické funkce pro práci s prostorovými daty, které jsou využívány ve zbylých aplikacích.
Pro práci se všemi aplikacemi definuje následující prostorové datové typy:
Bod | ![]() |
Bodové pole | ![]() |
Lomená čára | ![]() |
Uzavřená linie | ![]() |
Množina lomených čar | ![]() |
Polygon | ![]() |
Množina polygonů | ![]() |
Geometrické sjednocení | ![]() |
Všechny geometrické útvary mají 3 části: okolí, hranice, vnitřek. Toto rozdělení je velmi důležité pro další operace, např. pro binární operace. Binární operace vždy porovnávají dva geometrické útvary:
geometrické útvary jsou shodné
geometrické útvary nemají žádný společný bod
geom. útvary mají alespoň jeden společný bod (opak Disjoint)
geom. útvary mají společný alespoň jeden hraniční bod, ale nemají společné žádné vnitřní body
geom. útvary mají společné nějaké, ale ne všechny vnitřní body, a rozměr průniku je menší než rozměr alespoň jednoho geom. útvaru
geom. útvar A leží uvnitř geom. útvaru B
geom. útvar B leží uvnitř geom. útvaru A (opak Within)
geom. útvary mají nějaké, ale ne všechny body společné, a průnik má ten samý rozměr jako geom. útvary
JTS podporuje popis binárních operátorů jak obecně, tak pomocí matice (DE-9IM), která kompletně popíše vztah dvou geometrických útvarů. Příklad:
Dva geometrické útvary k porovnání | Binární výroky | Matice |
---|---|---|
![]() | ![]() | ![]() |
V práci s prostorovými daty jsou také velmi důležité prostorové analýzy, i tato oblast je zahrnuta v programovém vybavení JTS. Metody vždy pracují se dvěma prostorovými objekty a vytvářejí nový geometrický útvar. V následující tabulce jsou uvedené všechny prostorové analýzy, jež JTS poskytuje.
Průnik | ![]() |
Sjednocení | ![]() |
Rozdíl | ![]() |
Symetrický rozdíl | ![]() |
Konvexní obal | ![]() |
Ochranný pás (pozitivní) | ![]() |
Ochranný pás (negativní) | ![]() |
JTS také poskytuje dvě aplikace
JTS TestRunner a
JTS TestBuilder,
které jsou využívany při vytváření nových funkcí JTS nebo při kontrole JTS.
TestBuilder je experimentální aplikace užívaná k vytváření testovacích souborů (jsou testovány v JTS TestRunneru). S experimentálností souvisí i mírné nedostatky v GUI. Pracuje s XML soubory a je schopen vytvořit HTML dokumentaci. TestBuilder má potíže se zacházením s testovými soubory obsahující velká čísla, a také s otevíráním a ukládáním testových souborů obsahující mnohonásobný test funkcí.
TestRunner tedy kontroluje soubory vytvořené TestBuilderem a tím vlastně kontroluje správnost JTS. Tato kontrola je možná jak v grafickém prostředí, tak v textovém. Výstupem je hlášení o celkovém počtu testů, o testech s dobrým výsledkem a špatným, a také o výjimkách, které testy nemohly projít.
I přesto, jaké funkce již JTS dokáže, stále se vyvíjí. Hlavní změny by měly zlepšit efektivnost průběhu jednotlivých operací, například:
for (i = 0; i < n; i ++) {
A.Union(B[i]);
}
tento cyklus se v každém průběhu zabývá prvkem "A", který je neměnný. Při velkém rozsahu tohoto prvku může následně dojít k velkém zpomalení operace. Mimo zefektivnění je ale také plánováno dodání několika nových funkcí, např. využití Delaunayho a Voronoiho struktur.