Автор (ы) оригинала | Мартин Дэвис |
---|---|
Стабильный выпуск | 1.17.1 / 27 августа 2020 г. [1] |
Репозиторий | |
Написано в | Ява |
Платформа | Java SE |
Тип | Библиотека |
Лицензия | Eclipse Public License v.1.0 (начиная с 1.15), GNU Lesser General Public License (до версии 1.14) |
Веб-сайт | locationtech |
JTS Topology Suite ( Java Topology Suite ) - это программная библиотека Java с открытым исходным кодом, которая предоставляет объектную модель для евклидовой планарной линейной геометрии вместе с набором фундаментальных геометрических функций. JTS в первую очередь предназначен для использования в качестве основного компонента программного обеспечения для векторной геоматики, такого как географические информационные системы . [2] Он также может быть использован в качестве библиотеки общего назначения , обеспечивая алгоритмы в вычислительной геометрии . [3]
JTS реализует геометрическую модель и API, определенные в спецификации простых функций OpenGIS Consortium для SQL .
JTS определяет соответствующую стандартам геометрическую систему для построения пространственных приложений; Примеры включают средства просмотра, обработчики пространственных запросов и инструменты для проверки, очистки и интеграции данных. В дополнение к библиотеке Java основы JTS и выбранные функции поддерживаются в порте C ++ для использования в компоновке в стиле C во всех основных операционных системах в форме библиотеки программного обеспечения GEOS.
До JTS 1.14 и порт GEOS публикуются под Стандартной общественной лицензией ограниченного применения GNU (LGPL).
С принятием LocationTech будущие выпуски будут под лицензиями EPL / BSD.
Сфера [ править ]
JTS предоставляет следующие функции:
Геометрическая модель [ править ]
Классы геометрии поддерживают точки моделирования, линии линий, многоугольники и коллекции. Геометрии линейны в том смысле, что границы неявно определяются линейной интерполяцией между вершинами. Геометрии вложены в 2-мерную евклидову плоскость. Вершины геометрии также могут нести значение Z.
Определяемые пользователем прецизионные модели поддерживаются для геометрических координат. Вычисления выполняются с использованием алгоритмов, которые обеспечивают надежные геометрические вычисления для всех прецизионных моделей.
Геометрические функции [ править ]
- Проверка топологической достоверности
- Функции площади и расстояния
- Пространственные Предикаты на основе Egenhofer ДЕ-9IM модели [4]
- Функции наложения (включая пересечение , разность , объединение , симметричную разность )
- Вычисление буфера (включая различные типы ограничения и соединения)
- Выпуклый корпус
- Геометрическое упрощение, включая алгоритм Дугласа – Пекера.
- Геометрическое уплотнение
- Линейная привязка
- Прецизионное снижение
- Триангуляция Делоне и ограниченная триангуляция Делоне
- Генерация диаграммы Вороного
- Наименьший охватывающий прямоугольник
- Дискретное расстояние Хаусдорфа
Пространственные структуры и алгоритмы [ править ]
- Надежное пересечение отрезков прямой
- Эффективное пересечение линий
- Эффективная точка в многоугольнике
- Структуры пространственного индекса, включая дерево квадрантов и STR-дерево
- Структуры и алгоритмы планарных графов
Возможности ввода / вывода [ править ]
- Чтение и запись из WKT , ВКБ и GML форматов
Библиотека GEOS [ править ]
GEOS - это порт C / C ++ для подмножества JTS и выбранных функций. Это базовый компонент программной экосистемы нативных, скомпилированных исполняемых двоичных файлов на платформах Linux, Mac и Windows. Из-за конструкции среды выполнения Java и виртуальной машины Java (JVM) библиотеки кода, написанные на Java, в основном не могут использоваться в качестве библиотек из стандартизированной среды перекрестных ссылок (часто построенной на C). Linux, Microsoft Windows и семейство BSD, включая Mac OSX, используют структуру связывания, которая позволяет интегрировать (линковать) библиотеки из различных языков в собственный исполняемый файл среды выполнения. Java, по замыслу, не участвует в этой совместимости без необычных мер ( JNI ).
Приложения, использующие GEOS [ править ]
GEOS имеет внутренние ссылки и поставляется в популярных приложениях, перечисленных ниже; и, очерчивая и реализуя стандартные классы геометрии, доступные для GDAL , который, в свою очередь, является широко поддерживаемым внутренним механизмом в ГИС, GEOS становится основной реализацией геометрии в еще большем количестве приложений:
- GDAL - OGR - изменение растровых и векторных данных
- QGIS - настольная кроссплатформенная ГИС с открытым исходным кодом
- PostGIS - пространственные типы и операции для PostgreSQL
- GeoDjango - поддержка Django для баз данных с поддержкой ГИС
- Google Earth - программа для создания виртуальных глобусов и мира.
- Библиотека и приложение GRASS GIS
- MapServer - среда разработки с открытым исходным кодом для создания интернет-приложений с пространственной поддержкой.
- World Wind Java - виртуальный глобус с открытым исходным кодом НАСА и технология создания изображений мира
- Orfeo toolbox - библиотека обработки спутниковых изображений
- R - Статистическое программное обеспечение с открытым исходным кодом с расширениями для анализа пространственных данных.
- SAGA GIS [5] Кроссплатформенное программное обеспечение ГИС с открытым исходным кодом.
История [ править ]
Финансирование первоначальной работы над JTS было получено осенью 2000 года от GeoConnections и правительства Британской Колумбии на основе предложения, выдвинутого Марком Сондхеймом и Дэвидом Скеа. Работу выполняли Мартин Дэвис (разработчик программного обеспечения и ведущий разработчик) и Джонатан Акино (разработчик), оба в то время работали в Vivid Solutions. С тех пор Мартин Дэвис поддерживает JTS как независимый программный проект. [6]
С конца 2016 - начала 2017 года компания LocationTech приняла на вооружение JTS.
Платформы [ править ]
JTS разработан на платформе Java JDK 1.4. Это 100% чистая Java. Он также будет работать на всех более новых JDK. [7]
Подмножество JTS было перенесено на C ++ с точками входа, объявленными как интерфейсы C, как библиотека GEOS .
JTS был перенесен на .NET Framework как Net Topology Suite.
Проекты с использованием JTS [ править ]
- GeoServer
- GeoTools
- OpenJUMP и вилки
- uDig
- gvSIG
- Батик
- Геофорге
- Hibernate Spatial
- Инструменты геопространственного анализа Whitebox
- Tygron Engine
- ODL Studio
- jts-дискретизатор
- orbis gis / h2gis
- Геофил
См. Также [ править ]
- ДЭ-9ИМ , топологическая модель
Ссылки [ править ]
- ^ "Релизы - locationtech / jts" . Проверено 28 сентября 2020 г. - через GitHub . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Карта программного обеспечения ГИС с открытым исходным кодом 2012 года - Руководство для содействия исследованиям, разработкам и внедрению» , С. Стейнигер и AJS Hunter
- ↑ Дэвис, Мартин (26 сентября 2007 г.). «Секреты JTS Topology Suite» . Проверено 26 января 2017 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Формальное определение бинарных топологических отношений Максом Эгенхофером
- ^ {bcite web | url = // www.saga-gis.org | title = SAGA GIS || accessdate = 29 сентября 2020 г.}}
- ^ "История JTS и GEOS - М. Дэвис" . Проверено 27 мая 2013 . CS1 maint: обескураженный параметр ( ссылка )
- ^ "JTS | FAQ" . locationtech.github.io . Проверено 18 июля 2019 .
Внешние ссылки [ править ]
- Официальный веб-сайт
- Домашняя страница Net Topology Suite
- Домашняя страница GEOS