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