HTMLLayerElement
Propriétés
checked
HTMLLayerElement.checked
est une valeur booléenne de lecteur et d’écriture qui active ou désactive la couche et reproduit l’attribut vérifié (checked). L’état vérifié est reproduit dans l’interface utilisateur du contrôle de la couche sous la forme d’une case à cocher à côté du nom de cette dernière. La propriété vérifiée peut servir à effectuer un changement programmatique de l’état vérifié de la couche.
La propriété vérifiée ne peut être modifiée si l’état de la propriété est « désactivée »).
Pour activer l’état vérifié d’une couche activée :
let layer = document.querySelector('map-layer');
layer.checked = true; // les valeurs valides sont true | false
Pour lire l’état vérifié de la couche :
let layer = document.querySelector('map-layer');
let isChecked = layer.checked;
hidden
HTMLLayerElement.hidden
est une valeur booléenne de lecture et d’écriture qui ne masque ou n’affiche la couche qu’au niveau du contrôle de la couche. Masquer la couche n’a aucune incidence sur la présence de son contenu sur la carte, seulement sur le contrôle de la présence de la couche.
Cela peut être utile pour gérer les couches de courte durée dans la carte, comme les résultats d’une recherche, sans que l’utilisateur soit obligé de gérer l’état de la couche, ce dont se charge votre application.
Cela est également pratique pour gérer une couche permanente sans surcharger l’interface utilisateur.
Pour définir que la couche est masquée ou la mettre à jour avec cet état :
let layer = document.querySelector('map-layer');
layer.hidden = true; // les valeurs valides sont true | false
Pour obtenir la valeur hidden de <map-layer>
:
let layer = document.querySelector('map-layer');
let isHidden = layer.hidden;
disabled
HTMLLayerElement.disabled
donne un accès en lecture seule à l’état désactivé de la couche. Une couche est désactivée si son contenu n’est pas rendu, soit parce qu’il sort complètement de l’étendue de la carte affichée ou parce qu’une erreur est associée au traitement de la couche, par exemple lorsque celle-ci se trouve dans un projection incompatible avec celle de la carte. Lorsqu’une couche est désactivée, l’utilisateur ne peut interagir avec elle au niveau du contrôle de la couche, et elle n’est pas visible dans la fenêtre d’affichage de la carte. Si la couche devient activée, par exemple à la suite d’une manipulation de la carte, l’utilisateur peut interagir avec elle au niveau du contrôle de la couche, et elle est visible dans la fenêtre d’affichage de la carte.
label
HTMLLayerElement.label
reflète l'attribut de contenu label
, et spécifie un
nom accessible de repli pour la couche, si le nom accessible n'est pas fourni par un
élément local <map-title>
enfant de l'élément <map-layer>
, ou dans l'élément
<map-head>
d'un document MapML chargé via la valeur URL dans l'attribut src
,
respectivement.
Pour définir la label de <map-layer>
ou mettre à jour celle-ci :
let layer = document.querySelector('map-layer');
layer.label = "Nouveau titre";
Pour obtenir la valeur de la label de <map-layer>
:
let layer = document.querySelector('map-layer');
let label = layer.label;
src
HTMLLayerElement.src
reproduit l’attribut HTML src et précise l’adresse URL du document MapML de la couche. La propriété src peut ne pas être définie si la couche contient du contenu en ligne. Si la propriété src retourne une valeur, tout contenu en ligne est omis.
Pour définir ou mettre à jour la src de <map-layer>
:
let layer = document.querySelector('map-layer');
layer.src = "https://example.org";
Pour obtenir la valeur (adresse URL) de la src de <map-layer>
:
let layer = document.querySelector('map-layer');
let url = layer.src;
opacity
HTMLLayerElement.opacity
donne accès en lecture ou en écriture à la valeur d’opacity
, qui correspond dans le contrôle de couche pour chaque couche, sous "Opacité".
Pour définir ou mettre à jour l’opacité de <map-layer>
:
let layer = document.querySelector('map-layer');
layer.opacity = 0.5; // les valeurs valides vont de 0.0 à 1.0
Pour obtenir la valeur de l’opacité de <map-layer>
:
let layer = document.querySelector('map-layer');
let opacity = layer.opacity;
extent
HTMLLayerElement.extent
fournit un accès en LECTURE SEULE aux coordonnées en
haut à gauche et en bas à droite du rectangle de délimitation minimal de la couche
sous forme d'objet.
Pour obtenir la valeur de l'étendue de <map-layer>
:
let layer = document.querySelector('map-layer');
let extent = layer.extent;
L'objet extent est structuré comme suit :
Cliquez pour afficher l'objet extent
{
"projection": "CBMTILE",
"topLeft": {
"tcrs": [
{
"horizontal": 942.662039991251,
"vertical": 1029.0945982508472
},
/* un objet avec des propriétés "horizontal" et "vertical" pour chaque niveau de zoom dans le tableau */
{
"horizontal": 546743983.1949257,
"vertical": 596874866.9854914
}
],
"tilematrix": [
{
"horizontal": 3.6822735937158244,
"vertical": 4.019900774417372
},
/* un objet avec des propriétés "horizontal" et "vertical" pour chaque niveau de zoom dans le tableau */
{
"horizontal": 2135718.6843551784,
"vertical": 2331542.4491620758
}
],
/* gcrs signifie "système de référence des coordonnées géographiques" */
"gcrs": {
"horizontal": -75.73195696514524,
"vertical": 45.40761073808424
},
/* pcrs signifie "système de référence des coordonnées projetées" */
"pcrs": {
"horizontal": 1509108.7182317898,
"vertical": -170864.4342066869
}
},
"bottomRight": {
"tcrs": [
{
"horizontal": 942.7503158533199,
"vertical": 1029.1828741129164
},
{
"horizontal": 546795183.1949255,
"vertical": 596926066.9854914
}
],
"tilematrix": [
{
"horizontal": 3.6826184213020308,
"vertical": 4.0202456020035795
},
{
"horizontal": 2135918.684355178,
"vertical": 2331742.4491620758
}
],
"gcrs": {
"horizontal": -75.67858731979081,
"vertical": 45.387937810298354
},
"pcrs": {
"horizontal": 1512495.3916717991,
"vertical": -174251.10764670372
}
}
}
Méthodes
zoomTo()
HTMLLayerElement.zoomTo()
zoom sur l'étendue de la couche dans la carte,
au niveau de zoom maximum dans lequel l'étendue s'inscrit complètement.
let layer = document.querySelector('map-layer');
layer.zoomTo();
mapml2geojson(options)
HTMLLayerElement.mapml2geojson(options)
renvoie la couche au format GeoJSON.
Fonction | Retours | Description |
---|---|---|
mapml2geojson(<Object> options) | Objet de collection de caractéristiques JavaScript (GeoJSON) | Cette fonction transforme l’élément- enfant <feature> d’un élément <map-layer> en un objet GeoJSON FeatureCollection. Vous fournissez les options pour contrôler la transformation. Cette fonction doit servir dans un événement windows.onload. |
mapml2geojson
doit être appelé dans un événement windows.onload pour fonctionner correctement, comme suit :
window.onload = (event) => {
let layer = document.querySelector('map-layer');
layer.mapml2geojson();
};
Paramètres
Paramètre | Description |
---|---|
Élément <HTMLLayerElement> | Élément <map-layer> |
<Object> options | Vous fournissez des paramètres au moyen d’un objet d’options avec des noms d’option prédéfinis. |
Options
<Object> Ensemble de paires de clés ou de valeurs qui personnalise l’objet de sortie GeoJSON. Toutes les options sont facultatives et décrites ci-après.
Option | Type | Défaut | Description |
---|---|---|---|
propertyFunction | <Function> | n/a | Fonction que vous fournissez et qui mappe l’élément <map-properties> de la caractéristique à un membre GeoJSON "properties", puisque qu’il n’y a que vous qui connaît la conception du balisage dans votre valeur <map-properties> . Si vous ne fournissez pas cette option, une fonction par défaut essaiera de renverser un élément-enfant <table> de <map-properties> , comme si ce tableau était généré par la fonction d’option de propriétés par défaut de geojson2mapml. |
transform | <Boolean> | true | Transforme des valeurs <map-coordinates> en valeurs gcrs (longitude, latitude), si elles ne le sont pas déjà. GeoJSON recommande d’utiliser les coordonnées de longitude et de latitude WGS 84, il s’agit donc là du comportement par défaut. |
Remarques
Au besoin, mapml2geojson
transforme des coordonnées en gcrs
par défaut avant la sérialisation. Prenez note que toutes les projections géographiques CRS (système de référence des coordonnées) ne sont pas équivalentes, et que l’interprétation de telles coordonnées n’est pas garantie conforme aux coordonnées WGS 84 ou GPS, et que, par conséquent, elles ne suivent pas nécessairement la recommandation GeoJSON, qui requiert des coordonnées de longitude et de latitude codées conformément au système géodésique WGS 84. Le moteur de projection utilisé pour mettre en œuvre cette conversion est incapable de transformer des coordonnées d’un ellipsoïde à un autre. Par conséquent, le JSON résultant DOIT (d’une manière qui reste à déterminer) être étiqueté avec la donnée qu’utilise la projection de la couche.
Événements
Nom de l’événement | Description |
---|---|
changestyle | Déclenché avant que la couche ne change de src parce que l’utilisateur a sélectionné un autre style au niveau du contrôle de la couche |
changeprojection | Déclenché avant que la couche ne change de projection parce que la projection déclarée n’est pas égale à celle de la carte |
loadedmetadata | Déclenché lorsque les métadonnées d'une couche ont été chargées. L’intention est que cet événement soit analogue à l’événement loadedmetadata de l’élément média, mais avec les couches d’une carte. |
map-change | Déclenché lorsque la couche est cochée ou décochée via le menu des couches (en cliquant ou en utilisant le clavier) |
Exemples
mapml2geojson
Options par défaut
Exemple montrant la sortie GeoJSON par défaut lorsqu’aucune option n’est fournie.
<map-layer label="Géometrie du point" checked="">
<map-meta name="extent" content="top-left-longitude=-75.916809, top-left-latitude=45.886964, bottom-right-longitude=-75.516809,bottom-right-latitude=45.26964"></map-meta>
<map-meta name="projection" content="OSMTILE"></map-meta>
<map-meta name="cs" content="gcrs"></map-meta>
<map-feature>
<map-featurecaption>Géometrie du point</map-featurecaption>
<map-geometry>
<map-point>
<map-coordinates>-75.6916809 45.4186964</map-coordinates>
</map-point>
</map-geometry>
<map-properties>
<table>
<thead>
<tr>
<th role="columnheader" scope="col">Nom de la propriété </th>
<th role="columnheader" scope="col">Nom de la propriété</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">prop0</th>
<td itemprop="prop0">Ceci est un point</td>
</tr>
</tbody>
</table>
</map-properties>
</map-feature>
</map-layer>
<script>
window.onload = (event) => {
let layer = document.querySelector('map-layer');
let output = layer.mapml2geojson();
};
</script>
Cliquez pour afficher la sortie GeoJSON
{
"title": "Géométrie du point",
"bbox": [-75.916809, 45.886964, -75.516809, 45.26964],
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-75.6916809, 45.4186964]
},
"properties": {
"prop0": "Ceci est un point"
}
}]
}
Spécifications
Spécification |
---|
HTMLLayerElement |
Exigences
Signaler les problèmes liés à ces exigences sur GitHub
exigence amélioration peu pratique indécis en cours de discussion
Spec | Viewer | API | |
---|---|---|---|
Propriétés | complet | complet | complet |
Méthodes | complet | complet | complet |