-
Notifications
You must be signed in to change notification settings - Fork 0
Version Intégrable
- Aperçu
- Configurations de la version intégrable
- Simple Filters
- Simple Feature List
- Interfaces pertinents
La version intégrable permet de combiner la carte d'IGO2 avec des filtres et une liste pour afficher les résultats. Les mises-en-pages supportées dans le fichier config.json
sont les suivantes:
- Carte seulement (avec
showMap = true
sanssimpleFilters
etsimpleFeatureList
) - Liste seulement (avec
showMap = false
etsimpleFeatureList
sanssimpleFilters
) - Carte et filtres (avec
showMap = true
etsimpleFilters
sanssimpleFeatureList
) - Carte et liste (avec
showMap = true
etsimpleFeatureList
sanssimpleFilters
) - Filtres et liste (avec
showMap = false
,simpleFilters
etsimpleFeatureList
) - Carte, filtres et liste (avec
showMap = true
,simpleFilters
etsimpleFeatureList
)
- Filtrer les entités dans la carte et dans la liste en fonction des filtres appliquées
- Effacer les filtres pour réinitialiser les stations
- Interagir avec la carte pour visualiser les résultats de recherche
- Cliquer sur des stations dans la carte pour les voir dans la liste: cliquer sur une station invalidera tous les filtres appliqués jusqu'à ce que les filtres soient effacés, un nouveau tri soit sélectionné, ou le nombre de résultats par page soit modifié (et un alerte apparaitra pour avertir l'usager)
- Voir les attributs désirés pour les résultats de recherche
- Cadrer sur des éléments dans la carte en cliquant sur les titres des stations dans la liste
- Trier les résultats en fonction de certains attributs
- Modifier le nombre de résultats par page
Les types sont utilisés pour créer des filtres (pour filtrer en fonction de ce type), afficher des informations (afficher la valeur correspondante au type pour chaque résultat de recherche), et pour trier les résultats de recherche. Voici comment ils sont employés
- Types
properties
: Toute information par rapport aux résultats possibles de recherche sont storés sous forme d'objetsFeature
. ChaqueFeature
contient un champproperties
, qui possède des types (ex. "region", "adressebur") et les valeurs associées ("Bas-Saint-Laurent", "70 Rue Saint-Germain Est, Rimouski G5L7J9" respectivement). Les types disponibles dans chaque élément deproperties
dépendent de la couche utilisée. - Types
terrAPI
: D'autres types sont permis dans cette application et ils proviennent de terrAPI (voir la liste de types acceptées). Parmi ces types, seulement les types qui sont tracés avec une géométriePolygon
ouMultipolygon
sont acceptés. Parmi ces types même, certains sont problématiques (ex.codes-postaux
), car ils ne retournent rien (voici un exemple qui échoue et voici un exemple de ce qui est retourné avec un type qui fonctionne:mrc
). Tout type qui retourne rien pour tous les résultats de recherche possibles ne sera pas utilisé dans l'application, même si elle est définie dans les fichiers de configuration. Un dernier cas existe: certains types de terrAPI qui respectent les critères de géométrie sont seulement disponibles dans certains endroits au Québec (ex.arrondissements
). Dans ce cas, le type est accepté dans l'application et les résultats qui n'ont pas d'arrondissements associés auront unN/D
associé.
Configuration | Type | Description |
---|---|---|
layerId |
string | Identifiant unique pour la couche (définie dans _default.json ) |
showMap |
boolean | Permet de contrôler la visibilité de la carte |
simpleFilters |
Object | Permet de définir les filtres qui seront possibles pour filtrer les entités, ce qui sera reflété dans la carte et la liste s'ils sont visibles. Sans la configuration simpleFilters , les filtres ne sont pas visibles. |
simpleFeatureList |
Object | Permet de configurer la liste, les attributs qui seront présents pour chaque entité ainsi que la configuration pour le nombre de résultats par page et le triage des résultats. Sans la configuration simpleFeatureList , la liste n'est pas visible |
Exemple complet avec la carte, les filtres et la liste:
"useEmbeddedVersion": {
"layerId": "dq2",
"showMap": true,
"simpleFilters": {
"filters": [
{"type": "region", "description": "Région"},
{"type": "responsable", "description": "Responsable"},
{"type": "municipalites", "description": "Municipalité"},
{"type": "arrondissements", "description": "Arrondissements"}
],
"uniqueAttribute": "adressebur"
},
"simpleFeatureList": {
"attributeOrder": [
{"attributeName": "adressebur", "header": "small"},
{"attributeName": "label", "header": "title"},
{"attributeName": "region", "description": "Région", "header": "standard"},
{"attributeName": "mrc", "description": "MRC", "header": "standard"},
{"attributeName": "municipalites", "description": "Municipalité"},
{"attributeName": "responsable", "description": "Responsable"},
{"attributeName": "telephonebur", "description": "Téléphone"},
{"attributeName": "telecopieurbur", "description": "Télécopieur"},
{"attributeName": "courriel"},
{"attributeName": "arrondissements", "description": "Arrondissements"}
],
"sortBy": {
"default": {"attributeName": "region"},
"attributes": [
{"type": "region", "description": "Région"},
{"type": "responsable", "description": "Responsable"}
]
},
"formatURL": true,
"formatEmail": true,
"paginator": {
"pageSizeOptions": [1,5,10,20,50],
"pageSize": 5,
"showFirstLastPageButtons": true,
"showPreviousNextPageButtons": true
}
}
},
Configuration | Type | Description |
---|---|---|
filters |
SimpleFilter[] | Liste de filtres qui seront affichés. |
uniqueAttribute |
string | La propriété unique de chaque Feature dans la couche (Feature.properties ). Cet attribut permet l'utilisation des types de terrAPI dans les filtres. Sans cette configuration, aucun filtre qui utilise un type de terrAPI ne peut être affiché et utilisé |
Configuration | Type | Description |
---|---|---|
attributeOrder |
AttributeOrder[] | Configuration des informations qui seront visibles dans la liste pour chaque entité |
sortBy |
Object | Configuration des attributs qui utilisés pour le triage des résultats. Voir sortBy |
formatURL |
boolean | Si appliqué, un format spécial sera appliqué pour tout URL affiché dans la liste |
formatEmail |
boolean | Si appliqué, un format spécial sera appliqué pour tout courriel affiché dans la liste |
paginator |
Object | Configurations pour le paginateur. Voir paginator |
Configuration | Type | Description |
---|---|---|
default |
SortBy | Le type qui sera utilisé pour trier les entités dans la liste par défaut. À noter: encore une fois, le type doit être un type valide de terrAPI (parmi la liste acceptable et qui retourne des types multipolygon ou polygon) |
attributes |
SimpleFilter[] | Définit les attributs qui sont possibles d'utiliser pour faire le triage des résultats dans la liste |
Configuration | Type | Description |
---|---|---|
pageSizeOptions |
number[] | Configuration optionelle pour indiquer les options pour le nombre de résultats affichés par page dans la liste. Sans cette configuration, les valeurs de défaut seront appliquées ([1, 2, 5, 10, 25] ) |
pageSize |
number | Configuration optionelle pour indiquer le nombre de résultats affichés quand l'application est initialisée. Si pageSize n'est pas fourni ou que la valeur ne correspond pas à une valeur dans la liste pageSizeOptions , la valeur de défaut sera appliquée (le premier nombre dans la liste pageSizeOptions ) |
showFirstLastPageButtons |
boolean | Indique si les boutons pour sauter à la première/dernière page sont visibles |
showPreviousNextPageButtons |
boolean | Indique si les boutons pour sauter à la prochaine/dernière page sont visibles |
-
type
: Doivent provenir du champproperties
de chaqueFeature
ou des types de terrAPI (voir types acceptés). À noter: seulement les types de terrAPI en polygone/multipolygone peuvent être utilisés et les autres types seront rejettés. De plus, certains types de terrAPI sont problématique (ex.codes-postaux
) donc tout type qui ne retourne aucun résultat pour toutes les entités ne sera pas affiché -
description
: Description qui peut être choisi par l'utilisateur. La description sera affichée dans l'application.
interface SimpleFilter {
type: string;
description: string;
}
-
attributeName
: Champ qui définit le type (comme dans SimpleFilter). Champ optionnel sipersonalizedFormatting
existe -
personalizedFormatting
: Champ qui permet de combiner du texte avec des types (soit de terrAPI ou des propriétés). Les variables pour les types doivent être inclus entre crochets (ex.[adressebur]
). Si le champpersonalizedFormatting
existe,attributeName
n'est plus nécessaire, car les types seront recherchés dans les crochets dupersonalizedFormatting
. -
description
: Description qui sera visible (comme dans SimpleFilter). -
header
: Permet une configuration du style pour les attributs. 3 styles définis existent déjà:title
(bleu, gras, charactères larges),standard
(noir, charactères moyens),small
(noir, charactères petits). Pour tout attribut désigné avec untitle
, cet attribut devient cliquable dans la liste. Une fois qu'elle est cliquée, la carte (si elle est visible) se centrera sur sa localisation.
interface AttributeOrder {
attributeName: string; // name of the attribute in the data source
personalizedFormatting?: string; // string used to merge multiple attributes
description?: string; // description to put in front of the value of the attribute
header?: string; // HTML header to use (ex. "small")
}
Exemple de attributeOrder
:
"attributeOrder": [
{"attributeName": "adressebur", "header": "small"},
{"personalizedFormatting": "[label] à [municipalites]", "header": "title"},
{"attributeName": "region", "description": "Région", "header": "standard"},
{"attributeName": "mrc", "description": "MRC", "header": "standard"},
{"attributeName": "responsable", "description": "Responsable"},
{"attributeName": "telephonebur", "description": "Téléphone"},
{"attributeName": "telecopieurbur", "description": "Télécopieur"},
{"attributeName": "courriel"},
{"attributeName": "arrondissements", "description": "Arrondissement"}
]
interface SortBy {
attributeName: string; // the attribute used for the sort
}
Pour le moment, la fonctionalité de la carte est telle que seulement les entités qui sont visibles dans la carte sont actualisés dans l'application, donc il faut mettre un zoom assez petit pour pouvoir voir toutes les entités dans la carte. Une valeur de map.view.zoom
de 4
est recommendée pour faire afficher toutes les entités (même dans les modes de fonctionnement où la carte n'est pas visible), mais la valeur idéale peut être différente pour chaque couche utilisée.
Pour avoir accès à la version intégrable, il est important d'avoir layers.workspace.enabled
à true
. Si la version non-intégrable est utilisée, la config workspace
n'est pas nécessaire. Voici un exemple