Чистая библиотека JavaScript для операций с геометрией


21

Кто-нибудь знает чистую библиотеку JavaScript для выполнения геометрических операций, таких как буфер, объединение, пересечение и т. Д.? Я хочу поиграть с этими операциями в браузере. Похоже, что GeoScriptJS имеет некоторые зависимости.

Ответы:


15

Вы можете посмотреть на API OpenLayers, в частности, на классы Geometry . Вы можете проверять наличие пересечений и иметь доступ к вершинам и т. Д. В прошлом я использовал точечные буферы только с OpenLayers. Союзы могут быть сложнее, хотя.

Для более сложных операций вам может потребоваться выполнить обработку на стороне сервера и передать результаты обратно в WKT или GeoJSON, которые могут отображать OpenLayers. См. Этот учебник Союза для примера.

Другой возможный вариант - Spatial Query « JQuery, подобный библиотеке Javascript для обработки пространственной математики ». Я не уверен, насколько хорошо это проверено, но, поскольку источник доступен, вы должны взглянуть.

Обновить

Теперь есть порт JavaScript пакета JTS Topology Suite - https://github.com/bjornharrtell/jsts


Я посмотрел на геометрию OpenLayers и думаю, что метод изменения размера позволил бы мне масштабировать геометрию, чтобы получить результаты в виде буфера. Но вы правы, объединение и пересечение - все это должно быть сделано вручную. Увы. Что мне действительно нужно, так это чистый JS-порт JTS. JSTS? =)
atogle

Я много осматривался и не думаю, что какое-либо всеобъемлющее, зрелое и чистое решение JS действительно существует. На данный момент Spatial Query действительно выглядит лучше, но я нашел несколько полезных репозиториев на GitHub, которые были полезны: github.com/shawnbot/geoff/blob/master/src/geoff.js и github.com/maxogden/ geojson-js-utils
atogle

@atogle - говорят о переносе функциональности геометрии в OpenLayers в отдельную библиотеку - osgeo-org.1803224.n2.nabble.com/…
geographika

хорошо знать!
atogle

22

Я почти закончил работу с моим портом JTS, который является чистым портом JS и доступен по адресу https://github.com/bjornharrtell/jsts

В текущей версии (0.9.1) он поддерживает основные функциональные возможности JTS, под которыми я подразумеваю предикаты и оверлеи.


Привет, я недавно закончил JSTS 1.0, который является полным и современным портом JTS в современном JavaScript. Доступен в том же месте, что и версия 0.x.
Бьорн Харртелл

3

Вы можете взглянуть на geoscript (реализован в нескольких языках, включая JS)


2
Я совершенно уверен, что GeoScript JS не предназначен для запуска на клиенте / браузере. На сайте написано, что он предназначен для RingoJS. У этого также, кажется, есть зависимости JTS.
atogle


1

Turf - это библиотека javascript, предоставляющая множество пространственных операций. Он также является модульным, поэтому вы можете включить в финальный скрипт только те функции, которые вам нужны.


К сожалению, он серьезно ограничен с точки зрения геометрии и доступных операций. Вы можете сделать точку в материале многоугольника, но это, кажется, в основном это.
bugmenot123

Turf фактически использует мой собственный JSTS (но более старую версию) для многих своих операций. Если вы используете JSTS напрямую, у вас есть доступ к более подробному API, который может сделать гораздо больше, чем Turf. См. Github.com/bjornharrtell/jsts .
Бьорн Харртелл

Мне было трудно заставить JSTS работать в приложении для машинописного текста, а Turf.js работал из коробки. JSTS обладает более широкими функциональными возможностями, но для моих нужд Turf.js работал просто великолепно.
HankCa

0

Вы можете использовать REST API ArcGIS сервера независимо от того, какой API / язык вы используете. Он предоставляет все методы, выставленные ....


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.