„JTS” változatai közötti eltérés
42. sor: | 42. sor: | ||
=== Geometriai modell === | === Geometriai modell === | ||
A geometria modell segítségével pontokat, vonalakat, íveket, sokszögeket és sokszögek gyűjteményét lehet definiálni. | A geometria modell segítségével pontokat, vonalakat, íveket, sokszögeket és sokszögek gyűjteményét lehet definiálni. | ||
+ | A geometriákat reprezentáló osztályok a Geometry absztrakt osztályból származnak. Geometriai típusok: | ||
+ | * GeometryCollection: geometriai objektumok tárolására szolgál | ||
+ | * Point (pont): egy koordinátapárral van reprezentálva | ||
+ | <syntaxhighlight lang="java"> | ||
+ | GeometryFactory fact = new GeometryFactory(); | ||
+ | Point p1 = fact.createPoint(new Coordinate(0,0)); | ||
+ | </syntaxhighlight> | ||
+ | * MultiPoint (pontok halmaza): kizárólag pontokat tartalmazó gyűjtemény (GeometryCollection) | ||
+ | <syntaxhighlight lang="java"> | ||
+ | GeometryFactory fact = new GeometryFactory(); | ||
+ | MultiPoint mpt = fact.createMultiPoint(new Coordinate[] { new Coordinate(0,0), new Coordinate(1,1) } ); | ||
+ | </syntaxhighlight> | ||
+ | * LineString (vonal): pontok tömbje határozza meg | ||
+ | <syntaxhighlight lang="java"> | ||
+ | GeometryFactory fact = new GeometryFactory(); | ||
+ | LineString ls = fact.createLineString(new Coordinate[] { new Coordinate(0,0), new Coordinate(1,1), new Coordinate(2, 3) } ); | ||
+ | </syntaxhighlight> | ||
+ | * LinearRing (körvonal): koordináták tömbjéből áll, ahol az első és az utolsó koordináta megegyezik | ||
+ | * MultiLineString (vonalak halmaza): LineString típusú objektumokból álló gyűjtemény (GeometryCollection) | ||
+ | * Polygon (sokszög): egy LinearRing típusú objektum határozza meg a körvonalát és LinearRing típusú objektumok tömbje adja a lyukakat | ||
+ | * MultiPolygon (sokszögek halmaza): sokszögekből álló gyűjtemény (GeometryCollection) | ||
+ | Geometriai objektumok közötti egyezőség vizsgálatára szolgál a normálformájuk. Ennek segítségével a topológii egyezőségnél pontosabb ekvivalencia vizsgálható, de a pontról pontra való vizsgálatnál gyengébb. A normálforma a koordináták lexikografikus rendezéseként van megvalósítva. | ||
=== Geometriai funkciók, algoritmusok === | === Geometriai funkciók, algoritmusok === |
A lap 2017. április 29., 22:48-kori változata
A JTS (Java Topology Suite) egy nyílt forráskódú Java könyvtár síkgeometriai alakzatok modellezéséhez és informatikai alkalmazásukhoz. Az OpenGIS által kiadott "Simple Features Specification for SQL" leírásban meghatározott geometriai modelleket és API-kat implementálja.
Tartalomjegyzék
Használat
Használatához legalább Java 1.6 verzió szükséges. Maven segítségével a projektbe importálható, csupán a következő sorokat kell bemásolni a pom.xml-be.
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.13</version>
</dependency>
Felépítés
Alap modulok
jts-core: geometriák, geometriai függvények, algoritmusok, térbeli adatszerkezetek
jts-io-common: I/O osztályok térbeli adatszerkezetekhez
Teszteléshez használt modulok
jts-tests: a JTS XML teszt komponens és a Test Runner alkalmazás
jts-app: TestBuilder GUI a JTS geometriák teszteléséhez
Egyéb
jts-io-ora: Oracle író-,olvasó osztályok
jts-io-sde: SDE író-,olvasó osztályok
Felhasználási lehetőségei, jelenlegi felhasználása
Geometriai alakzatok készítéséhez, geometriai függvények alkalmazásához, számításokhoz használható. Támogatja a WKT (Well Known Test) és WKB (Well Known Binary) formátumokat.
Egyéb térinformatikai projektek is használják a JTS programcsomagot. Pl.:
- GeoTools
- GeoServer
- Geoforge
Főbb funkcionalitások
Geometriai modell
A geometria modell segítségével pontokat, vonalakat, íveket, sokszögeket és sokszögek gyűjteményét lehet definiálni. A geometriákat reprezentáló osztályok a Geometry absztrakt osztályból származnak. Geometriai típusok:
- GeometryCollection: geometriai objektumok tárolására szolgál
- Point (pont): egy koordinátapárral van reprezentálva
GeometryFactory fact = new GeometryFactory();
Point p1 = fact.createPoint(new Coordinate(0,0));
- MultiPoint (pontok halmaza): kizárólag pontokat tartalmazó gyűjtemény (GeometryCollection)
GeometryFactory fact = new GeometryFactory();
MultiPoint mpt = fact.createMultiPoint(new Coordinate[] { new Coordinate(0,0), new Coordinate(1,1) } );
- LineString (vonal): pontok tömbje határozza meg
GeometryFactory fact = new GeometryFactory();
LineString ls = fact.createLineString(new Coordinate[] { new Coordinate(0,0), new Coordinate(1,1), new Coordinate(2, 3) } );
- LinearRing (körvonal): koordináták tömbjéből áll, ahol az első és az utolsó koordináta megegyezik
- MultiLineString (vonalak halmaza): LineString típusú objektumokból álló gyűjtemény (GeometryCollection)
- Polygon (sokszög): egy LinearRing típusú objektum határozza meg a körvonalát és LinearRing típusú objektumok tömbje adja a lyukakat
- MultiPolygon (sokszögek halmaza): sokszögekből álló gyűjtemény (GeometryCollection)
Geometriai objektumok közötti egyezőség vizsgálatára szolgál a normálformájuk. Ennek segítségével a topológii egyezőségnél pontosabb ekvivalencia vizsgálható, de a pontról pontra való vizsgálatnál gyengébb. A normálforma a koordináták lexikografikus rendezéseként van megvalósítva.
Geometriai funkciók, algoritmusok
A geometriai metódusok feltételezik, hogy a paraméterül szolgáló geometriák helyesek. Ki lehet számítani a megadott geometriák közötti kapcsolatot. A kapott érték lehet:
- ekvivalencia: a geometriák topológiailag ekvivalensek
- diszjunkt: a geometriáknak nincs között pontjuk
- metsző: a geometriáknak van legalább egy közös pontja
- érintkező: a geometriák határának van legalább egy közös pontja, de egyik belső pontjuk sem közös
- tartalmazott: az A geometria benne van a B geometriában
- tartalmazó: a B geometria benne van az A geometriában
- átfedő: a geometriák néhány, de nem az összes pontja közös és a metszet dimenziója megegyezik a geometriák dimenziójával
Adatszerkezetek és algoritmusok
Példák
Hivatkozások
https://github.com/locationtech/jts