pakiet topologii JTS
Oryginalni autorzy | Marcina Davisa |
---|---|
Wersja stabilna | |
Magazyn | |
Napisane w | Jawa |
Platforma | Java SE |
Typ | Biblioteka |
Licencja | Eclipse Public License v.1.0 (począwszy od 1.15), GNU Lesser General Public License (do wersji 1.14) |
Strona internetowa |
|
JTS Topology Suite ( Java Topology Suite ) to biblioteka oprogramowania Java o otwartym kodzie źródłowym , która zapewnia model obiektowy płaskiej geometrii euklidesowej wraz z zestawem podstawowych funkcji geometrycznych. JTS jest przeznaczony przede wszystkim do stosowania jako główny składnik geomatycznego opartego na wektorach, takiego jak systemy informacji geograficznej . Może być również używana jako biblioteka ogólnego przeznaczenia dostarczająca algorytmy w geometrii obliczeniowej .
JTS implementuje model geometrii i API zdefiniowane w OpenGIS Consortium Simple Features Specification for SQL . JTS definiuje zgodny ze standardami system geometrii do budowania aplikacji przestrzennych; przykłady obejmują przeglądarki, procesory zapytań przestrzennych oraz narzędzia do sprawdzania poprawności, czyszczenia i integracji danych.
Oprócz biblioteki Java, podstawy JTS i wybrane funkcje są utrzymywane w porcie C++, do wykorzystania w łączeniu w stylu C we wszystkich głównych systemach operacyjnych, w postaci biblioteki oprogramowania GEOS .
Do JTS 1.14 i port GEOS są publikowane na licencji GNU Lesser General Public License (LGPL).
Wraz z przyjęciem technologii LocationTech przyszłe wersje będą dostępne na licencjach EPL/BSD.
Zakres
JTS udostępnia następujące funkcjonalności:
Model geometrii
Klasy geometrii obsługują punkty modelowania, ciągi linii, wielokąty i kolekcje. Geometrie są liniowe w tym sensie, że granice są definiowane pośrednio przez interpolację liniową między wierzchołkami. Geometrie są osadzone w dwuwymiarowej płaszczyźnie euklidesowej. Wierzchołki geometrii mogą również przenosić wartość Z.
Modele precyzyjne zdefiniowane przez użytkownika są obsługiwane dla współrzędnych geometrii. Obliczenia są wykonywane przy użyciu algorytmów, które zapewniają solidne obliczenia geometryczne we wszystkich precyzyjnych modelach.
Funkcje geometryczne
- Sprawdzanie poprawności topologicznej
- Funkcje powierzchni i odległości
- Predykaty przestrzenne oparte na modelu Egenhofer DE-9IM
- nakładkowe (w tym przecięcie , różnica , suma , różnica symetryczna )
- bufora (w tym różne typy cap i join)
- Wypukły kadłub
- Uproszczenie geometryczne , w tym algorytm Douglasa-Peuckera
- Zagęszczenie geometryczne
- Odniesienie liniowe
- Redukcja precyzji
- Triangulacja Delaunaya i ograniczona triangulacja Delaunaya
- Generowanie diagramu Woronoja
- Najmniejszy otaczający prostokąt
- Dyskretna odległość Hausdorffa
Struktury przestrzenne i algorytmy
- Solidne przecięcie segmentu linii
- Efektywne przecięcie układu linii
- Wydajny punkt w wielokącie
- struktury indeksowe , w tym drzewo czworokątne i drzewo STR
- Planarne struktury grafowe i algorytmy
Możliwości we/wy
Historia
Fundusze na wstępne prace nad JTS uzyskano jesienią 2000 roku od GeoConnections i rządu Kolumbii Brytyjskiej, na podstawie propozycji Marka Sondheima i Davida Skea. Prace wykonali Martin Davis (projektant oprogramowania i główny programista) oraz Jonathan Aquino (programista), obaj z firmy Vivid Solutions w tamtym czasie. Od tego czasu JTS jest utrzymywany jako niezależny projekt oprogramowania przez Martina Davisa.
Od końca 2016/początku 2017 JTS został przyjęty przez firmę LocationTech.
Projekty z wykorzystaniem JTS
- GeoSerwer
- GeoNarzędzia
- OpenJUMP i rozwidlenia
- uDig
- gvSIG
- Batik
- Geoforge
- Hibernacja przestrzenna
- Narzędzia analizy geoprzestrzennej Whitebox
- Pracownia ODL
- Dyskretyzator jts
- orbis gis/h2gis
- geofil
Platformy
JTS rozwijany jest na platformie Java JDK 1.4. Jest to w 100% czysta Java. Będzie działać również na wszystkich nowszych pakietach JDK.
JTS został przeniesiony do .NET Framework jako Net Topology Suite.
Podzbiór JTS został przeportowany do C++ , z punktami wejścia zadeklarowanymi jako interfejsy C, jako biblioteka GEOS .
Port C/C++: GEOS
GEOS to port C/C++ podzbioru JTS i wybranych funkcji. Jest to podstawowy składnik ekosystemu oprogramowania natywnych, skompilowanych, wykonywalnych plików binarnych na platformach Linux, Mac i Windows. Ze względu na konstrukcję środowiska wykonawczego Javy i Java Virtual Machine (JVM), biblioteki kodu napisane w Javie zasadniczo nie nadają się do użytku jako biblioteki ze standardowego środowiska cross-linkowania (często zbudowanego z C). Linux, Microsoft Windows i rodzina BSD, w tym Mac OSX, używają struktury łączącej, która umożliwia integrację (połączenie) bibliotek z różnych języków w natywny plik wykonywalny środowiska wykonawczego. Java z założenia nie uczestniczy w tej interoperacyjności bez nietypowych środków ( JNI ).
Aplikacje wykorzystujące GEOS
Łącza i przesyłki GEOS wewnętrznie w popularnych aplikacjach wymienionych poniżej; a dzięki wyznaczeniu i wdrożeniu opartych na standardach klas geometrii dostępnych dla GDAL , który z kolei jest szeroko obsługiwanym silnikiem wewnętrznym w GIS, GEOS staje się podstawową implementacją geometrii w jeszcze większej liczbie aplikacji:
- GDAL - OGR - przetwarzanie danych rastrowych i wektorowych
- QGIS — wieloplatformowy komputerowy GIS o otwartym kodzie źródłowym
- PostGIS - typy przestrzenne i operacje dla PostgreSQL
- GeoDjango - wsparcie Django dla baz danych obsługujących GIS
- Google Earth — wirtualny program do obrazowania globu i świata
- Biblioteka i aplikacja GRASS GIS
- MapServer - środowisko programistyczne typu open source do tworzenia przestrzennych aplikacji internetowych
- World Wind Java - wirtualna kula ziemska i technologia obrazowania świata typu open source NASA
- Zestaw narzędzi Orfeo — biblioteka do przetwarzania obrazów satelitarnych
- R – Oprogramowanie statystyczne typu open source z rozszerzeniami do analizy danych przestrzennych.
- SAGA GIS Wieloplatformowe oprogramowanie GIS o otwartym kodzie źródłowym
Zobacz też
- DE-9IM , model topologiczny
- Topologia geoprzestrzenna