Czysta biblioteka JavaScript do operacji geometrii


21

Czy ktoś wie o czystej bibliotece JavaScript do wykonywania operacji związanych z geometrią, takich jak bufor, suma, przecięcia itp.? Chcę grać z tymi operacjami w przeglądarce. Wygląda na to, że GeoScriptJS ma pewne zależności.

Odpowiedzi:


15

Możesz spojrzeć na API OpenLayers, szczególnie na klasy Geometry . Możesz sprawdzać przecięcia i mieć dostęp do wierzchołków itp. W przeszłości zaimplementowałem bufory punktów tylko z OpenLayers. Związki mogą być jednak trudniejsze.

W przypadku bardziej złożonych operacji możesz wykonać przetwarzanie po stronie serwera i przekazać wyniki z powrotem w WKT lub GeoJSON, które mogą wyświetlać OpenLayers. Zobacz przykładowy samouczek Unii .

Inną możliwą opcją jest Spatial Query a „ JQuery jak biblioteka JavaScript do obsługi matematyki przestrzennej ”. Nie jestem pewien, jak dobrze jest przetestowany, ale ponieważ dostępne jest źródło, powinieneś rzucić okiem.

Aktualizacja

Jest teraz port JavaScript pakietu JTS Topology Suite - https://github.com/bjornharrtell/jsts


Patrzyłem na geometrie OpenLayers i myślę, że metoda zmiany rozmiaru pozwoliłaby mi przeskalować geometrie, aby uzyskać wyniki podobne do buforów. Ale masz rację, tworzenie związków i skrzyżowań musiałoby odbywać się ręcznie. Niestety. To, czego naprawdę potrzebuję, to czysty port JS JTS. JSTS? =)
atogle

Często się rozglądałem i nie sądzę, że naprawdę istnieje jakieś kompleksowe, dojrzałe i czyste rozwiązanie JS. Zapytanie przestrzenne naprawdę wygląda na teraz najlepszą rzeczą, ale znalazłem kilka innych repozytoriów na GitHub, które były pomocne: github.com/shawnbot/geoff/blob/master/src/geoff.js i github.com/maxogden/ geojson-js-utils
atogle

@atogle - mówi się o przeniesieniu funkcjonalności geometrii w OpenLayers do osobnej biblioteki - osgeo-org.1803224.n2.nabble.com/…
geographika

dobrze wiedzieć!
atogle

22

Skończyłem z moim portem JTS, który jest czystym portem JS i jest dostępny na https://github.com/bjornharrtell/jsts

W obecnej wersji (0.9.1) obsługuje podstawową funkcjonalność JTS, przez co rozumiem predykaty i nakładki.


Hej, niedawno skończyłem JSTS 1.0, który jest kompletnym i aktualnym portem JTS w nowoczesnym JavaScript. Dostępne w tym samym miejscu co wersja 0.x.
Björn Harrtell,

3

Możesz rzucić okiem na geoscript (zaimplementowany w kilku wersjach językowych, w tym JS)


2
Jestem prawie pewien, że GeoScript JS nie jest przeznaczony do uruchamiania na kliencie / przeglądarce. Strona twierdzi, że jest przeznaczony dla RingoJS. Wydaje się również, że ma zależności JTS.
atogle


1

Turf to biblioteka javascript zapewniająca wiele operacji przestrzennych. Jest on również modułowy, więc w ostatecznym skrypcie możesz zawrzeć tylko te funkcje, których potrzebujesz.


Niestety jest poważnie ograniczony pod względem geometrii i dostępnych operacji. Możesz wskazać wielokąty, ale wydaje się, że w zasadzie tak jest.
bugmenot123

Turf faktycznie używa własnego JSTS (ale starszej wersji) do wielu swoich operacji. Jeśli używasz JSTS bezpośrednio, masz dostęp do bardziej szczegółowego interfejsu API, który może zrobić znacznie więcej niż Turf. Zobacz github.com/bjornharrtell/jsts .
Björn Harrtell

Trudno mi było uruchomić JSTS w aplikacji do pisania maszynowego, a Turf.js działał od razu po wyjęciu z pudełka. JSTS jest bogatszy w funkcjonalność, ale na moje potrzeby Turf.js działał po prostu świetnie.
HankCa,

0

Możesz używać interfejsu API REST serwera ArcGIS niezależnie od używanego interfejsu API / języka. Zapewnia wszystkie metody narażone ....


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.