JTS Topology Suite

JTS Topology Suite (Java Topology Suite или JTS) — это библиотека Java с открытым исходным кодом, которая предоставляет объектную модель для евклидовой плоской линейной геометрии вместе с набором основных геометрических функций. JTS в первую очередь предназначен для использования в качестве основного компонента программного обеспечения для векторной геоматики, такого как географические информационные системы (ГИС). JTS также может быть использоваться как библиотека общего назначения, предоставляющая алгоритмы для вычислительной геометрии.[1]

JTS Topology Suite
Тип Библиотека
Автор Мартин Дэвис
Написана на Java
Аппаратная платформа Java SE
Последняя версия 1.16 (2014-04-30)
Репозиторий github.com/locationtech/…
Лицензия Eclipse Public License v.1.0 (начиная с 1.15), GNU Lesser General Public License (до версии 1.14)
Сайт locationtech.github.io/j…

JTS реализует геометрическую модель и API, определенные консорциумом OpenGIS в Simple Features Specification для SQL.

JTS определяет стандартизированную геометрическую систему для построения пространственных приложений: средства просмотра, обработчики пространственных запросов и инструменты для проверки, очистки и интеграции данных.

Помимо основной библиотеки Topology Suite на Java существуют порты на другие языки, например, GEOS — C++ и JSTS — JavaScript.[2]

До JTS 1.14 и появления порта GEOS публиковалась под лицензией GNU Lesser General Public License (LGPL). С принятием LocationTech будущие выпуски будут под лицензиями EPL/BSD.

Возможности

править

JTS предоставляет следующие функциональные возможности:

Модель геометрии

править

Поддерживаются следующие классы геометрии - points, linestrings, polygons, и collections. Геометрия является линейной, в том смысле, что границы неявно определяются путем линейной интерполяции между вершинами. Геометрия вложена в 3D евклидову плоскость. Вершины геометрии также могут иметь значение Z.

Поддерживаются определяемые пользователем модели точности для геометрических координат. Вычисления выполняются с использованием алгоритмов, которые обеспечивают надежные геометрические вычисления при всех моделях точности.

Геометрические функции

править

Пространственные структуры и алгоритмы

править

Возможности ввода / вывода

править
  • Чтение и запись WKT, WKB и GML форматов

Библиотека GEOS

править

GEOS - это порт C/C++ подмножества JTS и выбранных функций. GEOS заслуживает внимания как базовый компонент в программной экосистеме собственных скомпилированных исполняемых файлов на платформах 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 – виртуальный глобус NASA с открытым исходным кодом и технология визуализации мира.
  • Orfeo toolbox – библиотека обработки спутниковых снимков.
  • R – статистическое программное обеспечение с открытым исходным кодом с расширениями для анализа пространственных данных.
  • SAGA GIS – кроссплатформенное программное обеспечение ГИС с открытым исходным кодом.

История

править

Финансирование первоначальной работы над JTS было получено осенью 2000 года от GeoConnections и правительства Британской Колумбии на основе предложения, выдвинутого Марком Сондхеймом и Дэвидом Скеа. Работу выполняли Мартин Дэвис (дизайнер программного обеспечения и ведущий разработчик) и Джонатан Акино (разработчик), оба из Vivid Solutions в то время. С тех пор JTS поддерживается независимым программным проектом Мартина Дэвиса.[4]

С конца 2016 года по начало 2017 года JTS была принята компанией LocationTech.

Платформы

править

JTS разработан под платформу Java JDK 1.4. Это 100% чистая Java. Он будет работать и на всех более поздних версиях JDK.

Подмножество JTS было перенесено на C++, а точки входа объявлены как интерфейсы C, в библиотеке GEOS.

JTS был перенесен в .NET Framework как пакет Net Topology Suite.

Порт JTS на JavaScript инициирован Björn Harrtell и поддерживается получение название JSTS

Частичный список проектов использующих JTS

править

См. также

править

Примечания

править
  1. Davis, Martin Secrets of the JTS Topology Suite (26 сентября 2007). Дата обращения: 26 января 2017. Архивировано 25 ноября 2017 года.
  2. GEOS. Дата обращения: 24 января 2019. Архивировано 9 января 2019 года.
  3. A Formal Definition of Binary Topological Relationships Архивная копия от 20 февраля 2012 на Wayback Machine by Max Egenhofer
  4. History of JTS and GEOS - M. Davis. Дата обращения: 27 мая 2013. Архивировано 27 февраля 2014 года.

Ссылки

править