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.

atogle
źródło

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

geografia
źródło
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.

Björn Harrtell
źródło
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)

simo
źródło
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.

jeremy-george
źródło
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 ....

Zahid Chaudhry
źródło
0

Możesz odwoływać się do biblioteki geometrii JavaScriptu opensource @ geoJs .

Sunny Luthra
źródło