phpDocumentor

Documentation

Table of Contents

Packages

shomgt
html
Application
PERIME
coordsys
gegeom
jsonschema
mysql
phpanalyzer

Namespaces

bo
html
dashboard
gan
coordsys
gegeom
jsonschema
mapcat
ns
shomft

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

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

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

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
string

config()

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
never

sendErrorTile()

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
never

execCmde()

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
int

geotiffs()

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
string

write_log()

enregistrement d'un log

write_log(bool $access) : bool
Parameters
$access : bool
Return values
bool

readMapVersion()

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
string

expand()

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
string

error()

affiche le message d'erreur puis met fin au script avec un code 1

error(string $message) : never
Parameters
$message : string
Return values
never

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
int

error()

affiche un message et termine le script avec un code retour de 1

error(string $message) : never
Parameters
$message : string
Return values
never

coordDM()

affichage en degrés minutes décimales avec 2 chiffres significatifs

coordDM(float $coord) : string
Parameters
$coord : float
Return values
string

latLonDM()

affichage lat,lon dans le format de l'exemple

latLonDM(TPos $pos) : string
Parameters
$pos : TPos
Return values
string

cornersOfRects()

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
int

findCurrentMapVersionV4()

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
string

findCurrentMapVersionV3()

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
string

findCurrentMapVersion()

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
string

logRecord()

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>

Search results