-
Notifications
You must be signed in to change notification settings - Fork 0
/
llmap.schema.yaml
157 lines (157 loc) · 5.26 KB
/
llmap.schema.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
title: Schema JSON d'une carte Leaflet
description: |
Ce schéma décrit une carte Leaflet qui sera transformé en Php par llmap.inc.php
$id: https://igngp.geoapi.fr/llmap.schema.yaml
$schema: http://json-schema.org/schema#
definitions:
jsonType:
description: type JSON
oneOf:
- type: string
- type: number
- type: boolean
- description: objet JSON
type: object
additionalProperties: false
patternProperties:
^[-a-zA-Z0-9_+$]+$:
description: valeur
$ref: '#/definitions/jsonType'
jsonRef:
description: Référence JSON
type: object
additionalProperties: false
required: [$ref]
properties:
$ref:
type: string
layer:
description: description d'une couche
type: object
additionalProperties: false
required: [type, params]
properties:
title:
description: nom de la couche dans la carte
type: string
type:
description: type de couche
type: string
enum:
- L.TileLayer
- L.GeoJSON.AJAX
- L.UGeoJSONLayer
params:
description: |
paramètres d'initialisation de la couche sous la forme d'une liste.
Un nom de fonction JS est codé par un objet {'$function': 'nom'} pour le distinguer d'une chaine de caractères
type: array
items:
$ref: '#/definitions/jsonType'
lyrDict:
description: dictionnaire de couches indexées par leur nom
type: object
additionalProperties: false
patternProperties:
^[-a-zA-Z0-9 _+<>?;$]+$:
oneOf:
- description: définition de la couche
$ref: '#/definitions/layer'
- description: référence JSOn vers la définition de la couche
$ref: '#/definitions/jsonRef'
type: object
additionalProperties: false
required: [title, $schema, head, body]
properties:
title:
description: titre du document
type: string
abstract:
description: résumé du document
type: string
$schema:
description: schema JSON du document
oneOf:
- description: schema in-line
$ref: http://json-schema.org/schema#
- description: référence vers un fichier séparé
type: string
head:
description: éléments générés dans la partie head du document html
type: object
additionalProperties: false
required: [title]
properties:
title:
description: titre de la carte
type: string
plugIns:
description: liste de codes JS d'inclusion des plugIns
type: array
items:
oneOf:
- description: code JS d'inclusion d'un plugIn
type: string
- description: référence JSON au code d'inclusion d'un plugIn dans les constantes
$ref: '#/definitions/jsonRef'
body:
description: éléments générés dans la partie body du document html
type: object
additionalProperties: false
required: [view, baseLayers, defaultBaseLayer]
properties:
jsFunctions:
description: code JS des fonctions utiles
type: string
view:
description: définition de la zone d'affichage initiale
oneOf:
- description: définition par des constantes ou des variables
type: object
additionalProperties: false
properties:
latLon:
description: centre de la zone soit comme couple latitude, longitude soit provenant de la var. $center
oneOf:
- description: couple latitude, longitude du centre
type: array
maxItems: 2
minItems: 2
items:
type: number
- description: utilisation de la variable $center contenant le couple en JSON
type: string
pattern: '<\?php echo \$center;\?>'
zoom:
description: niveau de zoom soit comme entier soit provenant de la var. $zoom
oneOf:
- description: niveau de zoom
type: integer
- description: utilisation de la variable $zoom contenant l'entier
type: string
pattern: '<\?php echo \$zoom;\?>'
- description: référence à une vue bien connue
$ref: '#/definitions/jsonRef'
plugInActivation:
description: liste de codes d'activation des plug-ins
type: array
items:
oneOf:
- description: code JS d'activation d'un plugIn
type: string
- description: référence JSON au code JS d'activation d'un plugIn dans les constantes
$ref: '#/definitions/jsonRef'
baseLayers:
description: dict. des couches de base indexées par leur nom
$ref: '#/definitions/lyrDict'
defaultBaseLayer:
description: clé de la couche utilisée par défaut
type: string
overlays:
description: dict. des couches superposables indexées par leur nom
$ref: '#/definitions/lyrDict'
addLayers:
description: liste des couches superposées initialement affichées
type: array
items:
type: string