GEOS é uma biblioteca C++ para realizar operações em geometrias vetoriais bidimensionais. É principalmente uma porta da biblioteca JTS Topology Suite Java. Ele fornece muitos dos algoritmos usados pelo PostGIS, o pacote Shapely para Python, o pacote sf para R e outros.
Mais informações estão disponíveis na página inicial do projeto.
O repositório oficial do Git está no GitHub.
IC | Status | IC | Status | IC | Status |
---|---|---|---|---|---|
GitHub | Bessie | Débora | |||
CI do GitLab | Bessie32 | Winnie | |||
Berrie | Drone | ||||
Berrie64 |
Veja o arquivo INSTALAR.
Consulte também o tutorial da API C e o tutorial da API C++. Existem exemplos de código no repositório de código.
GEOS promete estabilidade de longo prazo para a API C. Em geral, versões sucessivas da API C podem adicionar novas funções, mas não removerão ou alterarão tipos ou assinaturas de funções existentes. A biblioteca C usa a interface C++, mas a biblioteca C segue o controle de versão normal sensível a alterações da ABI, portanto, os programas que vinculam apenas à biblioteca C devem funcionar sem vincular novamente quando o GEOS for atualizado. Por esta razão, recomenda-se usar a API C para software que se destina a ser vinculado dinamicamente a uma instalação do sistema GEOS.
O programa geos-config
pode ser usado para determinar sinalizadores de compilador e vinculador apropriados para construção na biblioteca C:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
Todas as funcionalidades da API C estão disponíveis através do arquivo de cabeçalho geos_c.h
.
A documentação da API C é fornecida por meio de comentários no arquivo de cabeçalho geos_c.h
. Exemplos de uso da API C podem ser encontrados no diretório de exemplos.
A interface C++ para GEOS fornece uma API mais natural para programas C++, bem como funcionalidades adicionais que não foram expostas na API C. No entanto, os desenvolvedores que decidirem usar a interface C++ devem estar cientes de que GEOS não promete estabilidade de API ou ABI da API C++ entre os lançamentos. Mudanças significativas na API/ABI C++ normalmente não são anunciadas ou incluídas no arquivo NEWS.
O nome da biblioteca C++ mudará a cada versão secundária.
O programa geos-config
pode ser usado para determinar sinalizadores de compilador e vinculador apropriados para construção na biblioteca C++:
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
Um aviso do compilador pode ser emitido ao compilar na biblioteca C++. Para remover o aviso do compilador, defina USE_UNSTABLE_GEOS_CPP_API
em algum lugar do programa.
A funcionalidade comumente usada do GEOS está disponível no arquivo de cabeçalho geos.h
Funcionalidades menos comuns podem ser acessadas incluindo cabeçalhos para classes individuais, por exemplo, #include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
.
#include <geos.h>
Exemplos de uso de C++ podem ser encontrados no diretório de exemplos.
GEOS possui ligações em vários idiomas, veja a página de ligações.
A documentação da API pode ser gerada usando Doxygen. A documentação não está incluída na compilação padrão. Para construir a documentação, execute:
cmake -DBUILD_DOCUMENTATION=YES
cmake --build . --target docs
Para formatar seu código no estilo desejado, use a versão astyle incluída na árvore de origem:
tools/astyle.sh <yourfile.cpp>
Veja a documentação em testes/README.md.
geosop
- uma CLI para GEOS. A documentação está em util/geosop/README.md.