MapCatItem
in package
Un objet MapCatItem correspond à l'enregistrement d'une carte dans le catalogue MapCat.
La classe porte en outre en constante le modèle de document Yaml
Table of Contents
Constants
- ALL_KINDS = ['alive', 'uninteresting', 'deleted']
- Les types de cartes dans le catalogue
- DOC_MODEL_IN_YAML = <<<EOT title: # Titre de la carte, peut être recopié du GAN ou lu sur la carte, champ obligatoire #exemple: "De Port-Barcarès à l'embouchure de l'Aude" scaleDenominator: # dénominateur de l'échelle de l'espace principal #commentaires: # - avec un . comme séparateur des milliers, peut être recopié du GAN ou lu sur la carte # - Champ absent ssi la carte ne comporte pas d'espace principal (uniquement des cartouches). #exemple: # scaleDenominator: '50.200' spatial: # boite englobante de l'espace principal décrit par ces 2 coins Sud-Ouest et Nord-Est SW: # coin Sud-Ouest de la boite en degrés et minutes WGS84 NE: # coin Nord-Est de la boite en degrés et minutes WGS84 #commentaires: # - Champ absent ssi la carte ne comporte pas d'espace principal (uniquement des cartouches). # - chaque coin doit respecter le motif: '^\\d+°(\\d\\d(,\\d+)?'')?(N|S) - \\d+°(\\d\\d(,\\d+)?'')?(E|W)\$' # - peut être recopié du GAN ou lu sur la carte #exemple: # spatial: # SW: "42°43,64'N - 002°56,73'E" # NE: "43°13,44'N - 003°24,43'E" insetMaps: # liste éventuelle de cartouches, chacun respectant la structure ci-dessous - title: # Titre du cartouche, peut être recopié du GAN ou lu sur la carte scaleDenominator: # dénominateur de l'échelle deu cartouche, peut être recopié du GAN ou lu sur la carte spatial: # boite englobante du cartouche décrite comme celle de l'espace principal EOT
- modèle d'enregistrement affiché pour la saisie
- STD_PROP = [ 'groupTitle', 'title', 'scaleDenominator', 'spatial' => ['SW', 'NE', 'exception'], // propriété contenant un sous-objet 'mapsFrance', 'replaces', 'references', 'noteShom', 'noteCatalog', 'badGan', 'z-order', 'outgrowth', 'toDelete', 'borders', 'layer', 'insetMaps' => [ // propriété contenant une liste de sous-objets 'title', 'scaleDenominator', 'spatial', 'noteCatalog', 'badGan', 'z-order', 'outgrowth', 'toDelete', 'borders', ], ]
- ordre standard des propriétés
Properties
Methods
- __construct() : mixed
- __get() : mixed
- asArray() : array<string, mixed>
- checkValidity() : string|null
- diff() : void
- getDefSchema() : array<string, mixed>
- construit le schéma d'une déf. de MapCat, déduit du schéma de MapCat
- insertMapCat() : bool
- appelée pour insérer la description de la carte $mapNum.
- insetScale() : string|null
- insetTitlesSorted() : array<int, string>
- retourne la liste triée des titres des cartouches
- scale() : string|null
- scaleDenominator() : string
- retourne si l'image principale est géoréférencée alors son scaleDenominator sinon le plus grand scaleDenominator des cartouches
- spatial() : Spatial|null
- spatials() : array<string, Spatial>
- retourne la liste des extensions spatiales sous la forme [title => Spatial]
- testValidatesAgainstSchema() : void
- updateMapCat() : bool
- appelée pour mettre à jour la description de la carte $mapNum cad en créer un nouvel enregistrement.
-
validatesAgainstSchema()
: array{errors?: list
, warnings?: list , validDoc?: array} - complète/valide le doc. / schéma retourne un array contenant: - un champ errors avec les erreurs de validation si le doc n'est pas conforme au schéma map - un champ warnings avec les alertes - un champ validDoc avec le document corrigé et valide en Php si le doc est conforme
- insertInMySql() : bool
- insert en base l'enregistrement Mapcat correspondant à la carte $mapNum utilisée par updateMapCat()
Constants
ALL_KINDS
Les types de cartes dans le catalogue
public
mixed
ALL_KINDS
= ['alive', 'uninteresting', 'deleted']
DOC_MODEL_IN_YAML
modèle d'enregistrement affiché pour la saisie
public
mixed
DOC_MODEL_IN_YAML
= <<<EOT
title: # Titre de la carte, peut être recopié du GAN ou lu sur la carte, champ obligatoire
#exemple: "De Port-Barcarès à l'embouchure de l'Aude"
scaleDenominator: # dénominateur de l'échelle de l'espace principal
#commentaires:
# - avec un . comme séparateur des milliers, peut être recopié du GAN ou lu sur la carte
# - Champ absent ssi la carte ne comporte pas d'espace principal (uniquement des cartouches).
#exemple:
# scaleDenominator: '50.200'
spatial: # boite englobante de l'espace principal décrit par ces 2 coins Sud-Ouest et Nord-Est
SW: # coin Sud-Ouest de la boite en degrés et minutes WGS84
NE: # coin Nord-Est de la boite en degrés et minutes WGS84
#commentaires:
# - Champ absent ssi la carte ne comporte pas d'espace principal (uniquement des cartouches).
# - chaque coin doit respecter le motif: '^\\d+°(\\d\\d(,\\d+)?'')?(N|S) - \\d+°(\\d\\d(,\\d+)?'')?(E|W)\$'
# - peut être recopié du GAN ou lu sur la carte
#exemple:
# spatial:
# SW: "42°43,64'N - 002°56,73'E"
# NE: "43°13,44'N - 003°24,43'E"
insetMaps: # liste éventuelle de cartouches, chacun respectant la structure ci-dessous
- title: # Titre du cartouche, peut être recopié du GAN ou lu sur la carte
scaleDenominator: # dénominateur de l'échelle deu cartouche, peut être recopié du GAN ou lu sur la carte
spatial: # boite englobante du cartouche décrite comme celle de l'espace principal
EOT
STD_PROP
ordre standard des propriétés
public
mixed
STD_PROP
= [
'groupTitle',
'title',
'scaleDenominator',
'spatial' => ['SW', 'NE', 'exception'],
// propriété contenant un sous-objet
'mapsFrance',
'replaces',
'references',
'noteShom',
'noteCatalog',
'badGan',
'z-order',
'outgrowth',
'toDelete',
'borders',
'layer',
'insetMaps' => [
// propriété contenant une liste de sous-objets
'title',
'scaleDenominator',
'spatial',
'noteCatalog',
'badGan',
'z-order',
'outgrowth',
'toDelete',
'borders',
],
]
Properties
$item
public
TMapCatItem
$item
$kind
public
TMapCatKind
$kind
Methods
__construct()
public
__construct(TMapCatItem $item, TMapCatKind $kind) : mixed
Parameters
- $item : TMapCatItem
- $kind : TMapCatKind
__get()
public
__get(string $property) : mixed
Parameters
- $property : string
asArray()
public
asArray() : array<string, mixed>
Return values
array<string, mixed>checkValidity()
public
static checkValidity() : string|null
Return values
string|nulldiff()
public
diff(string $labelA, string $labelB, self $b) : void
Parameters
- $labelA : string
- $labelB : string
- $b : self
getDefSchema()
construit le schéma d'une déf. de MapCat, déduit du schéma de MapCat
public
static getDefSchema(string $def) : array<string, mixed>
Parameters
- $def : string
Return values
array<string, mixed>insertMapCat()
appelée pour insérer la description de la carte $mapNum.
public
static insertMapCat(string|null $mapNum, string $user, string $abort) : bool
Si le formulaire n'a pas été saisi alors le génère en rappellant le même script avec même URL et données en POST puis arrête le script Si le formulaire a été saisi appelle updateMapCat
Parameters
- $mapNum : string|null
- $user : string
- $abort : string
Return values
boolinsetScale()
public
insetScale(int $i) : string|null
Parameters
- $i : int
Return values
string|nullinsetTitlesSorted()
retourne la liste triée des titres des cartouches
public
insetTitlesSorted() : array<int, string>
Return values
array<int, string>scale()
public
scale() : string|null
Return values
string|nullscaleDenominator()
retourne si l'image principale est géoréférencée alors son scaleDenominator sinon le plus grand scaleDenominator des cartouches
public
scaleDenominator() : string
Return values
stringspatial()
public
spatial() : Spatial|null
Return values
Spatial|nullspatials()
retourne la liste des extensions spatiales sous la forme [title => Spatial]
public
spatials() : array<string, Spatial>
Return values
array<string, Spatial>testValidatesAgainstSchema()
public
static testValidatesAgainstSchema() : void
updateMapCat()
appelée pour mettre à jour la description de la carte $mapNum cad en créer un nouvel enregistrement.
public
static updateMapCat(string $mapNum, string $user, string $abort) : bool
la première fois arrête le script en générant le formulaire qui rappelle le même script avec même URL et données en POST les fois suivantes SI ajout ok alors retour de la méthode SINON message d'erreur, génération à nouveau du formulaire avant arrêt du script Avec l'affichage du formulaire un lien d'abandon est affiché.
Parameters
- $mapNum : string
- $user : string
- $abort : string
Return values
boolvalidatesAgainstSchema()
complète/valide le doc. / schéma retourne un array contenant: - un champ errors avec les erreurs de validation si le doc n'est pas conforme au schéma map - un champ warnings avec les alertes - un champ validDoc avec le document corrigé et valide en Php si le doc est conforme
public
static validatesAgainstSchema(string $yaml) : array{errors?: list, warnings?: list, validDoc?: array}
Parameters
- $yaml : string
Return values
array{errors?: listinsertInMySql()
insert en base l'enregistrement Mapcat correspondant à la carte $mapNum utilisée par updateMapCat()
private
static insertInMySql(string $mapNum, TMapCatItem $doc, string $user) : bool
Parameters
- $mapNum : string
- $doc : TMapCatItem
- $user : string