GEOS es una biblioteca de C++ para realizar operaciones en geometrías vectoriales bidimensionales. Es principalmente una adaptación de la biblioteca Java JTS Topology Suite. Proporciona muchos de los algoritmos utilizados por PostGIS, el paquete Shapely para Python, el paquete sf para R y otros.
Más información está disponible en la página de inicio del proyecto.
El repositorio oficial de Git está en GitHub.
CI | Estado | CI | Estado | CI | Estado |
---|---|---|---|---|---|
GitHub | bessi | debbie | |||
GitLab CI | bessie32 | Winnie | |||
berrie | Dron | ||||
berrie64 |
Vea el archivo de INSTALACIÓN.
Consulte también el tutorial de la API de C y el tutorial de la API de C++. Hay ejemplos de código en el repositorio de códigos.
GEOS promete estabilidad a largo plazo de la API C. En general, las versiones sucesivas de la API de C pueden agregar nuevas funciones, pero no eliminarán ni cambiarán los tipos o firmas de funciones existentes. La biblioteca C usa la interfaz C++, pero la biblioteca C sigue el control de versiones normal sensible a cambios ABI, por lo que los programas que se vinculan solo con la biblioteca C deberían funcionar sin volver a vincularse cuando se actualiza GEOS. Por este motivo, se recomienda utilizar la API C para el software destinado a vincularse dinámicamente a una instalación del sistema de GEOS.
El programa geos-config
se puede utilizar para determinar los indicadores apropiados del compilador y del enlazador para construir con la biblioteca C:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
Toda la funcionalidad de la API de C está disponible a través del archivo de encabezado geos_c.h
.
La documentación para la API de C se proporciona a través de comentarios en el archivo de encabezado geos_c.h
. Los ejemplos de uso de la API de C se pueden encontrar en el directorio de ejemplos.
La interfaz C++ para GEOS proporciona una API más natural para programas C++, así como funcionalidad adicional que no ha sido expuesta en la API C. Sin embargo, los desarrolladores que decidan utilizar la interfaz C++ deben tener en cuenta que GEOS no promete estabilidad API o ABI de la API C++ entre versiones. Los cambios importantes en la API/ABI de C++ normalmente no se anuncian ni se incluyen en el archivo NEWS.
El nombre de la biblioteca C++ cambiará en cada versión menor.
El programa geos-config
se puede utilizar para determinar los indicadores apropiados del compilador y del enlazador para compilar con la biblioteca C++:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
Es posible que se emita una advertencia del compilador al compilar con la biblioteca C++. Para eliminar la advertencia del compilador, defina USE_UNSTABLE_GEOS_CPP_API
en algún lugar del programa.
La funcionalidad de uso común de GEOS está disponible en el archivo de encabezado geos.h
Se puede acceder a funciones menos comunes incluyendo encabezados para clases individuales, por ejemplo #include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
.
#include <geos.h>
Los ejemplos de uso de C++ se pueden encontrar en el directorio de ejemplos.
GEOS tiene enlaces en muchos idiomas, consulte la página de enlaces.
La documentación API se puede generar utilizando Doxygen. La documentación no está incluida en la compilación predeterminada. Para construir la documentación, ejecute:
cmake -DBUILD_DOCUMENTATION=YES
cmake --build . --target docs
Para formatear su código en el estilo deseado, use la versión astyle incluida en el árbol fuente:
tools/astyle.sh <yourfile.cpp>
Consulte la documentación en tests/README.md.
geosop
: una CLI para GEOS. La documentación está en util/geosop/README.md.