Biblioteca de JavaScript puro para operaciones de geometría

21

¿Alguien sabe de una biblioteca de JavaScript puro para realizar operaciones de geometría como búfer, unión, intersecciones, etc.? Quiero jugar haciendo estas operaciones en el navegador. Parece que GeoScriptJS tiene algunas dependencias.

atogle
fuente

Respuestas:

15

Puedes mirar la API de OpenLayers, particularmente las clases de Geometría . Puede verificar intersecciones y tener acceso a vértices, etc. He implementado puntos intermedios en el pasado solo con OpenLayers. Sin embargo, los sindicatos pueden ser más complicados.

Para operaciones más complejas, es posible que desee realizar el procesamiento del lado del servidor y devolver los resultados en WKT o GeoJSON, que pueden mostrarse en ambos OpenLayers. Consulte este tutorial de Union para ver un ejemplo.

Otra opción posible es Spatial Query, una " biblioteca JQuery como Javascript para manejar matemáticas espaciales ". No estoy seguro de lo bien probado que está, pero como la fuente está disponible, debería echar un vistazo.

Actualizar

Ahora hay un puerto JavaScript de JTS Topology Suite: https://github.com/bjornharrtell/jsts

geographika
fuente
Miré las geometrías de OpenLayers y creo que el método de cambio de tamaño me permitiría escalar las geometrías para obtener resultados similares a los del búfer. Pero tiene razón, hacer uniones e intersecciones tendría que hacerse manualmente. Pobre de mí. Lo que realmente necesito es un puerto JS puro de JTS. JSTS? =)
atogle
He mirado mucho a mi alrededor y no creo que exista realmente una solución JS completa, madura y pura. Spatial Query realmente parece lo mejor que hay por ahora, pero encontré algunos otros repositorios en GitHub que fueron útiles: github.com/shawnbot/geoff/blob/master/src/geoff.js y github.com/maxogden/ geojson-js-utils
atogle
@atogle - se habla de mover la funcionalidad de geometría en OpenLayers a una biblioteca separada - osgeo-org.1803224.n2.nabble.com/…
geographika
¡bueno saber!
atogle
22

Ya he terminado con mi puerto de JTS, que es un puerto JS puro y está disponible en https://github.com/bjornharrtell/jsts

En la versión actual (0.9.1) es compatible con la funcionalidad central de JTS, por lo que me refiero a predicados y superposiciones.

Björn Harrtell
fuente
Hola, recientemente terminé JSTS 1.0, que es un puerto completo y actualizado de JTS en JavaScript moderno. Disponible en el mismo lugar que la versión 0.x.
Björn Harrtell
3

Puede echar un vistazo al geoscript (implementado en varios idiomas, incluido JS)

simo
fuente
2
Estoy bastante seguro de que GeoScript JS no debe ejecutarse en el cliente / navegador. El sitio dice que está diseñado para RingoJS. También parece tener dependencias JTS.
atogle
1

Turf es una biblioteca de JavaScript que proporciona muchas operaciones espaciales. También es modular, por lo que solo puede incluir las funciones que necesita en el script final.

jeremy-george
fuente
Desafortunadamente, está seriamente limitado en términos de geometrías y operaciones disponibles. Puedes hacer puntos en cosas de polígonos, pero eso parece ser básicamente eso.
bugmenot123
Turf en realidad usa mi propio JSTS (pero una versión anterior) para muchas de sus operaciones. Si usa JSTS directamente, tiene acceso a una API más detallada que puede hacer mucho más que Turf. Ver github.com/bjornharrtell/jsts .
Björn Harrtell
Me resultó difícil hacer que JSTS funcionara en una aplicación mecanografiada y Turf.js funcionó de inmediato. JSTS es más rico en funcionalidad, pero para mis necesidades Turf.js funcionó de maravilla.
HankCa
0

Puede usar la API REST del servidor ArcGIS independientemente de la API / idioma que esté utilizando. Proporciona todos los métodos expuestos ...

Zahid Chaudhry
fuente
0

Puede consultar la biblioteca de geometría javascript de código abierto @ geoJs .

Sunny Luthra
fuente