Libreria JavaScript pura per operazioni di geometria


21

Qualcuno conosce una libreria JavaScript pura per eseguire operazioni di geometria come buffer, unione, incroci, ecc? Voglio giocare facendo queste operazioni nel browser. Sembra che GeoScriptJS abbia alcune dipendenze.

Risposte:


15

Puoi guardare l'API OpenLayers, in particolare le classi Geometry . Puoi verificare la presenza di incroci e avere accesso ai vertici, ecc. In passato ho implementato buffer di punti solo con OpenLayers. I sindacati possono essere più complicati però.

Per operazioni più complesse potresti voler eseguire l'elaborazione sul lato server e restituire i risultati in WKT o GeoJSON, entrambi i quali possono essere visualizzati da OpenLayer. Vedi questo tutorial dell'Unione per un esempio.

Un'altra opzione possibile è Spatial Query, una " libreria Javascript come JQuery per la gestione della matematica spaziale ". Non sono sicuro di quanto sia ben testato, ma poiché la fonte è disponibile dovresti dare un'occhiata.

Aggiornare

Ora esiste una porta JavaScript della suite di topologia JTS - https://github.com/bjornharrtell/jsts


Ho esaminato le geometrie di OpenLayers e penso che il metodo di ridimensionamento mi consentirebbe di ridimensionare le geometrie per ottenere risultati simili a buffer. Ma hai ragione, fare sindacati e incroci dovrebbe essere fatto manualmente. Ahimè. Quello di cui ho veramente bisogno è una pura porta JS di JTS. JSTS? =)
atogle il

Mi sono guardato molto intorno e non credo che esista davvero una soluzione JS completa, matura e pura. Spatial Query sembra davvero la cosa migliore per ora, ma ho trovato alcuni altri repository su GitHub che sono stati utili: github.com/shawnbot/geoff/blob/master/src/geoff.js e github.com/maxogden/ geojson-js-utils
atogle

@atogle - si parla di spostare la funzionalità geometrica in OpenLayers in una libreria separata - osgeo-org.1803224.n2.nabble.com/…
geographika

buono a sapersi!
atogle,

22

Ho praticamente finito con la mia porta di JTS che è una porta JS pura ed è disponibile su https://github.com/bjornharrtell/jsts

Nella versione corrente (0.9.1) supporta la funzionalità principale di JTS, con cui intendo predicati e overlay.


Ehi, di recente ho terminato JSTS 1.0 che è un port completo e aggiornato di JTS in JavaScript moderno. Disponibile nello stesso posto della versione 0.x.
Björn Harrtell,

3

Potresti dare un'occhiata al geoscript (implementato in diversi linguaggi tra cui JS)


2
Sono abbastanza sicuro che GeoScript JS non è progettato per essere eseguito sul client / browser. Il sito dice che è progettato per RingoJS. Sembra anche avere dipendenze JTS.
atogle,


1

Turf è una libreria javascript che fornisce molte operazioni spaziali. È anche modulare, quindi è possibile includere solo le funzioni necessarie nello script finale.


Purtroppo è fortemente limitato in termini di geometrie e operazioni disponibili. Puoi fare riferimento a cose poligonali, ma sembra fondamentalmente.
bugmenot123,

Turf attualmente utilizza il mio JSTS (ma una versione precedente) per molte delle sue operazioni. Se usi direttamente JSTS hai accesso a un'API più dettagliata che può fare molto di più di Turf. Vedi github.com/bjornharrtell/jsts .
Björn Harrtell,

Ho trovato difficile far funzionare JSTS in un'applicazione dattiloscritta e Turf.js ha funzionato immediatamente. JSTS è più ricco di funzionalità, ma per le mie esigenze Turf.js ha funzionato alla grande.
HankCa il

0

È possibile utilizzare l'API REST del server ArcGIS indipendentemente dall'API / lingua che si sta utilizzando. Fornisce tutti i metodi esposti ....


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.