Topologie Suite JTS - JTS Topology Suite
Původní autoři | Martin Davis |
---|---|
Stabilní uvolnění | 1.17.1 / 27. srpna 2020[1] |
Úložiště | |
Napsáno | Jáva |
Plošina | Java SE |
Typ | Knihovna |
Licence | Veřejná licence Eclipse v.1.0 (počínaje 1.15), GNU Lesser General Public License (do verze 1.14) |
webová stránka | locationtech |
Topologie Suite JTS (Sada Java Topology Suite) je open-source Jáva softwarová knihovna který poskytuje objektový model pro Euklidovský planární lineární geometrie společně se sadou základních geometrických funkcí. JTS je primárně určen k použití jako základní součást založené na vektorech geomatika software jako geografické informační systémy.[2] Lze jej také použít jako univerzální knihovnu poskytující algoritmy v výpočetní geometrie.[3]
JTS implementuje geometrický model a API definované v OpenGIS Konsorcium Specifikace jednoduchých funkcí pro SQL.
JTS definuje geometrický systém vyhovující standardům pro vytváření prostorových aplikací; Mezi příklady patří prohlížeče, procesory prostorových dotazů a nástroje pro provádění ověřování, čištění a integrace dat. Kromě knihovny Java jsou základy JTS a vybraných funkcí udržovány na portu C ++ pro použití v propojení ve stylu C na všech hlavních operačních systémech ve formě softwarové knihovny GEOS.
Až JTS 1.14 a port GEOS jsou publikovány pod GNU Lesser General Public License (LGPL).
S přijetím aplikace LocationTech budou budoucí vydání v rámci licencí EPL / BSD.
Rozsah
JTS poskytuje následující funkce:
Geometrický model
Třídy geometrie podporují body modelování, liniové řetězce, polygony a sbírky. Geometrie jsou lineární v tom smyslu, že hranice jsou implicitně definovány lineární interpolací mezi vrcholy. Geometrie jsou vloženy do dvourozměrné euklidovské roviny. Geometrické vrcholy mohou také nést hodnotu Z.
U geometrických souřadnic jsou podporovány uživatelem definované přesné modely. Výpočet se provádí pomocí algoritmů, které poskytují robustní geometrický výpočet u všech přesných modelů.
Geometrické funkce
- Kontrola topologické platnosti
- Funkce plochy a vzdálenosti
- Prostorové predikáty založené na Egenhoferovi DE-9IM Modelka[4]
- Překrytí funkce (včetně průsečík, rozdíl, unie, symetrický rozdíl )
- Buffer výpočet (včetně různých typů zakončení a spojení)
- Konvexní obal
- Geometrický zjednodušení včetně Douglas – Peucker algoritmus
- Geometrické zhuštění
- Lineární odkazování
- Přesnost snížení
- Delaunayova triangulace a omezená Delaunayova triangulace
- Voronoiho diagram generace
- Nejmenší uzavírací obdélník
- Oddělený Hausdorffova vzdálenost
Prostorové struktury a algoritmy
- Robustní průsečík úsečky
- Účinný křižovatka uspořádání linií
- Účinný bod v mnohoúhelníku
- Prostorový index struktury včetně čtyřstrom a STR-strom
- Rovinný graf struktury a algoritmy
I / O schopnosti
Knihovna GEOS
GEOS je port C / C ++ podmnožiny JTS a vybraných funkcí. Jedná se o základní součást softwarového ekosystému nativních kompilovaných spustitelných binárních souborů na platformách Linux, Mac a Windows. Vzhledem k běhové konstrukci prostředí Java a prostředí Java Virtual Machine (JVM) nejsou knihovny kódů napsané v prostředí Java v zásadě použitelné jako knihovny ze standardizovaného síťového prostředí (často vytvořeného z jazyka C). Linux, Microsoft Windows a rodina BSD, včetně Mac OSX, používají strukturu propojení, která umožňuje integraci (propojení) knihoven z různých jazyků do nativního běhového souboru. Java se záměrně neúčastní této interoperability bez neobvyklých opatření (JNI).
Aplikace využívající GEOS
GEOS odkazy a dodává interně v populárních aplikacích uvedených níže; a vymezením a implementací standardních tříd geometrie dostupných pro GDAL, což je zase široce podporovaný vnitřní engine v GIS, stává se GEOS implementací základní geometrie v ještě více aplikacích:
- GDAL - OGR - rozmnožování rastrových a vektorových dat
- QGIS - Desktopová platforma, otevřený zdrojový GIS
- PostGIS - prostorové typy a operace pro PostgreSQL
- GeoDjango - podpora Django pro databáze s podporou GIS
- Google Earth - Virtuální glóbus a světový zobrazovací program
- TRÁVA Knihovna a aplikace GIS
- MapServer - vývojové prostředí s otevřeným zdrojovým kódem pro vytváření prostorově aktivovaných internetových aplikací
- World Wind Java - Open source virtuální glóbus NASA a světová zobrazovací technologie
- Sada nástrojů Orfeo - Knihovna pro zpracování satelitních snímků
- R - Statistický software s otevřeným zdrojem s rozšířeními pro analýzu prostorových dat.
- SAGA GIS[5] Cross-platform open source GIS software
Dějiny
Financování počátečních prací na JTS bylo získáno na podzim 2000 od GeoConnections a vláda Britské Kolumbie na základě návrhu předloženého Markem Sondheimem a Davidem Skeaem. Práce provedli Martin Davis (softwarový design a hlavní vývojář) a Jonathan Aquino (vývojář), oba v té době Vivid Solutions. Od té doby je JTS udržován jako nezávislý softwarový projekt Martinem Davisem.[6]
Od konce roku 2016 / začátku roku 2017 byl JTS přijat společností LocationTech.
Platformy
JTS je vyvíjen pod platformou Java JDK 1.4. Je to 100% čistá Java. Bude fungovat také na všech novějších JDK.[7]
Byla přenesena podmnožina JTS C ++, se vstupními body deklarovanými jako rozhraní C, jako GEOS knihovna.
JTS byl přenesen do .NET Framework jako síťová topologická sada.
Projekty využívající JTS
- GeoServer
- GeoTools
- OpenJUMP a vidličky
- uDig
- gvSIG
- Batik
- Geoforge
- Hibernate Spatial
- Nástroje pro geoprostorovou analýzu Whitebox
- Tygron Engine
- Studio ODL
- jts-diskretizátor
- orbis gis / h2gis
- Geofil
Viz také
- DE-9IM, topologický model
Reference
- ^ „Zprávy - locationtech / jts“. Citováno 28. září 2020 - přes GitHub.
- ^ „Mapa GIS softwaru zdarma a open source z roku 2012 - průvodce usnadňujícím výzkum, vývoj a osvojení“, S. Steiniger a A.J.S. lovec
- ^ Davis, Martin (26. září 2007). „Tajemství topologické sady JTS“. Citováno 2017-01-26.
- ^ Formální definice binárních topologických vztahů Max Egenhofer
- ^ {bcite web | url = // www.saga-gis.org | title = SAGA GIS || accessdate = 29. září 2020}}
- ^ „Historie JTS a GEOS - M. Davis“. Citováno 2013-05-27.
- ^ "JTS | FAQ". locationtech.github.io. Citováno 2019-07-18.