Territoires, utilisation du plugin

L’objectif du plugin est de fournir un nouvel objet éditorial couvrant l’ensemble des zones géographiques du continent à la subdivision minimale d’un pays. De fait, ce plugin pourrait à terme remplacer les plugins Pays, Continents, COG et Géographie en fournissant un objet unique et servir de pivot à d’autres plugins de géographie comme GIS, Contours ou Cartes Choroplèthes.

Présentation

L’objectif du plugin est de fournir un nouvel objet éditorial couvrant l’ensemble des zones géographiques du continent à la subdivision minimale d’un pays.

Le plugin fournit, les élément standard d’un objet éditorial « territoire », comme son interface privée (édition, liste, configuration) et une interface de peuplement des données à partir de l’API REST du plugin Nomenclatures. Il propose également un mécanisme d’extension des données attachées à chaque territoire.

Installation

Le plugin s’installe comme n’importe quel plugin SPIP. Il nécessite les plugin Saisies pour formulaires et Cache Factory.

Concepts

Les types de territoire

De façon à retrouver quelque peu la logique actuelle des objets géographiques et de coller à la standardisation, les objets « territoire » sont classés en quatre groupes ou types, à savoir :

  • Les zones, qui délimitent des zones supranationales par des regroupements de pays en continents, sous-continents et autres régions conformément à la norme UN M49. Le type est zone.
  • les pays, que l’on peut considérer comme le type pivot des territoires et dont la liste est issue de la norme ISO 3166-1. Le type associé aux pays est country ;
  • les subdivisions d’un pays, qui en organisent, conformément à la norme ISO 3166-2, la structure administrative à l’instar des länder en Allemagne ou des régions et départements en France. Le type associé est subdivision.
  • les infra-subdivisions d’un pays, qui raffinent les subdivisions standard mais ne font pas partie de la norme ISO 3166-2. Elles possèdent une identification spécifique qui varie d’un pays à un autre. C’est le cas, par exemple, des arrondissements, cantons et communes de France dont l’identifiant est le code INSEE ou des comtés américains identifiés par le code FIPS. Le type associé est infrasubdivision.
  • et depuis la version 1.5.0, les zones protégées, qui regroupent les parcs et réserves naturelles terrestres ou marines de tout genre. Elles possèdent une identification internationale fournit par l’organisation Protected Planet au travers de la base de données mondiale nommée WDPA. Le type associé est protected_zone.

Les catégories de territoire

La norme ISO 3166-2 attribue un code à chaque subdivision administrative d’un pays et identifie la catégorie de la subdivision : le land en Allemagne, la région, le département, la collectivité territoriale en France, le canton en Suisse, etc. Cette typologie est essentielle pour comprendre l’organisation administrative des pays.

Le plugin Territoires étend cette notion de catégorie aux autres types de territoire pour distinguer les continents des autres régions du monde (sous-continents par exemple), les pays des zones assimilées (non utilisé pour l’instant) et les infra-subdivisions entre elles.

L’identification des territoires

Codification primaire

Comme tout objet éditorial, un territoire possède un id unique. Néanmoins, il est nécessaire d’utiliser un identifiant unique et stable pour désigner chaque territoire. Le plugin utilise pour cela les normes en vigueur et propose un champ « iso_territoire » qui contient l’identifiant unique choisi :

  • Le code UN M49 à trois caractères numériques pour les zones du monde (extension du code numérique 3166-1 des pays) ;
  • Le code ISO 3166-1 alpha2 pour les pays ;
  • Le code ISO 3166-2 pour les subdivisions composé du code alpha2 du pays, un tiret et d’un code à trois caractères alphanumériques ;
  • Un code spécifique national pour les infra-subdivisions précédé par le code ISO 3166-1 alpha2 du pays (même principe que la norme ISO 3166-2),
  • Le code numérique international de l’organisation Protected Planet, à savoir, le WDPA ID.

L’hétérogénéité de cet identifiant n’est pas un problème car seule son unicité est importante.

