===== Intégration de composants géographiques dans d'autres applications ===== Les fonctionnalités géographiques de QGis 3 peuvent être intégrées dans d'autres applications grâce à l'API QGis, publiée sous licence GPL, grâce aux langages C++ et Python 3. Les documentations en [[http://qgis.org/api/|C++]] et [[https://qgis.org/pyqgis/master/|Python]] sont disponibles pour consulter toutes les fonctions existantes de l'API. Les classes commencent donc toutes par « Qgs » (QgsPoint, QgsMapCanvas, etc.).\\ Le nom d'un membre de classe ("class member") commence par un « m » minuscule (mMapCanvas, mCurrentExtent). == Exemple avec la classe QgsPoint : == La classe QgsPoint permet de représenter une géométrie de type Point.\\ La documentation fournit une courte description de la classe et une plus détaillée : {{ :fonctions:automatisation:composants:qgspoint_class_reference.png?700 |}} {{ :fonctions:automatisation:composants:qgspoint_detailed_description.png?700 |}} Ensuite, on retrouve la liste de toutes les fonctions, publiques ou protégées, et les propriétés (membres) de la classe avec une courte description de celles-ci : {{ :fonctions:automatisation:composants:qgspoint_public_member_functions.png?700 |}} {{ :fonctions:automatisation:composants:qgspoint_protected_properties_additional.png?700 |}} Enfin, les fonctions sont documentées plus précisément avec la description de ses arguments, et parfois un exemple d'utilisation :\\ //Constructeur de la classe QgsPoint : //\\ {{ :fonctions:automatisation:composants:qgspoint_constructor_destructor_doc.png?700 |}} //Méthode distance() de la classe QgsPoint : //\\ {{ :fonctions:automatisation:composants:qgspoint_distance_function_documentation.png?700 |}} == Exemples de codes == * Le code C++ [[https://gis.stackexchange.com/a/119894|consultable ici]] lit un fichier shape et le visualise dans une fenêtre. * Le code python [[http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/canvas.html?highlight=canvas#using-map-tools-with-canvas|présent à cette adresse]] crée une fenêtre qui contient un canevas de la carte et des outils de base pour zoomer ou obtenir une vue panoramique. Les actions sont créées pour l'activation de chaque outil : le panoramique se fait avec QgsMapToolPan, le zoom avec des instances de QgsMapToolZoom. Les actions sont définies comme contrôlables et plus tard attribuées aux outils permettant la gestion automatique de l'état coché/décoché des différentes actions -- quand un outil est activé, son action est cochée et l'action de l'outil de la carte précédente est décochée (traduction libre).