Intégration d’extension tierces#

L’extension Géoplateforme a été pensée comme un point d’entrée pour la mise en avant d’extensions QGIS tierces qui utilisent les données ou les API de la Géoplateforme.

Lors de l’installation de l’extension vous aurez la possibilité d’installer des extensions recommandées :

QGIS - Gestionnaire de dépendances d'extension

Cela correspond aux extensions listées comme dépendances :

Service

Plugin intégré

API de géocodage et de géocodage inversé

French Locator Filter

API de navigation pour des calculs d’itinéraire, d’isochrone et d’isodistance

GPF - Isochrone Isodistance Itinéraire

Si vous acceptez leur installation, des menus complémentaires seront disponibles dans l’extension Géoplateforme, correspondant à leurs capacités :

Menu du plugin Géoplateforme avec les sous-menus des plugins référencés


Référencement de votre extension dans le plugin Géoplateforme#

Les demandes d’ajout d’une extension comme recommendation par l’extension Géoplateforme doivent être traité via l’ouverture d’un ticket dans GitHub.

Faire une demande de référencement de son plugin tiers

Vous devez décrire votre extension, son utilisation de la Géoplateforme et indiquer si elle répond aux critères de référencement.

Critères de référencement#

  • le code source est sous une licence libre compatible avec QGIS (GPL2+ généralement)

  • le code source est librement accessible

  • l’auteur déclaré dans le fichier metadata.txt est l’interlocuteur technique avec qui échanger sur l’intégration

  • les versions supportées de QGIS (qgisMinimumVersion et qgisMaximumVersion) par le plugin Géoplateforme font partie de celles supportées par le plugin tiers

  • le plugin packagé publié sur un dépôt de plugins en accès public. Idéalement le dépôt officiel des extensions de QGIS.

  • le périmètre fonctionnel est complémentaire avec celui du plugin Géoplateforme (sans recouvrement)

  • les appels aux APIs de la Géoplateforme sont conformes aux conditions d’utilisation : rate limiting, authentification, cas d’usage autorisé…

Intégration technique#

Une fois votre demande validée, voici les étapes nécessaires pour finaliser l’intégration dans l’extension Géoplateforme.

Modifications dans le plugin Géoplateforme#

  1. Ajouter le plugin à la liste plugin_dependencies dans geoplateforme/metadata.txt

    plugin_dependencies=French Locator Filter,GPF - Isochrone Isodistance Itinéraire, Mon extension géoplateforme
    

    Cela correspond au nom affiché dans la recherche des extensions QGIS, défini dans la balise name de votre metadata.txt.

  2. Ajout du nom technique de votre plugin dans la constante GPF_PLUGIN_LIST dans geoplateforme/constants.py

    GPF_PLUGIN_LIST: list[str] = [
        "french_locator_filter",
        "gpf_isochrone_isodistance_itineraire",
        "my_geoplateforme_extension"
    ]
    

    Attention, cela ne correspond pas au nom affiché dans les extension QGIS mais au nom du répertoire contenu dans l’archive de votre extension.

    Ceci est nécessaire si vous souhaitez que des actions de votre extension soient ajoutées dans l’extension Géoplateforme.

Modifications à faire dans le plugin tiers#

Si vous souhaitez ajouter des actions de votre extension dans l’extension Géoplateforme, il est nécessaire d’ajouter la fonction create_gpf_plugins_actions dans la classe de votre extension.

Voici un exemple :

def create_gpf_plugins_actions(self, parent: QWidget) -> list[QAction]:
    """Create action to be inserted a Geoplateforme plugin

    :param parent: parent widget
    :type parent: QWidget
    :return: list of action to add in Geoplateforme plugin
    :rtype: list[QAction]
    """
    available_actions = []
    action_my_widget = QAction(
            self.tr("Mon composant graphique Géoplateforme"),
            self.iface.mainWindow(),
        )
    action_my_widget.triggered.connect(
        self._display_my_widget
    )
    return available_actions

Vous pouvez trouver des exemples plus complets dans les dépôts du French Locator Filter et de GPF - Isochrone Isodistance Itinéraire