Введение

JTS Topology Suite (Java Topology Suite) - это библиотека программного обеспечения Java с открытым исходным кодом, которая предоставляет объектную модель для евклидовой плоской линейной геометрии вместе с набором фундаментальных геометрических функций. JTS в первую очередь предназначен для использования в качестве основного компонента векторного геоматического программного обеспечения, такого как географические информационные системы. Он также может использоваться в качестве библиотеки общего назначения, предоставляющей алгоритмы в вычислительной геометрии. JTS реализует геометрическую модель и API, определенные в OpenGIS Consortium Simple Features Specification for SQL. JTS определяет стандарты, соответствующие геометрической системе для создания пространственных приложений; примеры включают в себя просмотрщиков, процессоров пространственных запросов, и инструменты для выполнения проверки данных, очистки и интеграции. В дополнение к библиотеке Java, основы JTS и выбранные функции поддерживаются в порте C ++, для использования в C-стиле ссылки на всех основных операционных системах, в виде библиотеки программного обеспечения GEOS. До JTS 1.14 и порт GEOS публикуются под GNU Lesser General Public License (LGPL). С принятием LocationTech будущие релизы будут под лицензиями EPL/BSD.

Геометрическая модель

Геометрические классы поддерживают моделирование точек, линейных строк, полигонов и коллекций. Геометрии линейны в том смысле, что границы имплицитно определяются линейной интерполяцией между вершинами. Геометрии встроены в двухмерную евклидовую плоскость. Геометрические вершины также могут иметь значение Z. Для геометрических координат поддерживаются пользовательские модели точности. Вычисления выполняются с использованием алгоритмов, которые обеспечивают надежные геометрические вычисления при всех точных моделях.

История

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

Платформы

JTS разработан на платформе Java JDK 1.4. Это 100% чистая Ява. Он будет работать и на всех более современных JDK. JTS был перенесен в NET Framework как Net Topology Suite. Подмножество JTS было перенесено на C++, с точками входа, объявленными интерфейсами C, как библиотека GEOS.

Порт C/C++: GEOS

GEOS - это порт C/C++ подмножества JTS и выбранных функций. Это основной компонент в программной экосистеме собственных, скомпилированных исполняемых бинарных файлов на платформах Linux, Mac и Windows. Из-за конструирования Java и Java Virtual Machine (JVM) в режиме выполнения библиотеки кода, написанные на Java, в основном не могут использоваться в качестве библиотек из стандартизированной среды перекрестной ссылки (часто построенной из C). Linux, Microsoft Windows и семейство BSD, включая Mac OSX, используют структуру связывания, которая позволяет интегрировать (связывать) библиотеки из различных языков в исходный исполняемый файл времени выполнения. Java, по своей конструкции, не участвует в этой операционной совместимости без необычных мер (JNI).