GEOS est une bibliothèque C++ permettant d'effectuer des opérations sur des géométries vectorielles bidimensionnelles. Il s'agit principalement d'un portage de la bibliothèque Java JTS Topology Suite. Il fournit de nombreux algorithmes utilisés par PostGIS, le package Shapely pour Python, le package sf pour R, etc.
Plus d’informations sont disponibles sur la page d’accueil du projet.
Le référentiel Git officiel se trouve sur GitHub.
CI | Statut | CI | Statut | CI | Statut |
---|---|---|---|---|---|
GitHub | ![]() | Bessie | Debbie | ||
GitLabCI | Bessie32 | Winnie | |||
Berrie | Drone | ||||
Berrie64 |
Voir le fichier INSTALL.
Voir également le didacticiel API C et le didacticiel API C++. Il existe des exemples de code dans le référentiel de code.
GEOS promet la stabilité à long terme de l'API C. En général, les versions successives de l'API C peuvent ajouter de nouvelles fonctions mais ne supprimeront ni ne modifieront les types ou signatures de fonctions existants. La bibliothèque C utilise l'interface C++, mais la bibliothèque C suit une gestion de version normale sensible aux changements ABI, de sorte que les programmes qui se lient uniquement à la bibliothèque C devraient fonctionner sans nouvelle liaison lorsque GEOS est mis à niveau. Pour cette raison, il est recommandé d'utiliser l'API C pour les logiciels destinés à être liés dynamiquement à une installation système de GEOS.
Le programme geos-config
peut être utilisé pour déterminer les indicateurs appropriés du compilateur et de l'éditeur de liens pour la construction avec la bibliothèque C :
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos_c
Toutes les fonctionnalités de l'API C sont disponibles via le fichier d'en-tête geos_c.h
.
La documentation de l'API C est fournie via les commentaires dans le fichier d'en-tête geos_c.h
. Des exemples d'utilisation de l'API C peuvent être trouvés dans le répertoire des exemples.
L'interface C++ de GEOS fournit une API plus naturelle pour les programmes C++, ainsi que des fonctionnalités supplémentaires qui n'ont pas été exposées dans l'API C. Cependant, les développeurs qui décident d'utiliser l'interface C++ doivent savoir que GEOS ne promet pas la stabilité API ou ABI de l'API C++ entre les versions. Les modifications majeures apportées à l'API/ABI C++ ne sont généralement pas annoncées ni incluses dans le fichier NEWS.
Le nom de la bibliothèque C++ changera à chaque version mineure.
Le programme geos-config
peut être utilisé pour déterminer les indicateurs appropriés du compilateur et de l'éditeur de liens pour la construction avec la bibliothèque C++ :
CFLAGS += `geos-config --cflags`
LDFLAGS += `geos-config --ldflags` -lgeos
Un avertissement du compilateur peut être émis lors de la construction avec la bibliothèque C++. Pour supprimer l'avertissement du compilateur, définissez USE_UNSTABLE_GEOS_CPP_API
quelque part dans le programme.
Les fonctionnalités couramment utilisées de GEOS sont disponibles dans le fichier d'en-tête geos.h
Des fonctionnalités moins courantes sont accessibles en incluant des en-têtes pour des classes individuelles, par exemple #include <geos/algorithm/distance/DiscreteHausdorffDistance.h>
.
#include <geos.h>
Des exemples d'utilisation du C++ peuvent être trouvés dans le répertoire des exemples.
GEOS propose des liaisons dans de nombreuses langues, voir la page des liaisons.
La documentation de l'API peut être générée à l'aide de Doxygen. La documentation n'est pas incluse dans la version par défaut. Pour créer la documentation, exécutez :
cmake -DBUILD_DOCUMENTATION=YES
cmake --build . --target docs
Pour formater votre code dans le style souhaité, utilisez la version astyle incluse dans l'arborescence des sources :
tools/astyle.sh <yourfile.cpp>
Voir la documentation dans tests/README.md.
geosop
- une CLI pour GEOS. La documentation est dans util/geosop/README.md.