Codifications alternatives

Si le plugin a fait un choix d’identifiant, il n’en reste pas moins que la plupart des territoires possèdent d’autres identifiants standardisés soit au niveau mondial soit au niveau national.
Par exemple, le pays possède 2 autres codes au sens de la norme ISO 3166-1, à savoir, le code alpha3 et le code numérique à trois chiffres.

Pour les subdivisions, leur caractère national fait qu’il existe en parallèle des codes nationaux comme celui de l’INSEE (COG) ou des codes communautaires comme les NUTS de l’union européenne.

Étant donné que ces codifications alternatives sont nombreuses et variées, elles ne sont pas intégrées à l’objet lui-même mais sont accessibles au travers d’une table complémentaire nommée spip_territoires_extras si l’utilisateur le souhaite.

La hiérarchisation des territoires

Parenté directe

Au sein de chaque type, l’organisation des territoires est hiérarchique (sauf pour les pays bien entendu). L’ensemble des objets territoire tout type confondu forme aussi une hiérarchie de l’objet « monde » à la plus petite subdivision ou infra-subdivision d’un pays.

Parenté alternative

Il est possible que certaines subdivisions possèdent un parent alternatif construit au travers du champ « iso_parent_alt » de l’objet territoire. C’est le cas des communes françaises qui, par défaut, appartiennent à un arrondissement mais peuvent aussi appartenir à une EPCI.

Raccourcis d’appartenance

Pour simplifier certaines requêtes et aussi conserver un mode d’interrogation existant dans les plugins de géographie actuels, la parenté directe est enrichie de liens d’appartenance qui redondent l’information de parenté mais évitent de parcourir toute l’arborescence.

Chaque objet territoire, si cela a un sens, possède donc un lien direct avec son pays d’appartenance ou son continent d’appartenance. Cela est particulièrement utile aux subdivisions ou infra-subdivisions liées à un pays et aux pays liés à un continent.

La description des territoires

Les normes ISO 3166 ou UN M49 fournissent à la fois un code d’identification unique du territoire mais aussi un nom normalisé. Ce nom est intégré à l’objet territoire dans le champ « iso_titre ».

Néanmoins, ce nom n’est pas utilisé comme titre de l’objet (au sens SPIP). Pour cela on utilise le nom d’usage qui parfois coïncide avec le nom de la norme mais parfois pas. C’est souvent le cas en français ou le nom normalisé possède souvent l’article entre parenthèses, article que l’on préfère souvent omettre dans les usages. Ainsi, l’objet territoire possède un champ « nom_usage » qui fait office de titre de l’objet. Les noms sont toujours des chaines multi-langues autorisant toutes les traductions supportées par SPIP.

Il est possible pour chaque objet territoire de saisir un descriptif qui pourra être affiché ensuite en regard de l’objet. Ce texte explicatif est le seul champ modifiable manuellement. Il est stocké comme une chaine multi-langues dans le champ « descriptif » de l’objet territoire.

Comme tout objet éditorial le territoire peut être agrémenté d’un logo entièrement géré par l’API SPIP correspondante.

Par défaut, l’objet territoire ne propose aucune caractéristique géographique comme la population, la densité, les contours géographiques, etc. Par contre, comme pour les codes alternatifs, le plugin propose une gestion agnostique des caractéristiques via la table de liens spip_territoires_extras.

Les unités de peuplement

Étant donné le nombre important de territoires, la structuration par type et la nécessité de conserver une logique arborescente, le peuplement des territoires ne peut se faire ni en une seule fois ni territoire par territoire. Les territoires sont donc peuplés par groupe, appelé « unité de peuplement ».

Une unité de peuplement coïncide soit avec un type, comme pour les régions du monde ou les pays, soit avec le couple (type, pays) comme pour les subdivisions, infra-subdivisions ou zones protégées.

