API Documentation
Table of Contents
Namespaces
Classes
- Access
- Regroupe la logique du contrôle d'accès
- Cache
- classe statique implémentant la gestion du cache des tuiles
- EnvVar
- gestion des variables d'environnement et de leur valeur par défaut
- GeoJsonPolygon
- GeoJSON Polygon transformé en GBox
- GdalInfo
- extrait des infos d'un fichier JSON généré par gdalinfo
- GeoTiff
- un GéoTiff Shom qui sait notamment se décomposer en dalles
- Http
- classe portant le méthode getHttpError()
- Style
- Définition d'un Style de représentation graphique des objets vecteurs inspiré de celui utilisé par Leaflet
- GeoRefImage
- représente une image géo-référencée
- IsoMd
- Récupération de MD ISO d'un GéoTiff
- Layer
- classe abstraite correspondant à une couche du serveur de cartes
- PyrLayer
- couche Pyramide
- LabelLayer
- couche d'étiquettes, permet de dessiner les étiquettes associées aux GéoTiffs
- TiffLayer
- couche correspondant à un ensemble de GéoTiff juxtaposés
- TempMapCat
- charge le catalogue de cartes et sait retourner pour un gtname les infos correspondantes
- MySql
- Classe simplifiant l'utilisation de MySql
- MySqlResult
- la classe MySqlResult permet d'utiliser le résultat d'une requête comme un itérateur
- SExcept
- Exception avec code string
- StyleLib
- Gestion de la bibliothèque des styles stockée dans le fichier yaml
- VectorLayer
- Couche d'objets vecteur + dictionnaire de ces couches
- WmsServer
- classe abstraite WmsServer de gestion du dialogue du serveur avec le client
- WmsServerTest
- Test d'utilisation de la classe WmsServer
- Zoom
- classe regroupant l'intelligence autour du tuilage et des niveaux de zoom
- PhpBlock
- Block de code Php encadré par { et }
- PhpClass
- Block correspondant à la définition d'une classe
- PhpFunction
- Block correspondant à la définition d'une fonction ou d'une méthode
- DefiningFile
- Fichier Php avec les blocs dont certains sont des définitions de classe ou fonction
- PhpFile
- Fichier Php analysé avec son chemin relatif et organisation des fichiers en un arbre
- FileIncGraph
- graphe d'inclusions entre fichiers et de fichier dans lequel une classe est définie
- UseGraph
- Graphe d'utilisation des classes et fonctions
- A
- Test de l'héritage de méthode statique
- B
- Test de l'héritage de méthode statique
- Token
- simplification de l'utilisation des tokens Php
- TokenArray
- Les tokens correspondant à un fichier gérés comme un array de Token.
- PhpUse
- classe abstraite des utilisations
- FunctionCall
- appel de fonction
- NewCall
- création d'un objet d'une classe
- StaticMethodCall
- Appel d'une méthode statique d'une classe
- NonStaticMethodCall
- Appel d'une méthode non statique d'une classe généralement inconnue
- PhpExtends
- Utilisation d'une classe par création d'une sous-classe
- UsingFile
- Fichier Php avec les utilisations de fonctions et classes
- LayerDef
- Définit les couches std et spéciales, permet de savoir à laquelle un GéoTiff appartient
- ShomGt
- construction progressive du futur contenu de layers.yaml ; un objet ShomGT décrit un géoTiff
- Lock
- Verrou d'utilisation pour garantir que le script n'est pas utilisé plusieurs fois simultanément.
- UpdtMaps
- stocke les informations téléchargées de $SERVER_URL/maps.json
- ShomGtDelZone
- lit dans le fichier layers.yaml les zones effacées et permet de les comparer par mapnum avec celles à effacer de mapcat.yaml
- GtMaps
- classe regroupant qqs méthodes statiques de gestion de l'API maps
- WmsShomGt
- classe implémentant le serveur WMS de ShomGt.
- WmsvShomGt
- classe implémentant le serveur WMS-Vecteur de ShomGt.
Constants
- CMDE_VERBOSE = 1
- COOKIE_NAME = 'shomusrpwd'
- nom du cookie utilisé pour le login
- EXCLUDED_MAPS_IN_V0 = ['8523']
- cartes exclues du service en V0 car incompatible avec sgupdt v0.6
- HTTP_ERROR_CODES = [ 204 => 'No Content', // Requête traitée avec succès mais pas d’information à renvoyer. 400 => 'Bad Request', // paramètres en entrée incorrects 401 => 'Unauthorized', // Une authentification est nécessaire pour accéder à la ressource. 403 => 'Forbidden', // accès interdit 404 => 'File Not Found', // ressource demandée non disponible 410 => 'Gone', // La ressource n'est plus disponible et aucune adresse de redirection n’est connue 500 => 'Internal Server Error', ]
- liste de qqs codes d'erreur Http avec leur label
- JEUX_TESTS = ["Cas ok sans cartouche, ni mapsFrance" => ['yaml' => <<<EOT title: "De Port-Barcarès à l'embouchure de l'Aude" scaleDenominator: '50.200' spatial: SW: "42°43,64'N - 002°56,73'E" NE: "43°13,44'N - 003°24,43'E" EOT ], "Cas ok avec cartouches, sans pp, ni mapsFrance" => ['yaml' => <<<EOT title: 'Port Phaeton (Teauaa) - Tapuaeraha' insetMaps: - title: 'A - Port Phaeton (Teauaa)' scaleDenominator: '10.000' spatial: { SW: '17°46,45''S - 149°20,54''W', NE: '17°43,66''S - 149°18,45''W' } - title: 'B - Tapuaeraha' scaleDenominator: '10.000' spatial: { SW: '17°49,06''S - 149°19,56''W', NE: '17°46,28''S - 149°17,47''W' } EOT ], "Cas ok sans cartouche, ni mapsFrance, avec scaleDenominator flottant" => ['yaml' => <<<EOT title: "De Port-Barcarès à l'embouchure de l'Aude" scaleDenominator: 50.200 spatial: SW: "42°43,64'N - 002°56,73'E" NE: "43°13,44'N - 003°24,43'E" EOT ], "Cas ok sans cartouche, ni mapsFrance, avec scaleDenominator >= 1M" => ['yaml' => <<<EOT title: 'Des îles Baléares à la Corse et à la Sardaigne' scaleDenominator: 1.000.000 spatial: SW: '35°30,00''N - 002°00,00''E' NE: '45°23,00''N - 010°12,00''E' EOT ], "Cas KO sans cartouche, ni spatial, ni mapsFrance" => ['yaml' => <<<EOT title: "De Port-Barcarès à l'embouchure de l'Aude" scaleDenominator: '50.200' EOT ], "Cas yaml KO" => ['yaml' => <<<EOT title 'Port Phaeton (Teauaa) - Tapuaeraha' insetMaps: - title: 'A - Port Phaeton (Teauaa)' scaleDenominator: '10.000' spatial: { SW: '17°46,45''S - 149°20,54''W', NE: '17°43,66''S - 149°18,45''W' } - title: 'B - Tapuaeraha' scaleDenominator: '10.000' spatial: { SW: '17°49,06''S - 149°19,56''W', NE: '17°46,28''S - 149°17,47''W' } EOT ]]
- Enregistrements test pour tester la méthode validatesAgainstSchema()
- JSON_OPTIONS = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR
- JSON_OPTIONS = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR
- JSON_OPTIONS = \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE | \JSON_THROW_ON_ERROR
- JSON_OPTIONS = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR
- LGEOJSON_STYLE = ['color' => 'blue', 'weight' => 2, 'opacity' => 0.3]
- MIME_TYPES = ['.png' => 'image/png', '.jpg' => 'image/jpeg', '.tif' => 'image/tiff', '.pdf' => 'application/pdf', '.xml' => 'text/xml; charset="utf-8"', '.7z' => 'application/x-7z-compressed', '.txt' => 'text/plain; charset="utf-8"', '.json' => 'application/json; charset="utf-8"']
- NB_SECONDS_IN_CACHE = 0.5 * 24 * 60 * 60
- nb secondes en cache pour le navigateur si <> 0
- SERVER_TILECACHE = \true
- mise en cache des tuiles sur le serveur
- SGSERVER_VERSION = '4'
- SHOMGEOTIFF = '/var/www/html/shomgeotiff'
- SPECIAL_MAPS = ['7330', '7344', '7360', '8101', '8502', '8509', '8510', '8517', '8523']
- cartes spéciales traitées spécialement en version < 4
- TEST_MAPS = []
- liste limitée de cartes pour tests
Functions
- menu() : void
- sendMail() : void
- test d'envoi d'un mail
- menu() : void
- addUndescoreForThousand() : string
- pour un entier fournit une représentation avec un '_' comme séparateur des milliers
- config() : string|array<string, mixed>
- error() : never
- en cas d'erreur dans la génération
- sendErrorTile() : never
- Création et affichage d'une image d'erreur
- execCmde() : array<string, string|int>
- execCmde - exécute une commande Linux - enrobage de exec()
- download() : int
- téléchargement d'un fichier en utilisant la commande wget
- geotiffs() : array<int, string>
- liste des GeoTiffs
- log_table_schema() : string
- retourne la commande SQL de création de la table
- write_log() : bool
- enregistrement d'un log
- readMapVersion() : array{version: string, dateStamp: string}
- extrait du fichier MD ISO dont le path est fourni la version de la carte et la date dateStamp
- logRecord() : void
- enregistrement d'un log temporaire pour aider au déverminage
- sendHttpCode() : void
- Génère une erreur Http et un message utilisateur avec un content-type text ; enregistre un log avec un éventuel message sys
- obsoleteMaps() : array<int, string>
- Lecture dans maps.json de la liste des nums des cartes obsolètes.
- findCurrentMapVersion() : string
- Renvoit le libellé de la version courante de la carte $mapnum ou '' si la carte n'existe pas
- expand() : void
- expanse une carte téléchargée comme 7z au path indiqué
- dlExpandInstallMap() : string
- télécharge la carte, l'expanse et l'installe dans le répertoire courant, retourne le libellé du code http
- error() : never
- affiche le message d'erreur puis met fin au script avec un code 1
- menu() : void
- execCmdeTest() : int
- test d'appel.
- error() : never
- affiche un message et termine le script avec un code retour de 1
- coordDM() : string
- affichage en degrés minutes décimales avec 2 chiffres significatifs
- latLonDM() : string
- affichage lat,lon dans le format de l'exemple
- cornersOfRects() : array<int, TGeoJsonFeature>
- extraction des coins des rectangles englobants définis dans un array de Features GeoJSON, renvoit un array de Features
- shomGTVersion() : int
- indique la version ShomGT
- findCurrentMapVersionV4() : string
- Retourne le libellé de la version courante de la carte $mapnum (Code en ShomGT V4).
- findCurrentMapVersionV3() : string
- Retourne le libellé de la version courante de la carte $mapnum (Code en ShomGT V3).
- findCurrentMapVersion() : string
- Retourne le libellé de la version courante de la carte $mapnum (Code en ShomGT V3 ou V4).
- logRecord() : void
- enregistrement d'un log temporaire pour afficher des infos, par ex. estimer les performances
Constants
CMDE_VERBOSE
public
mixed
CMDE_VERBOSE
= 1
COOKIE_NAME
nom du cookie utilisé pour le login
public
mixed
COOKIE_NAME
= 'shomusrpwd'
EXCLUDED_MAPS_IN_V0
cartes exclues du service en V0 car incompatible avec sgupdt v0.6
public
mixed
EXCLUDED_MAPS_IN_V0
= ['8523']
HTTP_ERROR_CODES
liste de qqs codes d'erreur Http avec leur label
public
mixed
HTTP_ERROR_CODES
= [
204 => 'No Content',
// Requête traitée avec succès mais pas d’information à renvoyer.
400 => 'Bad Request',
// paramètres en entrée incorrects
401 => 'Unauthorized',
// Une authentification est nécessaire pour accéder à la ressource.
403 => 'Forbidden',
// accès interdit
404 => 'File Not Found',
// ressource demandée non disponible
410 => 'Gone',
// La ressource n'est plus disponible et aucune adresse de redirection n’est connue
500 => 'Internal Server Error',
]
JEUX_TESTS
Enregistrements test pour tester la méthode validatesAgainstSchema()
public
mixed
JEUX_TESTS
= ["Cas ok sans cartouche, ni mapsFrance" => ['yaml' => <<<EOT
title: "De Port-Barcarès à l'embouchure de l'Aude"
scaleDenominator: '50.200'
spatial:
SW: "42°43,64'N - 002°56,73'E"
NE: "43°13,44'N - 003°24,43'E"
EOT
], "Cas ok avec cartouches, sans pp, ni mapsFrance" => ['yaml' => <<<EOT
title: 'Port Phaeton (Teauaa) - Tapuaeraha'
insetMaps:
- title: 'A - Port Phaeton (Teauaa)'
scaleDenominator: '10.000'
spatial: { SW: '17°46,45''S - 149°20,54''W', NE: '17°43,66''S - 149°18,45''W' }
- title: 'B - Tapuaeraha'
scaleDenominator: '10.000'
spatial: { SW: '17°49,06''S - 149°19,56''W', NE: '17°46,28''S - 149°17,47''W' }
EOT
], "Cas ok sans cartouche, ni mapsFrance, avec scaleDenominator flottant" => ['yaml' => <<<EOT
title: "De Port-Barcarès à l'embouchure de l'Aude"
scaleDenominator: 50.200
spatial:
SW: "42°43,64'N - 002°56,73'E"
NE: "43°13,44'N - 003°24,43'E"
EOT
], "Cas ok sans cartouche, ni mapsFrance, avec scaleDenominator >= 1M" => ['yaml' => <<<EOT
title: 'Des îles Baléares à la Corse et à la Sardaigne'
scaleDenominator: 1.000.000
spatial:
SW: '35°30,00''N - 002°00,00''E'
NE: '45°23,00''N - 010°12,00''E'
EOT
], "Cas KO sans cartouche, ni spatial, ni mapsFrance" => ['yaml' => <<<EOT
title: "De Port-Barcarès à l'embouchure de l'Aude"
scaleDenominator: '50.200'
EOT
], "Cas yaml KO" => ['yaml' => <<<EOT
title 'Port Phaeton (Teauaa) - Tapuaeraha'
insetMaps:
- title: 'A - Port Phaeton (Teauaa)'
scaleDenominator: '10.000'
spatial: { SW: '17°46,45''S - 149°20,54''W', NE: '17°43,66''S - 149°18,45''W' }
- title: 'B - Tapuaeraha'
scaleDenominator: '10.000'
spatial: { SW: '17°49,06''S - 149°19,56''W', NE: '17°46,28''S - 149°17,47''W' }
EOT
]]
JSON_OPTIONS
public
mixed
JSON_OPTIONS
= JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR
JSON_OPTIONS
public
mixed
JSON_OPTIONS
= JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR
JSON_OPTIONS
public
mixed
JSON_OPTIONS
= \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE | \JSON_THROW_ON_ERROR
JSON_OPTIONS
public
mixed
JSON_OPTIONS
= JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR
LGEOJSON_STYLE
public
mixed
LGEOJSON_STYLE
= ['color' => 'blue', 'weight' => 2, 'opacity' => 0.3]
MIME_TYPES
public
mixed
MIME_TYPES
= ['.png' => 'image/png', '.jpg' => 'image/jpeg', '.tif' => 'image/tiff', '.pdf' => 'application/pdf', '.xml' => 'text/xml; charset="utf-8"', '.7z' => 'application/x-7z-compressed', '.txt' => 'text/plain; charset="utf-8"', '.json' => 'application/json; charset="utf-8"']
NB_SECONDS_IN_CACHE
nb secondes en cache pour le navigateur si <> 0
public
mixed
NB_SECONDS_IN_CACHE
= 0.5 * 24 * 60 * 60
SERVER_TILECACHE
mise en cache des tuiles sur le serveur
public
mixed
SERVER_TILECACHE
= \true
SGSERVER_VERSION
public
mixed
SGSERVER_VERSION
= '4'
SHOMGEOTIFF
public
mixed
SHOMGEOTIFF
= '/var/www/html/shomgeotiff'
SPECIAL_MAPS
cartes spéciales traitées spécialement en version < 4
public
mixed
SPECIAL_MAPS
= ['7330', '7344', '7360', '8101', '8502', '8509', '8510', '8517', '8523']
TEST_MAPS
liste limitée de cartes pour tests
public
mixed
TEST_MAPS
= []
Functions
menu()
menu() : void
sendMail()
test d'envoi d'un mail
sendMail(string $action, string $email, string $secret[, string|null $passwd = null ]) : void
Contrairement à ce qu'indique la doc Php, il ne faut pas rajouter de champ To car GMail considère que c'est une erreur
Parameters
- $action : string
- $email : string
- $secret : string
- $passwd : string|null = null
menu()
menu() : void
addUndescoreForThousand()
pour un entier fournit une représentation avec un '_' comme séparateur des milliers
addUndescoreForThousand(int|null $val) : string
Parameters
- $val : int|null
Return values
stringconfig()
config(string $rubrique) : string|array<string, mixed>
Parameters
- $rubrique : string
Return values
string|array<string, mixed>error()
en cas d'erreur dans la génération
error(string $message) : never
Parameters
- $message : string
Return values
neversendErrorTile()
Création et affichage d'une image d'erreur
sendErrorTile(string $tileid, string $message[, string $symbol = 'undef' ][, string $color = 'FF0000' ][, int $width = 128 ][, int $height = 128 ]) : never
Parameters
- $tileid : string
- $message : string
- $symbol : string = 'undef'
- $color : string = 'FF0000'
- $width : int = 128
- $height : int = 128
Return values
neverexecCmde()
execCmde - exécute une commande Linux - enrobage de exec()
execCmde(string $cmde, int $verbose) : array<string, string|int>
retourne [] ssi tout est ok, cad le retour d'exec() !== false && $result_code == 0 sinon retourne ['result_code'=> {result_code}, 'output'=> {output}]
Parameters
- $cmde : string
-
- commande linux à exécuter
- $verbose : int
-
- degré de verbosité
Return values
array<string, string|int>download()
téléchargement d'un fichier en utilisant la commande wget
download(string $url, string $outputFile, int $verbose) : int
effectue un wget sur l'url et stocke le résultat dans $outputFile ; retourne le code http ; si code<>200 le fichier est vide Utilise les variables d'environnement http_proxy: et https_proxy si elles sont définies ainsi que le login/passwd défini dans l'URL du serveur
Parameters
- $url : string
- $outputFile : string
- $verbose : int
Return values
intgeotiffs()
liste des GeoTiffs
geotiffs() : array<int, string>
Return values
array<int, string>log_table_schema()
retourne la commande SQL de création de la table
log_table_schema() : string
Return values
stringwrite_log()
enregistrement d'un log
write_log(bool $access) : bool
Parameters
- $access : bool
Return values
boolreadMapVersion()
extrait du fichier MD ISO dont le path est fourni la version de la carte et la date dateStamp
readMapVersion(string $path) : array{version: string, dateStamp: string}
La version est fournie sous la forme d'une chaine "${anneeEdition}c${lastUpdate}"
Parameters
- $path : string
Return values
array{version: string, dateStamp: string}logRecord()
enregistrement d'un log temporaire pour aider au déverminage
logRecord(array<string|int, mixed> $log) : void
Parameters
- $log : array<string|int, mixed>
sendHttpCode()
Génère une erreur Http et un message utilisateur avec un content-type text ; enregistre un log avec un éventuel message sys
sendHttpCode(int $httpErrorCode, string $mesUti[, string $mesSys = '' ]) : void
Parameters
- $httpErrorCode : int
- $mesUti : string
- $mesSys : string = ''
obsoleteMaps()
Lecture dans maps.json de la liste des nums des cartes obsolètes.
obsoleteMaps() : array<int, string>
Return values
array<int, string>findCurrentMapVersion()
Renvoit le libellé de la version courante de la carte $mapnum ou '' si la carte n'existe pas
findCurrentMapVersion(string $MAPS_DIR_PATH, string $mapnum) : string
Parameters
- $MAPS_DIR_PATH : string
- $mapnum : string
Return values
stringexpand()
expanse une carte téléchargée comme 7z au path indiqué
expand(string $map7zpath) : void
Parameters
- $map7zpath : string
dlExpandInstallMap()
télécharge la carte, l'expanse et l'installe dans le répertoire courant, retourne le libellé du code http
dlExpandInstallMap(string $SERVER_URL, string $MAPS_DIR_PATH, string $TEMP, string $mapnum) : string
Parameters
- $SERVER_URL : string
- $MAPS_DIR_PATH : string
- $TEMP : string
- $mapnum : string
Return values
stringerror()
affiche le message d'erreur puis met fin au script avec un code 1
error(string $message) : never
Parameters
- $message : string
Return values
nevermenu()
menu() : void
execCmdeTest()
test d'appel.
execCmdeTest(string $cmde) : int
Vérifier que l'on sait récupérer un code d'erreur depuis une exécution d'un script Php
Parameters
- $cmde : string
Return values
interror()
affiche un message et termine le script avec un code retour de 1
error(string $message) : never
Parameters
- $message : string
Return values
nevercoordDM()
affichage en degrés minutes décimales avec 2 chiffres significatifs
coordDM(float $coord) : string
Parameters
- $coord : float
Return values
stringlatLonDM()
affichage lat,lon dans le format de l'exemple
latLonDM(TPos $pos) : string
Parameters
- $pos : TPos
Return values
stringcornersOfRects()
extraction des coins des rectangles englobants définis dans un array de Features GeoJSON, renvoit un array de Features
cornersOfRects(string $lyrname, array<int, TGeoJsonFeature> $rects) : array<int, TGeoJsonFeature>
Parameters
- $lyrname : string
- $rects : array<int, TGeoJsonFeature>
Return values
array<int, TGeoJsonFeature>shomGTVersion()
indique la version ShomGT
shomGTVersion() : int
Return values
intfindCurrentMapVersionV4()
Retourne le libellé de la version courante de la carte $mapnum (Code en ShomGT V4).
findCurrentMapVersionV4(string $MAPS_DIR_PATH, string $mapnum) : string
Retourne '' si la carte n'existe pas ou 'undefined' si aucun fichier de MD n'est trouvé
Parameters
- $MAPS_DIR_PATH : string
- $mapnum : string
Return values
stringfindCurrentMapVersionV3()
Retourne le libellé de la version courante de la carte $mapnum (Code en ShomGT V3).
findCurrentMapVersionV3(string $MAPS_DIR_PATH, string $mapnum) : string
Retourne '' si la carte n'existe pas ou 'undefined' si aucun fichier de MD n'est trouvé
Parameters
- $MAPS_DIR_PATH : string
- $mapnum : string
Return values
stringfindCurrentMapVersion()
Retourne le libellé de la version courante de la carte $mapnum (Code en ShomGT V3 ou V4).
findCurrentMapVersion(string $MAPS_DIR_PATH, string $mapnum) : string
Retourne '' si la carte n'existe pas ou 'undefined' si aucun fichier de MD n'est trouvé
Parameters
- $MAPS_DIR_PATH : string
- $mapnum : string
Return values
stringlogRecord()
enregistrement d'un log temporaire pour afficher des infos, par ex. estimer les performances
logRecord(array<string|int, mixed> $log) : void
Parameters
- $log : array<string|int, mixed>