„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. | ||
+ | |||
+ | Geometriai típusok készíthetőek a GeometryFactory osztály segítségével, illetve WKT és WBT formában is meg lehet adni őket. | ||
A geometriákat reprezentáló osztályok a Geometry absztrakt osztályból származnak. Geometriai típusok: | 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 | * GeometryCollection: geometriai objektumok tárolására szolgál | ||
60. sor: | 62. sor: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* LinearRing (körvonal): koordináták tömbjéből áll, ahol az első és az utolsó koordináta megegyezik | * LinearRing (körvonal): koordináták tömbjéből áll, ahol az első és az utolsó koordináta megegyezik | ||
+ | <syntaxhighlight lang="java"> | ||
+ | GeometryFactory fact = new GeometryFactory(); | ||
+ | LinearRing lr = fact.createLinearRing(new Coordinate[] { new Coordinate(0,0), new Coordinate(1,1), new Coordinate(2, 3), new Coordinate(0, 0) }); | ||
+ | </syntaxhighlight> | ||
* MultiLineString (vonalak halmaza): LineString típusú objektumokból álló gyűjtemény (GeometryCollection) | * MultiLineString (vonalak halmaza): LineString típusú objektumokból álló gyűjtemény (GeometryCollection) | ||
+ | <syntaxhighlight lang="java"> | ||
+ | GeometryFactory fact = new GeometryFactory(); | ||
+ | MultiLineString mls = fact.createMultiLineString(new LineString[] {ls1, ls2, ls3, ls4}); | ||
+ | </syntaxhighlight> | ||
* 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 | * 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 | ||
+ | <syntaxhighlight lang="java"> | ||
+ | GeometryFactory fact = new GeometryFactory(); | ||
+ | Polygon polygon = fact.createPolygon(coordinates); | ||
+ | </syntaxhighlight> | ||
* MultiPolygon (sokszögek halmaza): sokszögekből álló gyűjtemény (GeometryCollection) | * MultiPolygon (sokszögek halmaza): sokszögekből álló gyűjtemény (GeometryCollection) | ||
+ | <syntaxhighlight lang="java"> | ||
+ | GeometryFactory fact = new GeometryFactory(); | ||
+ | MultiPolygon mp = fact.createMultiPolygon(polygons); | ||
+ | </syntaxhighlight> | ||
+ | |||
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 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. |
A lap 2017. április 29., 23:03-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.
Geometriai típusok készíthetőek a GeometryFactory osztály segítségével, illetve WKT és WBT formában is meg lehet adni őket. 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
GeometryFactory fact = new GeometryFactory();
LinearRing lr = fact.createLinearRing(new Coordinate[] { new Coordinate(0,0), new Coordinate(1,1), new Coordinate(2, 3), new Coordinate(0, 0) });
- MultiLineString (vonalak halmaza): LineString típusú objektumokból álló gyűjtemény (GeometryCollection)
GeometryFactory fact = new GeometryFactory();
MultiLineString mls = fact.createMultiLineString(new LineString[] {ls1, ls2, ls3, ls4});
- 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
GeometryFactory fact = new GeometryFactory();
Polygon polygon = fact.createPolygon(coordinates);
- MultiPolygon (sokszögek halmaza): sokszögekből álló gyűjtemény (GeometryCollection)
GeometryFactory fact = new GeometryFactory();
MultiPolygon mp = fact.createMultiPolygon(polygons);
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