Reine JavaScript-Bibliothek für Geometrieoperationen

21

Kennt jemand eine reine JavaScript-Bibliothek für Geometrieoperationen wie Puffer, Vereinigung, Überschneidungen usw.? Ich möchte mit diesen Vorgängen im Browser spielen. Es sieht so aus, als ob GeoScriptJS einige Abhängigkeiten hat.

atogle
quelle

Antworten:

15

Sie können sich die OpenLayers-API ansehen, insbesondere die Geometrieklassen . Sie können nach Schnittpunkten suchen und auf Scheitelpunkte usw. zugreifen. Ich habe in der Vergangenheit Punktpuffer nur mit OpenLayers implementiert. Gewerkschaften können jedoch schwieriger sein.

Bei komplexeren Vorgängen möchten Sie möglicherweise die Verarbeitung serverseitig ausführen und die Ergebnisse in WKT oder GeoJSON zurückgeben, die von OpenLayers angezeigt werden können. Ein Beispiel finden Sie in diesem Union-Tutorial .

Eine weitere mögliche Option ist Spatial Query, eine " JQuery-ähnliche Javascript-Bibliothek für die Verarbeitung räumlicher Mathematik ". Ich bin nicht sicher, wie gut es getestet ist, aber da die Quelle verfügbar ist, sollten Sie einen Blick darauf werfen.

Aktualisieren

Es gibt jetzt einen JavaScript-Port der JTS Topology Suite - https://github.com/bjornharrtell/jsts

geographika
quelle
Ich habe mir OpenLayers-Geometrien angesehen und denke, dass ich mit der Größenänderungsmethode die Geometrien skalieren kann, um pufferähnliche Ergebnisse zu erhalten. Aber Sie haben Recht, Gewerkschaften und Kreuzungen müssten alle manuell durchgeführt werden. Ach. Was ich wirklich brauche, ist eine reine JS-Portierung von JTS. JSTS? =)
Google
Ich habe mich viel umgesehen und glaube nicht, dass es wirklich eine umfassende, ausgereifte und reine JS-Lösung gibt. Spatial Query sieht im Moment wirklich wie das Beste aus, aber ich habe ein paar andere Repos auf GitHub gefunden, die hilfreich waren: github.com/shawnbot/geoff/blob/master/src/geoff.js und github.com/maxogden/ geojson-js-utils
atogle
@atogle - Es ist die Rede davon, die Geometriefunktionalität in OpenLayers in eine separate Bibliothek zu verschieben - osgeo-org.1803224.n2.nabble.com/…
geographika
gut zu wissen!
Google
22

Ich bin ziemlich fertig mit meinem JTS-Port, der ein reiner JS-Port ist und unter https://github.com/bjornharrtell/jsts verfügbar ist

In der aktuellen Version (0.9.1) wird die Kernfunktionalität von JTS unterstützt, womit ich Prädikate und Overlays meine.

Björn Harrtell
quelle
Hey, ich habe kürzlich JSTS 1.0 fertiggestellt, eine vollständige und aktuelle Version von JTS in modernem JavaScript. Erhältlich am selben Ort wie die Version 0.x.
Björn Harrtell
3

Sie könnten einen Blick auf Geoscript werfen (implementiert in mehreren Sprachen einschließlich JS)

simo
quelle
2
Ich bin mir ziemlich sicher, dass GeoScript JS nicht auf dem Client / Browser ausgeführt werden soll. Die Website sagt, es ist für RingoJS konzipiert. Es scheint auch JTS-Abhängigkeiten zu haben.
Google
1

Turf ist eine Javascript-Bibliothek, die viele räumliche Operationen bietet. Es ist auch modular aufgebaut, sodass Sie nur die Funktionen in das endgültige Skript aufnehmen können, die Sie benötigen.

Jeremy-George
quelle
Leider ist es in Bezug auf Geometrien und verfügbare Operationen stark eingeschränkt. Sie können Punkt in Polygon-Sachen tun, aber das scheint im Grunde es zu sein.
Bugmenot123
Turf verwendet tatsächlich mein eigenes JSTS (aber eine ältere Version) für viele seiner Operationen. Wenn Sie JSTS direkt verwenden, haben Sie Zugriff auf eine detailliertere API, die viel mehr kann als Turf. Siehe github.com/bjornharrtell/jsts .
Björn Harrtell
Ich fand es schwierig, JSTS in einer Typoskript-Anwendung zum Laufen zu bringen, und Turf.js funktionierte sofort. JSTS ist funktionsreicher, aber für meine Bedürfnisse hat Turf.js einfach großartig funktioniert.
HankCa
0

Sie können die ArcGIS-Server-REST-API unabhängig von der verwendeten API / Sprache verwenden. Es bietet alle Methoden ausgesetzt ....

Zahid Chaudhry
quelle