Configuration requise
Cette section détaille les configurations possibles pour le navigateur dans un contexe cartographique. À l’aide de fichiers de configuration (fichiers JSON) , il est possible de paramétrer:
l’application
le contenu cartographique
Application
La configuration de l’application est possible grâce au fichier config.json.
Il est également possible de configurer l’application grâce à un second fichier selon l’environnement désiré (test ou production).
Il est possible de modifier les chemins d’accès de ces fichiers dans ce fichier
Important : Notez que le fichier config.json a préséance sur les fichiers environment.*.ts
Résumé
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
App
Permet d’activer des options pour l’application.
Exemples
"app": { "forceCoordsNA": false, "install": { enabled: true, promote: false, manifestPath: '../config/github.webmanifest' }, "pwa": { enable: true } }
Propriétés
forceCoordsNA: true/false = force les coordonnées en Amérique du Nordinstall: Object permettant de dire comment l’application sera installée.install.enabled: true/false = Application installable ou non.install.manifestPath: Identifie un chemin d’accès pour le manifest (info sur l’app).Par défaut: “manifest.webmanifest”install.promote: true/false = Permet (Windows/Android) de faire afficher un messageincitant les utilisateurs a installer l’applicationpwa: Object permettant de dire comment l’application sera mis en mémoire cache.pwa.enabled: true/false = Identifie si l’application sera mis en mémoire cache.
Analytics
Permet de définir un fournisseur de service d’analyse et de statistiques.NB.: Pour une application sans statistiques, simplement ne pas inclure ces configurations.
Exemple
"analytics": { "provider": "matomo", "url": "https://geoegl.msp.gouv.qc.ca/matomo/", "id": "40" }
Auth
Note
En cours de construction
Permet d’activer le serveur d’authentification.NB.: Pour une application sans authentification, simplement ne pas inclure ces configurations.
Exemples
"auth": { "url": "/apis/users", "tokenKey": "id_token_igo", "allowAnonymous": true, "hostsWithCredentials": [{ withCredentials: true, domainRegFilters: '(https:\/\/|http:\/\/)(.*domain.com)(.*)' }], "hostsByKey": [{ keyProperty: 'theNameOfYourKey, keyValue: 'theValueOfYourKey', domainRegFilters: '(https:\/\/|http:\/\/)(.*domain.com)(.*)' }] }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
url
String
Définit l’url d’appel du service d’authentification
tokenKey*
String
Définit la clef de l’api d’authentification utilisée
allowAnonymous
Boolean
Permet/Bloque l’accès aux usagers non authentifiésd’accéder aux contextes publicstrue | false
true
hostsWithCredentials
{}[] (liste d’objet)
Indique à l’application, la liste des domaines a être interceptéset à y ajouter dans l’appel.« withCredentials »: true/false selon la valeur définie.exemple:[{withCredentials: true,}]hostsByKey
{}[] (liste d’objet)
Indique à l’application, la liste des domaines a être interceptéset à y ajouter dans l’appel la clé/valeur en paramètres.« withCredentials »: true/false selon la valeur définie.exemple:[{keyProperty: “theNameOfYourKey’,keyValue: “theValueOfYourKey’,}]Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Liens
Catalog
Permet de charger une liste de sources de catalogage. Une fois les sources chargées, il est possible d’ajouter ces couches d’informations à la carte.Les sources de catalogage permises:- Service WMS- Service WMTS- Service ArcGIS REST- Service Image ArcGIS Rest- Service Tile ArcGIS RestLes couches d’informations contenues dans ces services sont récupérées grâce aux couches publiées dans le GetCapabilities du service.NB.: Il est possible de configurer certaines options dans les catalogues comme le format de présentation des informations(queryFormat) ou la configuration desfiltres temporels souhaités (Voir exemples)Partage de carte:1- Les couches ajoutées (WMS-WMTS) par le catalogue sont partagées lors du partage de carte.2- La structure de l’URL pour les couches partagées est la suivante:- wmsUrl => une liste, séparée par des “,” (virgules) listant les URL de services ajoutées.- Exemple : wmsUrl=urlDuService1,urlDuService2- layers => une liste, séparée par des “,” (virgules) groupée par un bloc de parenthèses, respectant l’ordre des services déclarés dans wmsUrl.- Exemple : layers=(layer1,layer2),(layer3,layer4)- layer1 et layer2 proviennent de l’URL « urlDuService1 »- layer3 et layer4 proviennent de l’URL « urlDuService2 »- si un « layer » possède le suffix (p. ex. igoz13), il s’agit de la position du « layer » dans la table des matières. Ici la position 13.Chaque couche ajoutée possède un identifiant unique généré à partir du « layer name » et de l’URL du service source. Se référer à :igo2-lib/packages/geo/src/lib/datasource/utils/id-generator.ts#L15Note sur le comportement de l’objet Composite Catalog:- la propriété groupImpose met toutes les couches des sous-groupes enfants sur le même niveau.- le titre des couches de même niveau (racine ou groupe) est unique pour une même source.- un tag est ajouté sur les titres identique de couches de même niveau et de source différente.
Exemples
"catalog": { "sources": [ { "id": "Image Arcgis Rest", "title": "Image Arcgis Rest", "url": "https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer", "externalProvider": true, "type": "imagearcgisrest", "sourceOptions": { "queryable": true, "idColumn": "OBJECTID" } }, { "id": "opendataqc", "title": "Données Ouvertes Québec", "url": "/ws/igo_gouvouvert.fcgi" }, { "id": "mffp", "title": "MFFP", "url": "/ws/mffpecofor.fcgi", "sourceOptions": { "timeFilter": { "style": "calendar", "range": true, "step": 63072000000, "type": "year" } } }, { "id": "mtq", "title": "MTQ", "url": "https://ws.mapserver.transports.gouv.qc.ca/swtq", "sortDirection": "desc", "queryFormat": { "htmlgml2": "*", "json": "stations_meteoroutieres" }, "queryHtmlTarget": "iframe", "count": 365, "tooltipType": "abstract" }, { "id": "regexmtq", "title": "MTQ (filtered by regex)", "url": "https://ws.mapserver.transports.gouv.qc.ca/swtq", "regFilters": ["zpegt"] }, { "id": "group_impose", "title": "(composite catalog) with group imposed", "composite": [ { "id": "tq_swtq", "url": "https://ws.mapserver.transports.gouv.qc.ca/swtq", "regFilters": ["zpegt"], "groupImpose": {"id": "zpegt", "title": "zpegt"} }, { "id": "Gououvert", "url": "https://geoegl.msp.gouv.qc.ca/apis/ws/igo_gouvouvert.fcgi", "regFilters": ["zpegt"], "groupImpose": {"id": "zpegt", "title": "zpegt"} }, { "id": "rn_wmts", "url": "https://servicesmatriciels.mern.gouv.qc.ca/erdas-iws/ogc/wmts/Cartes_Images", "type": "wmts", "crossOrigin": true, "matrixSet": "EPSG_3857", "version": "1.0.0", "groupImpose": {"id": "cartetopo", "title": "Carte topo échelle 1/20 000"} } ] }, { "id": "forced_properties", "title": "Forced properties catalog (layer name and abstract)", "composite": [ { "id": "forcedProperties_wmts", "url": "https://servicesmatriciels.mern.gouv.qc.ca/erdas-iws/ogc/wmts/Cartes_Images", "type": "wmts", "setCrossOriginAnonymous": true, "matrixSet": "EPSG_3857", "version": "1.0.0", "forcedProperties": [{ "layerName": "BDTQ-20K_Allegee", "title": "Nouveau nom pour cette couche WMTS", "metadataUrl": "New WMS Abstract" }] }, { "id": "forcedProperties_wms", "url": "https://ws.mapserver.transports.gouv.qc.ca/swtq", "type": "wms", "forcedProperties": [{ "layerName": "lieuhabite", "title": "Nouveau nom pour cette couche WMS", "metadataAbstract": "New WMS Abstract" }] }, { "id": "forcedProperties_arcgisrest", "url": "https://gisp.dfo-mpo.gc.ca/arcgis/rest/services/FGP/Seafloor_SubstratBenthique/MapServer", "externalProvider": true, "type": "imagearcgisrest", "forcedProperties": [{ "layerName": "Sediment substrate / Substrat sédimentaire", "title": "Nouveau nom pour cette couche Image ArcGIS REST" }] }, { id: 'arcgisrestcatalogmaritime', title: 'ArcGIS Rest Focus Maritime catalog', url: 'https://gisp.dfo-mpo.gc.ca/arcgis/rest/services/CHS/ENC_MaritimeChartService/MapServer/exts/MaritimeChartService/MapServer', type: 'arcgisrest', forcedProperties: [ { layerName: "*", metadataAbstractAll: "New abstract to all layers" } ] }, { id: 'arcgisrestcatalog', title: 'ArcGIS Rest Corals catalog', url: 'https://gisp.dfo-mpo.gc.ca/arcgis/rest/services/FGP/CSAS_Corals_Sponges_2010_FR/MapServer', type: 'arcgisrest', forcedProperties: [ { layerName: "*", metadataUrlAll: "https://github.com/infra-geo-ouverte/igo2-lib/" } ] } ] }, ] }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
sources
Catalog []
Liste des catalogues qui sera présenté à l’usager.
Propriétés - Objet Catalog
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Propriétés - Objet CompositeCatalog (spécialisation de l’objet Catalog)
Propriétés
Type
Description
id*
String
Identifiant unique permettant de différencier les catalogues entre eux.
title*
String
Titre pour la source du catalogue qui sera utilisé dans l’outil Catalog.
composite
Catalog []
Liste des catalogues utilisés dans un catalogue composé.
Liens
Context
Note
En cours de construction
Permet de rejoindre une API fournissant des contextes cartographiques.Cette API sera documentée indépendamment de la présente documentation.
Exemples
context: { "url" : "https://geoegl.msp.gouv.qc.ca/apis/igo2/...", "defaultContextUri" : "5" }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
url
String
Définit l’url d’appel du service de contexte
defaultContextUri*
String
Nom ou identifiant du contexte cartographique par défaut.
_default
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Liens
Depot
Note
En cours de construction
Exemples
depot: { "url" : "https://geoegl.msp.gouv.qc.ca/apis/depot/...", "trainingGuides?" : ["fichier1", "fichier2"] }
Propriétés
Propriétés
Type
Description
url
String
Définit l’url d’appel du service de dépôt de fichier
trainingGuides
String[]
Nom ou identifiant des guides d’autoformation à accéder.
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Description
Permet de définir ce qui sera affiché lors de la recherche dans les moteurs de recherche (p. ex. Google).Constante pouvant être réutilisée dans le welcomeWindow.Le résumé est dépendant des sources de recherche utilisées.
DrawingTool
Permet de créer un liste d’URL représentant des icônes afin que ceux-cipuissent être utilisés dans l’outil de dessin
Exemples
drawingTool: { icons: [ "https://icons.duckduckgo.com/ip3/www.google.com.ico", "https://img.icons8.com/color/search/96" ] }
Liens
favoriteContext4NonAuthenticated
Permet d’afficher ou non le bouton de contexte favori (contextManager)pour les utilisateurs non authentifiés. Le contexte favori sera enregistrédans le « LocalStorage » du fureteur.
geolocate
Permet de gérer l’activation par défaut de l’attribut « followPosition ». Surtout Utile pour ceux qui n’utilisent pas le module « advancedMapTools ».Permet aussi de gérer le changement d’icône ou non (« basic ») ainsi que l’activation par défaut de la géolocalisation (« activateDefault »).
Exemples
geolocate: { "followPosition": "false", "basic": "true", "activateDefault": "false" }
hasExpansionPanel
Permet d’ouvrir un paneau d’expansion à partird’un bouton situé dans le coin inférieur gauche de la carte.Ce dernier contient les données tabulaires pourles données WFS / Vectorielle / Cluster.
hasFeatureEmphasisOnSelection
Permet d’ajouter à la carte une géométrie ponctuelle pour lesentités linéaires ou polygonales sélectionnées ou survoléeslors d’une interrogation de la carte et qui sont de trop petitetaille par rapport à l’étendue de la carte.
hasSearchPointerSummary
Permet d’afficher ou non un résumé de la position du curseur.Le résumé est dépendant des sources de recherche utilisées.
ImportExport
Permet de définir un service permettant de convertir des formats de fichiers géométriques non gérés par IGO2 (OpenLayers).Actuellement, les formats GeoJson, KML, KMZ sont acceptés par IGO2. Par contre, les Esri Shapefile doivent transiger par un serveur de conversion.C’est à partir ce cette propriété qu’il est possible de définir le serveur de conversion qui vous retournera un fichier utilisable par IGO2 (GeoJson).
Exemples
importExport: { url: 'https://geoegl.msp.gouv.qc.ca/apis/ogre', clientSideFileSizeMaxMb: 30, gpxAggregateInComment: false, forceNaming: false, formats: ['GeoJSON', 'GML', 'GPX', 'KML', 'Shapefile', 'CSV'], configFileToGeoDBService: './data/geoDataToIDB.json', allowToStoreLayer: true }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
url*
String
Url du service de conversion.
clientSideFileSizeMaxMb
Number
Taille maximum du fichiers pouvant être lu par le fureteur.
30
gpxAggregateInComment
Boolean
Lorsque l’option est activée l’exportation du fichier vers le format GPX va rassemblerles informations de l’enregistrement dans le champ «cmt» du gpx et assigner la valeurde l’ID au champ «name».false
forceNaming
Boolean
Ajoute une boite texte au formulaire d’exportation qui permet de nommer le fichier exporter.
false
formats
String[]
La liste des formats qu’il est possible d’exporter.
“GeoJSON”, “GML”, “GPX”, “KML”, “Shapefile”, “CSV”
[“GeoJSON”, “GML”, “GPX”, “KML”, “Shapefile”, “CSV”]
configFileToGeoDBService
String
Fichiers de configuration à utiliser afin d’intégrer des données dans la base de données Indexed-db de l’application.
un url, relatif ou absolu
allowToStoreLayer
Boolean
Indique si les données importées doivent être stockées dans la l’Indexed-DB
true/false
false
Important : Les propriétés en caractère gras suivis d’un * sont obligatoires.
Liens
InteractiveTour
Permet de configurer le tour interactif de présentation de l’application.
Exemples
"interactiveTour": { "activateInteractiveTour": true "tourInMobile": true, "pathToConfigFile": "./config/interactiveTour.json" },
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
activateInteractiveTour
Boolean
Indique si le tour interactif de présentation de l’application est activé.
true | false
true
pathToConfigFile
String
Indique ou ce retrouve le fichier de configuration des tours dans l’application.Voir la documentation plus loin sur les détails de la configurations des tours.Référez vous à Tour interactif configuration.« ./config/interactiveTour.json »
tourInMobile
Boolean
Indique si les tours interactifs sont aussi disponible en mode mobile.
true/false
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Language
Permet de spécifier une liste de chemins d’accès des fichiers de traduction de l’application.Le dernier chemin de la liste a priorité sur les précédents.IGO2 est actuellement disponible en anglais et en français, selon les paramètres du navigateur.Il est toutefois possible de définir la langue désirée à même le code de l’application.
Exemples
language: { "prefix": "./locale/" }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
prefix*
String []
Définir le dossier contenant les fichiers de traductionde l’appplication.[‘./locale/’ ]
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Liens
MapOverlay
Permet d’ajouter une liste d’éléments visuels à ajouter sur la carte de l’application (p. ex. logos).
Exemples
"mapOverlay": [{ "media": ["desktop"], "cssClass": "top-center", "imgSrc": " ./particular/images/FO_logo_2c.png", "imgSize": "280px", "alt": "Foret ouverte", "fixed": true, "marginTop": "10px" }, { "media": ["desktop"], "cssClass": "bottom-left", "link": "https://www.igouverte.org/", "imgSrc": "./particular/images/2a-logo_bleu_sans_icone.png", "imgSize": "30px", "fontSize": "6pt", "marginLeft": "38px", "marginBottom": "10px", "alt": "IGO", "fixed": false } ]
- Liens
OptionsApi
Permet d’indiquer le chemin pour l’API fournissant certaines options de couches lors de l’ajout de celles-ci par la recherche (p. ex. configurations de filtres). Retourne un objet JSON venant se fusionner avec les propriété de la couche. La configuration faite au pilotage a priorité à celles fournies par l’API d’options.
Exemple
"optionsApi": { "url": "/apis/igo2/layers/options" }
OverlayStyle
Permet de définir le style des éléments ajoutés à la carte (overlay), suite a une interrogation par clic ou par une recherche. Les propriétés « selection » et « focus » sont facultatives. Les propriétés contenues par ces objets sont également facultatives. Si les propriétés sont vides ou absentes, le style par défaut est appliqué. Les couleurs acceptées peuvent être en couleur HEX, en liste RGB ou en couleur nommée.
Exemple
"queryOverlayStyle": {}, "searchOverlayStyle": { "base": { "markerColor": "purple", // marker fill "fillColor": [233,66,133], // poly "markerOutlineColor": "LightPink", // marker contour "strokeColor": "green", // line and poly "strokeWidth": 1 // line and poly }, "selection": { "markerColor": "#32a852", // marker fill "fillColor": [95,96,133], // poly "markerOutlineColor": "#a62997", // marker contour "strokeColor": "#a62997", // line and poly "strokeWidth": 4 // line and poly }, "focus": { "markerColor": "blue", // marker fill "fillColor": "red", // poly "markerOutlineColor": "LightPink", // marker contour "strokeColor": "Sienna", // line and poly "strokeWidth": 2 // line and poly } }
Projections
Permet de spécifier une liste de projections non enregistrées par défault par OpenLayers. On parle ici de projection non mondiale ou à référence locale (ex: MTM, Lambert MTQ, etc.)Référez vous à: https://epsg.io/ pour les propriétés à définir.
Exemple
projections: [ { "alias": "Québec Lambert", "code": "EPSG:32198", "def": "+proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs", "extent": [-886251.0296, 180252.9126, 897177.3418, 2106143.8139] } ]
Propriétés - Objet Projection
Propriétés
Type
Description
alias
String
Nom d’affichage que vous voulez donner à laprojection ajoutée.code*
String
Code de la projection/ système de coordonnéesà ajouter à l’application.def*
String
Paramètres associés à la définition de votreprojection / système de coordonnées.voir epsg.ioextent*
Liste de nombre
Liste de nombre définissantles limites d’applicationde la projection. L’ordre àrespecter est:[Xmin,YMin,XMax,YMax].Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
QueryTabs
Permet de définir le type d’affichage de la résultat de Query,affichage par liste ou onglet.
Exemples
"queryTabs": true
DirectionsSources
Permet de définir une ou plusieurs profils utilisés pour la création d’itinéraires. Le service utilisé par IGO2 est OSRM.La configuration peut contenir, pour le moment, jusqu’à deux profils.
Exemples
"directionsSources": { "osrm": { "name": "OSRM Québec", "baseUrl": "/apis/itineraire/route/v1/", "profiles": [ { "name": "driving", }, { "name": "forestier", "authorization": { "url": "/apis/igo2/user/igo", "property": "hasOsrmPrivateAccess" } }] } }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
name
String
Nom de la source
baseUrl
String
URL du service retournant l’itinéraire.
https://geoegl.msp.gouv.qc.ca/apis/itineraire/route/v1/driving/ <https://geoegl.msp.gouv.qc.ca/apis/itineraire/route/v1/driving/>
profiles
BaseDirectionsSourceOptionsProfile[]
Liste de profils à utiliser.
authorizationUrl
String
URL permettant de vérifier l’accessibilité d’une source à un utilisateur. | Utilisé pour une source privée.
BaseDirectionsSourceOptionsProfile
Propriétés
Type
Description
Valeurs possibles
Valeur par défaut
enabled
Boolean
Permet d’activer un profil spécifique au lancement de l’application. | Un seul doit être activé dans les configurations.
true | false
Le premier profil est activé par défaut.
name
String
Nom du profil. | Le nom est ajouté à baseURL afin de créer la route finale
authorization
BaseDirectionsSourceOptionsProfileAuthorization
Objet permettant de gérer l’accessibilité à un profil protégé.
BaseDirectionsSourceOptionsProfileAuthorization
Propriétés
Type
Description
Valeurs possibles
Valeur par défaut
url
String
URL permettant de vérifier l’accessibilité d’un profil à un utilisateur. | Utilisé pour un profil protégé.
property
String
Propriété utilisée pour la vérification de l’accessibilité.
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Liens
searchBar
Permet de définir des paramètres de la barre de recherche.
Exemples
"searchBar": { "showSearchBar": true, "showSearchButton": false }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
showSearchBar
Boolean
Permet de définir si la barre de recherche est affichée ou non.
true | false
true
showSearchButton
Boolean
Permet de définir si un bouton de recherche est visible ou non.
true | false
false
SearchSources
Permet effectuer la personnalisation de la section de recherches à partir de l’ensemble de propriétés définies.
Exemples
"searchSources": { "showResultsCount":false "cadastre": { "title": "Cadastre", "enabled": true }, "nominatim": { "enabled": false }, "ilayer": { "searchUrl": "/apis/icherche/layers", "order": 4, "params": { "limit": 10 }, "queryFormat": { "html": { "urls": ["/apis/ws/mffpecofor.fcgi"] } } }, "icherche": { "title": "ICherche", "searchUrl": "/apis/icherche", "showInPointerSummary": true, "order": 2, "params": { "limit": "5" }, "showAdvancedSettings": true }, "icherchereverse": { "searchUrl": "/apis/terrapi", "order": 3, "params": { "limit": 5, "buffer":10 } } }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
showResultsCount
boolean
Permet d’afficher ou non le nombre de résultats de chaque source
true/false
true
cadastre
Permet de définir la recherche par cadastre (numéro de lot)
nominatim
Permet de définir l’utilisation de la recherche nominatim
ilayer
Permet d’activer icherche pour les couches de données
icherche
Permet d’activer icherche (géocodage)
icherchereverse
Permet d’activer icherche reverse (géocodage inversé)
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Propriétés de cadastre, nominatim, ilayer, icherche et icherchereverse
Liens
storageOptions
Permet de modifier la sauvegarde de préférence dans le storage (LocalStorage). Deux (2) propriétés sont permises, key et url.
key = prefixe de la clé enregistrée dans le storage. Par dégaut, “igo”. Utile pour différencier des préférence sur un serveur hébergeant plusieurs applications. url = Si une api de contexte est disponible, l’url de sauvegarde des préférence utilisateur. La propriété url provient de l’interface “AuthStorageOptions”. Particulièrement utile pour obtenir les propriétés de partage de contextes en provenance de l’api de contexte.
Exemple
"storageOptions": { "key": "/apis/igo2/layers/options", "url": "/user/igo" }
Liens
saveSearchResultInLayer
Permet d’activer ou désactiver l’enregistrement d’un résultat de recherche dans une couche.
Exemples
"saveSearchResultInLayer": true
Theme
Permet de définir les thèmes de l’application (couleurs, polices).Le répertoire où sont conservés les thèmes est le igo2-lib/packages/core/src/style/themes
Exemples
"theme": "blue-theme"
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
theme*
String
Thème à utiliser pour la présente application configurée.
- blue-theme- qcca.theme- bluegrey.theme- dark.theme- deeppurple.theme- indigo.theme- orange.theme- teal.themeblue-theme
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
NB. Pour le thème qc-ca, si pour appliquer l’ensemble du style (qui s’applique aux autres éléments qui ne font pas partie de Angular material), il faut aller dans l’assemblage, src/styles.scss et décommenter la ligne « @import “./qcca-theme/qcca-theme.scss”; » »
Liens
Title
Permet de définir le titre de l’application que l’on retrouve dans le menu d’accueil.Constante pouvant être réutilisée dans le welcomeWindow.
Version
Permet de définir la version et la date de déploiement de l’application.Constante pouvant être réutilisée dans le welcomeWindow.
Exemple
"version": { "app": "1.8.1", "releaseDateApp": "2021-09-01" }
WelcomeWindow
Permet d’ouvrir une fenêtre d’accueil à l’arrivée dans application.NB.: Pour une application sans fenêtre accueil, simplement ne pas inclure ces configurations.Le contenu doit être configuré à l’aide des fichiers de traduction en.json et fr.json."welcomeWindow": { "html": "<h1>Débutez en sélectionnant un contexte</h1>", "title": "Fenêtre d'accueil", "closeButton": "Fermer", "notShowCheck": "Ne plus afficher" }Les configurations « title », « description » et « version »peuvent être utilisées dans la propriété « html » afin d’ajouter du contenu non traduit.
Exemples
"welcomeWindow": { "showAgainOnNewIGOVersion": true, "nbVisitToShowAgain": 30, "nbVisitToShow":3, "discoverTitleInLocale": "votre application préférée" }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
nbVisitToShow
Number
Nombre de fois que sera présenté la fenêtre d’accueil. S’appliquera aussi aprèsêtre revenu par exemple lors d’une nouvelle version IGO.nbVisitToShowAgain
Number
La fenêtre d’accueil reviendra après le nombre de visite indiqué par ce paramètre.
showAgainOnNewIGOVersion
Boolean
Lorsque l’utilisateur coche la case ne plus afficher, la fenêtre d’accueil reviendrasi la version IGO est différente de la version lors de sa visite précédente.true
discoverTitleInLocale
string
Permet de définir un titre pour le bouton lié au tour interactif. Si nul,la clé IGO sera utilisé dans le fichier de traductiion.IGO
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
La configuration du titre et du message présentés se fait dans les fichiers locaux de traduction en.json et fr.json. Les variables nbVisitToShow et nbVisitToShowAgain sont conservées dans les fichiers du navigateur Internet.
{ "title": "Forêt ouverte", "theme": "teal-theme", "description": "Forêt ouverte est un portail de diffusion des données écoforestières du Gouvernement du Québec.", "analytics": { "provider": "matomo", "url": "https://geoegl.msp.gouv.qc.ca/Visiteur", "id": "40" }, "hasSearchPointerSummary": true, "mapOverlay": [ { "media": ["desktop"], "cssClass": "top-center", "imgSrc": " ./particular/images/FO_logo_2c.png", "imgSize": "280px", "alt": "Foret ouverte", "fixed": true, "marginTop": "10px" }, { "media": ["desktop"], "cssClass": "bottom-left", "link": "https://www.igouverte.org/", "imgSrc": "./particular/images/2a-logo_bleu_sans_icone.png", "imgSize": "30px", "fontSize": "6pt", "marginLeft": "38px", "marginBottom": "10px", "alt": "IGO", "fixed": false }, { "media": ["desktop"], "cssClass": "bottom-right", "imgSrc": "./particular/images/QUEB.png", "imgSize": "150px", "link": "https://www.quebec.ca", "marginRight": "60px", "marginBottom": "20px" }, { "media": ["desktop"], "cssClass": "bottom-right", "text": "© Gouvernement du Québec 2019", "fontSize": "10pt", "link": "https://www.quebec.ca/droit-auteur", "marginRight": "70px", "marginBottom": "10px" }, { "media": ["mobile"], "cssClass": "top-center", "imgSrc": " ./particular/images/FO_logo_2c.png", "imgSize": "200px", "alt": "Foret ouverte", "marginTop": "60px", "fixed": true }, { "media": ["mobile"], "cssClass": "bottom-left", "link": "https://www.igouverte.org/", "imgSrc": "./particular/images/2a-logo_bleu_sans_icone.png", "imgSize": "33px", "alt": "IGO", "fixed": true, "marginLeft": "50px", "marginBottom": "5px" }, { "media": ["mobile"], "cssClass": "bottom-right", "imgSrc": "./particular/images/QUEB.png", "imgSize": "100px", "link": "https://www.quebec.ca", "marginRight": "37px", "marginBottom": "3px" }, ], "searchSources": { "cadastre": { "title": "Cadastre", "enabled": true }, "nominatim": { "enabled": false }, "ilayer": { "searchUrl": "/apis/icherche/layers", "order": 4, "params": { "limit": 10 }, "queryFormat": { "html": { "urls": ["/apis/ws/mffpecofor.fcgi"] } } }, "icherche": { "title": "ICherche", "searchUrl": "/apis/icherche", "showInPointerSummary": true, "order": 2, "params": { "limit": "5" } }, "icherchereverse": { "searchUrl": "/apis/terrapi", "order": 3, "params": { "limit": 5, "buffer":10 } } }, "optionsApi": { "url": "/apis/igo2/layers/options" }, "importExport": { "url": "/apis/ogre" }, "routingSources": { "osrm": { "url": "/services/itineraire/route/v1/driving/", "enabled": true } }, "language": { "prefix": "./particular/locale/" }, "forceCoordsNA": true, "catalog": { "sources": [ { "id":1, "title": "Découpages territoriaux", "composite": [ { "id": "admin_mern", "url": "https://serviceswebcarto.mern.gouv.qc.ca/pes/services/Territoire/SDA_WMS/MapServer/WmsServer?", "crossOrigin": true, "showLegend":false, "queryFormat": { "geojson": "*" }, "groupImpose": {"id": "decoup_admin", "title": "Découpages administratifs"} }, { "id": "2", "url": "/ws/mffpecofor.fcgi", "sourceOptions": { "crossOrigin": "anonymous", "queryFormat": "htmlgml2", "queryHtmlTarget": "iframe", "type": "wms", "optionsFromCapabilities": true }, "regFilters": ["^feuillets_20k$","^fuseaux_mtm$","^fuseaux_utm$"], "groupImpose": { "id": "decoup_carto", "title": "Découpages cartographiques"} } ] }, { "id":3, "title": "Données Québec", "url": "/ws/igo_gouvouvert.fcgi", "crossOrigin": true, "showLegend":false, "queryFormat": { "gml": "*" } }, { "id": 5, "title": "Imagerie aérienne et satellitaire", "composite": [ { "id": "5", "url": "/ws/mffpecofor.fcgi", "sourceOptions": { "crossOrigin": "anonymous", "queryFormat": "htmlgml2", "queryHtmlTarget": "iframe", "type": "wms", "optionsFromCapabilities": true }, "regFilters": ["telecharge_index_250k"], "groupImpose": { "id": "telechargement", "title": "Téléchargement - mosaïques d'images satellites"} }, { "id": "5", "url": "/ws/mffpecofor.fcgi", "regFilters": ["^sentinel","^lsat"], "groupImpose": { "id": "mosaiques", "title": "Mosaïques d'images satellites"} }, { "id": "5", "url": "https://servicesvectoriels.atlas.gouv.qc.ca/IDS_INVENTAIRE_ECOFORESTIER_WMS/service.svc/get?", "queryFormat": "htmlgml2", "queryHtmlTarget": "iframe", "groupImpose": { "id": "giin", "title": "Photos aériennes de l'inventaire écoforestier"} }, { "id": "5", "title": "test wmts-GIIN", "url": "https://servicesmatriciels.mern.gouv.qc.ca/erdas-iws/ogc/wmts/Inventaire_Ecoforestier?", "crossOrigin": true, "matrixSet": "GoogleMapsCompatibleExt2:epsg:3857", "type": "wmts", "groupImpose": { "id": "giin", "title": "Photos aériennes de l'inventaire écoforestier"} } ] } ] } }
Contenu cartographique
- La configuration du contenu cartographique est possible grâce aux fichiers de contextes:
base.json
nom_du_contexte.json
- Ces derniers sont situés dans le répertoire :
Le fichier nom_du_contexte.json contient les éléments spécifiques selon le contexte à exploiter. Exemple, dans une application cartographique vous pouvez avoir plusieurs contextes(thématiques):
hydrograhie.json
routes.json
risques.json
…
- On peut y définir:
l’étendue cartographique
les couches d’informations disponibles
les outils accessibles
certaines configurations d’outils
Quant à lui, le fichier base.json contient les éléments partagés entre chancun des contextes l’héritant.
Selon l’exemple précédent, dans une application cartographique, vous avez 3 contextes (thématiques):
hydrograhie.json
routes.json
risques.json
Plutôt que de répéter 3 fois les mêmes éléments (fonds cartographiques, outils, couches de base) dans chaque contexte, il est possibe de déclarer dans le base.json les éléments communs aux 3 contextes. La maintenance de l’application en sera facilitée.
Le contexte _default, sera le contexte affiché à l’arrivée dans l’application.
Important : Notez que le fichier nom_du_contexte.json a préséance sur le fichier _base.json.
Résumé fichier de contexte
Propriétés
Type
Descriptions
Outil lié
string
Identification du nom du ficher de base dontles contextes peuvent hériter du contenu. MapMapDetailsMapLegendMaptoolslayers*
Liste des couches d’informationsdisponibles pour le contexte sélectionné. MapMapDetailsMapLegendMaptoolsmap*
Définition de la carte lors de l’ouvertureinitiale du contextemessage
Propriété qui n’est plus favorisée. Il vous est suggéré d’utiliser “messages”
messages
Message []
Présentation d’une liste des messages à l’ouverture du contexte.
String[]
Liste des outils disponibles dansl’application. L’ordre dans laliste correspond à l’ordred’apparition des outils dans IGO2.Tous
Objet[]
Liste des configurations des outils présentes dans l’application.
Tous
uri*Voir uristring
Nom ou identifiant du contexte.Doit être uniqueau sein de la même application. MapShareMapImportant : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Base
Exemples
Définition : igo2/src/contexts/_base.json
Utilisation: igo2/src/contexts/_default.json
Layers
Permet de définir une liste de couches d’informations disponibles à l’usager lors de l’ouverture dans l’application.L’ordre d’apparition des couches dans la liste présentée à l’utilisateur peut être contrôlée de divers moyens:1- L’ordre d’apparition des couches dans le contexte. Plus la couche est au début de la liste, plus elle sera au bas de la la liste présentée dans l’application.2- La propriété zIndex de chaque couche d’information. Plus le zIndex et élevé, plus la couche sera au haut de la liste présentée.
Exemples
"layers": [ { "id": "fond_osm", "title": "OSM", "visible": false, "baseLayer": true, "sourceOptions": { "type": "osm", "attributions": "© les contributeurs <a href='https://www.openstreetmap.org/copyright' target='_blank'>d’OpenStreetMap</a> / <a href='https://www.igouverte.org/' target='_blank'>IGO2</a>" } }, { "title": "Satellite", "baseLayer": true, "visible": false, "sourceOptions": { "url": "https://geoegl.msp.gouv.qc.ca/apis/carto/tms/1.0.0/orthos@EPSG_3857/{z}/{x}/{-y}.jpeg", "attributions": "© <a href='https://www.quebec.ca/droit-auteur' target='_blank'><img src='images/quebecPrint.gif' width='64' height='19'>Gouvernement du Québec</a> / <a href='https://www.igouverte.org/' target='_blank'>IGO2</a>", "type": "xyz", "crossOrigin": "anonymous" } }, { "title": "Blanc", "baseLayer": true, "visible": false, "sourceOptions": { "attributions": "<a href='https://www.igouverte.org/' target='_blank'>IGO2</a>", "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=", "type": "xyz" } } ]
Propriétés
Permet de définir une liste de couches. Référez-vous à la description de ce qu’est un layer.
Liens
Map
Permet de définir les propriétés de la carte à l’ouverture du contexte.
Exemples
"map": { "view": { "projection": "EPSG:3857", "center": [-71.938087, 48.446975], "geolocate": true, "zoom": 6, "maxZoom": 17, "rotation": 15, "enableRotation": true } }
- Propriétés
- Référez vous à map.
Liens
Message
Message affiché à l’ouverture du contexte ou à l’ouverture de la couche.- Une librairie tierce est utilisée pour l’affichage de message : NGX-TOASTRNB.: Les classes connues de l’application peuvent être utilisées. Des classes personalisées spécifiques aux messages peuvent être ajoutées dedans:.
Exemples
"message": { "format": "html", "html": "<div class='toast-title-red'> Bienvenue sur <b>IGO</b></div>", "type": "info", "showIcon": false, "options": { "timeOut": 30000 } },
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
format
String
Le format du message html ou text. Selon le choix, une deuxième configuration devraêtre définie soit html ou text.“text”, “html”
html
String
Le html du message sur une seule ligne. Cette configuration est obligatoire si le format = “html.
showIcon
Boolean
Indique si l’icone est présent dans l’affichage du message
true/false
true
options.*
Notification
Voir les options Notifications dans le projetoptions.disableTimeOut
Boolean
Enlève le délais de temps ou est affiché le message
true/false
false
options.template
String
En construction
options.from
Date | String
Date de début de l’application du message.Peut être une date OU un string interprétableoptions.to
Date | String
Date de fin de l’application du message.Peut être une date OU un string interprétabletext
String
Le text du message à afficher. Cette configuration remplace la configuration html.NB.: pour un message qui sera traduction en fonction du navigateur simplementcréer une clef de traduction indiquée ici et mettre son équivalent dans lesfichiers de traduction local en.json, fr.json. Exemple:« text »: « messageContextXyz »,fr.json = « messageContextXyz »: <h3>mon super message</h3>en.json = « messageContextXyz »: <h3>message in english</h3>title
String
Le titre du message à afficher. Cette configuration s’active seulement avec laconfiguration text et ne sera pas pris en compte avec la configuration html.type
String
Le type du message à afficher. Avertissement, erreur ou information.Selon le type choisi une couleur spécifiée sera appliquée selon lathématique de couleur de l’application. “warning”, “error”,“info”, “success”, “show”Important : Les propriétés en caractère gras suivis d’un * sont obligatoires.
Title
Nom du contexte qui sera affiché dans l’application.
Exemples
"title": "Nom de votre contexte",
Toolbar
Définit la liste des outils permis dans le contexte.L’ordre d’apparition des outils dans cette liste est importante puisqu’ellereprésente l’ordre des outils dans l’application.Les outils existant:Chacun de ces outils fait référence à un nom d’outil tel que définit dansle package « integration » d’IGO2. Pour en modifier les propriétésréférez-vous à tools .
Exemples
"toolbar": [ "searchResults", "contextManager", "mapDetails", "catalog", "ogcFilter", "timeFilter", "spatialFilter" "print", "measurer", "shareMap", "about" ]
Liens
Tools
Définit la liste des configurations permises pour chaque outil.Pour les options spécifiques à chaque outil, veuillez vous référer aux descriptif de l’outil. Cette section détaille seulement les propriétés communes.
Exemples
{ "icon" : "iconName", "name" : "catalogBrowser", "title": "TitreOutilQuiDoitEtreTraduit", "options" : { ... } }
Propriétés
Propriétés
Type
Description
Valeurs possibles
Valeur défaut
name*
String
Le nom de l’outil
title
String
Le titre affiché dans l’application. Sujet aux traductions.Si vous modifiez le titre par défaut, vous devez ajouterce titre dans les langues supportées par IGO2 (fr-en).- fichiers dans LanguageRéférer vous à l’outil désiré.
Important : Les propriétés en caractère gras suivies d’un * sont obligatoires.
Liens
Uri
Identifiant du contexte. Particulièrement utile pour le partage de cartes. C’est cette propriété du contexte qui est utilisée pour bâtir l’URL de partage de carte:ex: …/?context=uriDuContexte…Si votre contexte est dans un sous-répertoire, y inscrire également dans l’uri le chemin (repertoire/uriDuContexte)Ne pas y inscrire d’extension du fichier.
Exemples
"uri": "uriDuContexte",