L'objectif de sgserver est d'exposer à sgupdt les cartes du Shom gérées dans un répertoire appelé shomgeotiff. Il est mis à jour régulièrement grâce à dashboard.
Le seul service exposé dans ce module est le serveur implémenté par le script index.php
;
Ce service est documenté selon la méthode de l'OpenApi au travers de l'URL ìndex.php/api
.
SHOMGT3_PORTFOLIO_PATH
: chemin du répertoire shomgeotiff
Ce répertoire ne doit pas être accessible depuis internet pour éviter un contournement du contrôle d'accès
Le répertoire shomgeotiff contient 2 sous-répertoires:
archives
qui contient un sous-répertoire par carte du portefeuille contenant:- d'une part la liste des versions conservées pour cette carte avec pour chaque version:
- un fichier
{mapNum}-{version}.7z
correspondant au fichier 7z livré par le Shom, - un fichier
{mapNum}-{version}.md.json
contenant quelques champs de métadonnées, spécifiés ci-dessous, extraits des MD ISO 19139 de la carte
- un fichier
- d'autre part, si la carte est obsolète un fichier
{mapNum}-{date}.md.json
contenant{"status": "obsolete"}
- d'une part la liste des versions conservées pour cette carte avec pour chaque version:
current
qui contient- d'une part pour chaque carte non obsolète 2 liens symboliques:
- nommé
{mapNum}.7z
vers l'archive 7z de sa dernière version - nommé
{mapNum}.md.json
vers le fichier de MD simplifié de sa dernière version
- nommé
- d'autre part pour chaque carte obsolète 1 lien symbolique vers le le fichier
{mapNum}-{date}.md.json
- d'une part pour chaque carte non obsolète 2 liens symboliques:
Le fichier {mapNum}.md.json
dontient les champs suivants extraits des MD ISO 19139 de la carte:
title
: titre de la carte extrait de//gmd:identificationInfo/*/gmd:citation/*/gmd:title/*
alternate
: titre alternatif éventuel ou '', extrait de //gmd:identificationInfo//gmd:citation//gmd:alternateTitle/*version
: version de la carte sous la forme{annee}c{#correction}
déduit du champedition
edition
: recopie du champ//gmd:identificationInfo/*/gmd:citation/*/gmd:edition/*
gan
: si la semaine GAN est définie dans le champ edition alors structure composée des 2 sous-champs:week
: le numéro de la semaine fourni par le Shomdate
: la date correspondante au numéro de la semaine
dateMD
: date de création ou mise à jour structurée par les 2 sous-champstype
: 'creation' ou 'revision'value
: valeur de la date sous la forme YYYY-MM-DD
dateArchive
: date du fichier tif/pdf principal dans l'archive, dans de nombreux cas la meilleure estimation de date
Exemple d'un fichier pour lequel le champ gan
est défini
{
"title": "7107 - Port de La Trinité-Sur-Mer, Port du Crouesty - Entrée du Golfe du Morbihan",
"alternate": "",
"version": "2023c0",
"edition": "Edition n° 3 - 2023 - Dernière correction : 0 - GAN : 2319",
"gan": {
"week": "2319",
"date": "2023-05-10"
},
"dateMD": {
"type": "revision",
"value": "2023-05-10"
},
"dateArchive": "2023-05-11"
}
Exemple d'un fichier pour lequel le champ gan
n'est pas défini
{
"title": "6680 - De l'Ile d'Ouessant à l'Ile de Batz",
"alternate": "",
"version": "2003c87",
"edition": "Edition n° 3 - 2003 - Dernière correction : 87",
"gan": null,
"dateMD": {
"type": "revision",
"value": "2003-05-01"
},
"dateArchive": "2022-06-09"
}
Exemple d'un fichier pour lequel le champ alternate
est défini
{
"title": "7291 - De Piombino à Fiumicino et côte Est de Corse",
"alternate": "fac-similé de la carte carte IT n°913 publiée en 1990 (édition février 2020)",
"version": "2021c4",
"edition": "Edition n° 3 - 2021 - Dernière correction : 4 - GAN : 2249",
"gan": {
"week": "2249",
"date": "2022-12-07"
},
"dateMD": {
"type": "revision",
"value": "2022-12-07"
},
"dateArchive": "2022-12-08"
}
Dans certains cas, la date de révision indiquée dans les MD ISO 19139 est manifestement fausse.
Dans l'exemple de la carte 6680 ci-dessus, la date de révision (2003-05-01) n'est pas la date de la correction 87 mais la date de la version initiale de l'édition de 2003. Ainsi dans ce cas il n'est pas possible de connaître la vraie date de révision de la carte à partir des MD ISO 19139.
Le serveur de carte est implémenté par le script index.php
qui inclue le fichier SevenZipArchive.php
.
L'API du serveur est défini dans le fichier api.yaml.
Le serveur se fonde sur les liens présents dans le répertoire current
de shomgeotiff.
Le contenu des fichiers {num}.md.json
permet de remplir le champ lastVersion
du point d'accès /maps.json
ou d'indiquer que la carte est obsolète.
Ce module correspond au package shomgt\sgserver de la doc PhphDoc.
Dans certains cas, l'année d'édition mentionnée dans les MD ISO 19139 est fausse. Il est donc utile de vérifier cette année en la comparant à celle indiquée sur la carte et si nécessaire de la corriger avec un éditeur de texte.
Le code source de ce module est documenté dans le package shomgt\sgserver de PHPDoc.