De fait, les régions du monde et les pays sont chargés séparément et il n’est pas possible de choisir une liste de régions ou une liste de pays. A contrario, pour les subdivisions, zones protégées et infra-subdivisions, le chargement se fait par pays, par exemple, toutes les subdivisions de la France ou de l’Allemagne.

Le vidage des territoires suit la même logique par unité de peuplement pour assurer la cohérence d’ensemble des territoires.

L’interface utilisateur

L’interface utilisateur fournit par le plugin Territoires ne concerne que l’espace privé. Elle permet, au travers de plusieurs pages d’assurer les fonctions d’édition, de consultation, de peuplement et de configuration. Pour simplifier la navigation, ces pages sont accessibles par un menu de navigation unique.

Page liste des territoires

La page territoires affiche, comme tous les objets SPIP, la liste des territoires. Par défaut, tous les territoires sont listés et l’onglet « Tous » est activé. L’utilisateur a la possibilité d’afficher la liste des territoires pour un type donné via les onglets Zones, Pays, Subdivisions et Infra-subdivisions.

Il est aussi possible d’identifier la liste des territoires édités via un filtre de second niveau.

Liste des territoires

Page peuplement des territoires

La page peupler_territoires affiche, le formulaire de chargement ou de vidage d’un ensemble de territoires sous la forme de plusieurs onglets. Le formulaire #FORMULAIRE_PEUPLER_TERRITOIRES propose de choisir l’action (charger ou vider), les types de territoire à charger sachant que les subdivisions, infra-subdivisions ou les zones protégées sont proposées par pays afin d’éviter de charger trop de données en une fois.

Enfin, le formulaire propose des options de chargement pour ajouter les caractéristiques additionnelles ou les codes alternatifs.

Formulaire de peuplement

Page configuration du plugin

La configuration du plugin proprement dite se limite au choix des types d’objet pouvant se lier à un ou plusieurs territoires (page configurer_territoires).

Configuration

Page d’un objet territoire

La page territoire affiche la fiche objet de chaque territoire. Comme tous les objets SPIP elle est composée d’une zone centrale dans laquelle est affichée le titre, le descriptif du territoire et la hiérarchie des territoires ascendants si elle existe. Si des données additionnelles existent et ont été chargées pour le territoire choisi, elles sont affichées dans un tableau nommé « Caractéristiques » via le pipeline affiche_milieu.

Dans le prolongement de la fiche centrale le plugin affiche la liste des territoires enfants (si ils existent) via le pipeline affiche_enfants et le squelette prive/objets/contenu/territoire-enfants.html.

La boite d’information visualise outre l’id du territoire, son identifiant normalisé (champ « iso_territoire »), son type et sa catégorie. Elle est suivie par le bloc logo.

Enfin, via le pipeline affiche_gauche, le plugin affiche les codes alternatifs du territoire.

Fiche objet d’un territoire

Plugins connexes

Le plugin Territoires tire l’ensemble de ses données du plugin Nomenclatures (préfixe isocode) qui offre une API REST pour un certain nombre de données normalisées de type géographique ou linguistique. Pour ajouter des territoires non encore disponibles dans le plugin il faut en fait les rendre disponibles dans le plugin Nomenclatures. De fait, ces territoires seront automatiquement détectés par le plugin Territoires et proposés au chargement.

Le plugin Territoires sert aussi de base au plugin Contours des Territoires qui propose d’ajouter des contours GeoJSON aux territoires. Le plugin Territoires accueille ainsi le formulaire de chargement de Contours dans sa page de peuplement, le contour lui-même étant affiché dans la fiche objet du territoire comme un objet GIS. Les contours sont aussi mis à disposition au travers de l’API REST de Nomenclatures.

Évolutions à prévoir pour le plugin

  • Ajout des traductions des noms d’usage voire des titres normalisés (à faire dans le plugin Nomenclatures)
  • Permettre de consulter la liste des catégories disponibles pour un type donné

Pour aller plus loin avec la compréhension du plugin, un guide de conception en PDF est fourni avec le code.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom