Aller au contenu principal

HTMLFeatureElement

Propriétés

zoom

HTMLFeatureElement.zoom obtient ou définit le zoom "natif" de l'élément; zoom reflète l'attribut content du même nom. La géométrie et les autres propriétés des caractéristiques dépendent de l'échelle. On s'attend à ce que les caractéristiques servies par les services HTML (MapML) expriment l'échelle native ou naturelle de la caractéristique par le biais de ses attributs contenu zoom, min et max (zoom) et des attributs IDL.

Pour définir le zoom :

let feature = document.querySelector('map-feature');
feature.zoom = 5; // définit le zoom "natif" de l'objet

Pour obtenir le zoom :

let feature = document.querySelector('map-feature');
let zoom = feature.zoom;

min

L'attribut IDL min (zoom) permet d'obtenir ou de définir le zoom minimum natif de la caractéristique; min reflète l'attribut contentu du même nom. La géométrie et les autres propriétés des caractéristiques de la carte dépendent de l'échelle. La valeur min est une valeur limite de zoom de rendu ; à des valeurs de zoom de carte inférieures à min, la caractéristique ne sera pas rendue.

Si la valeur min n'est pas fournie, une valeur de repli sera calculée; la valeur de repli sera la valeur de zoom minimale de la couche ou, si elle n'est pas spécifiée, la valeur minimale de la projection du visualiseur de carte, c'est-à-dire 0.

Pour définir le min:

let feature = document.querySelector('map-feature');
feature.min = 5; // l'objet ne sera pas rendue aux niveaux de zoom 0 à 4

Pour obtenir le min:

let feature = document.querySelector('map-feature');
let min = feature.min;

max

L'attribut max (zoom) permet d'obtenir ou de définir le zoom maximal natif de la caractéristique; max reflète l'attribut de contenu du même nom. La géométrie et les autres propriétés des caractéristiques de la carte dépendent de l'échelle. La valeur max est une valeur limite de zoom de rendu; à des valeurs de zoom de carte supérieures à max, la caractéristique ne sera pas rendue.

Si max n'est pas fourni, une valeur de repli sera calculée ; la valeur de repli sera la valeur de zoom maximale de la couche ou, si elle n'est pas spécifiée, la valeur maximale de zoom de la projection du visualiseur de carte, par exemple 25 (en fonction de la projection).

Pour définir le max :

let feature = document.querySelector('map-feature');
feature.max = 10; // l'objet ne sera pas rendue au-delà du niveau de zoom 10

Pour obtenir le max :

let feature = document.querySelector('map-feature');
let max = feature.max;

extent

En lecture seule. Renvoie les coordonnées en haut à gauche et en bas à droite du rectangle minimal de délimitation de la caractéristique sous la forme d'une valeur d'objet.

Pour les caractéristiques ponctuelles (dont l'étendue est nulle), l'étendue est calculée pour correspondre aux coins d'une tuile unique centrée sur cet endroit, à un niveau de zoom intégral égal à la valeur de la propriété de zoom de la caractéristique, si elle est définie, ou à la valeur de zoom de repli (calculée) si aucune propriété de zoom n'est définie.

> let f = document.querySelector('map-feature')
> console.log(f.extent)
> {topLeft: {…}, bottomRight: {…}, projection: 'CBMTILE'}

L'objet "extent" est structuré comme suit :

Cliquer pour visualiser l'objet de l'étendue
{
"projection": "CBMTILE",
"topLeft": {
"tcrs": [
{
"horizontal": 942.662039991251,
"vertical": 1029.0945982508472
},
/* un objet avec des propriétés "horizontales" et "verticales" 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 "horizontales" et "verticales" pour chaque niveau de zoom dans le tableau */
{
"horizontal": 2135718.6843551784,
"vertical": 2331542.4491620758
}
],
/* gcrs est l'abréviation de "geographic coordinate reference system" (système de référence des coordonnées géographiques) */
"gcrs": {
"horizontal": -75.73195696514524,
"vertical": 45.40761073808424
},
/* pcrs est l'abréviation de "projected coordinate reference system" (système de référence à 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()

HTMLFeatureElement.zoomTo() Déplace la fenêtre d'affichage pour la centrer sur l'extent de la caractéristique. Le zoom de la carte affichée dépend des propriétés zoom et max natives de la caractéristique. Si la caractéristique n'a pas de propriété de zoom spécifiée, la caractéristique sera centrée sur la fenêtre d'affichage à la valeur de zoom maximale, que cette valeur soit présente sur la caractéristique ou qu'elle soit dérivée d'une valeur de repli basée sur la couche ou la carte parente. Si une propriété de zoom est disponible, la fenêtre d'affichage sera centrée sur le centre de l'extent de la caractéristique à cette valeur de zoom, que l'extent tienne ou non entièrement dans la fenêtre d'affichage.

Syntaxe

let f = document.querySelector('map-feature');
f.zoomTo(); // recentrer la carte sur l'objet à son niveau de zoom natif

Paramètres

Aucun.

Valeur de retour

Aucun (undefined).


click()

La méthode click simule un clic de souris sur la caractéristique.

Syntaxe

let f = document.querySelector('map-feature');
f.click();

Paramètres

Aucun.

Valeur de retour

Aucun (undefined).


focus(options)

Syntaxe

f.focus();
f.focus(options);

Paramètres

options Optionnel

Objet optionnel permettant de contrôler certains aspects du processus de focalisation.

attention

Les options ne sont pas encore mises en œuvre.

Cet objet peut contenir les propriétés suivantes :

zoomTo

L'option zoomTo (false par défaut) déplacera la fenêtre de visualisation pour qu'elle soit centrée sur l'extent de la caractéristique, similaire à la méthode zoomTo().

let f = document.querySelector('map-feature');
f.focus({ zoomTo: true });
focusVisible

L'option focusVisible (false par défaut) permet d'ajouter un anneau de anneau de focalisation, comme si la caractéristique avait été focalisée avec le clavier.

let f = document.querySelector('map-feature');
f.focus({ zoom: false, focusVisible: true });

Valeur de retour

Aucun (undefined).


blur()

La méthode blur() supprime la focalisation sur la caractéristique.

Syntaxe

let f = document.querySelector('map-feature');
f.blur();

Paramètres

Aucun.

Valeur de retour

Aucun (undefined).


mapml2geojson(options)

HTMLFeatureElement.mapml2geojson(options) renvoie la caractéristique au format GeoJSON.

FonctionRetoursDescription
mapml2geojson(<Object> options)Un objet caractéristique JavaScript (GeoJSON)Cette fonction transforme l'élément <feature> en un objet GeoJSON Feature. Vous fournissez options pour contrôler la transformation.
attention

mapml2geojson doit être appelé à l'intérieur d'un événement windows.onload pour fonctionner correctement.

Syntaxe

window.onload = (event) => {
let layer = document.querySelector('map-layer');
layer.mapml2geojson();
};

Paramètres

ParamètreDescription
<Object> optionsOptionnel Vous fournissez des paramètres via un objet options avec des noms d'options prédéfinis.
Options

<Object> Un ensemble de paires clé/valeur qui personnalisent l'objet GeoJSON de sortie. Tous ces éléments sont optionnels et détaillés ci-dessous.

OptionTypeDéfautDescription
propertyFunction<Fonction>s/oUne fonction que vous fournissez qui fait correspondre l'élément <map-properties> de la caractéristique à un membre GeoJSON "properties", puisque vous seul connaissez la conception du balisage dans votre valeur <map-properties>. Si vous ne fournissez pas cette option, une fonction par défaut tentera d'inverser un enfant <table> de l'élément <map-properties>, comme si cette table avait été générée par la fonction fonction des options de propriétés par défaut de geojson2mapml.
transform<Boolean>trueTransforme les valeurs <map-coordinates> en valeurs gcrs (longitude,latitude), si ce n'est pas déjà le cas. GeoJSON recommande d'utiliser les coordonnées de longitude et de latitude WGS 84, c'est donc le comportement par défaut.
Notes
attention

mapml2geojson, par défaut, transformera les coordonnées des caractéristiques en gcrs avant la sérialisation, si nécessaire. Notez que tous les CRS géographiques sont non-équivalents, et l'interprétation de ces coordonnées n'est pas garantie conforme aux coordonnées WGS 84 / GPS, et peut donc ne pas être conforme à la recommandation GeoJSON, qui exige que les coordonnées de longitude et de latitude soient encodées en WGS 84.
Le moteur de projection utilisé pour mettre en œuvre cette conversion n'est pas capable de transformer les coordonnées d'un ellipsoïde en un autre, et le JSON résultant DEVRAIT (d'une manière ou d'une autre, à déterminer) être marqué avec le datum utilisé par la projection de la couche.

Valeur de retour

Un objet GeoJSON représentant la caractéristique


Evénements

Nom de l'événementDescription
clickL'événement click se produit lorsque l'utilisateur clique ou touche la caractéristique avec le clavier ou le pointeur, ou lorsque la méthode click() est appelée.
focusL'événement de focus se produit lorsque la caractéristique est ciblée par le clavier ou le pointeur, ou lorsque la méthode focus() est appelée.
blurL'événement de blur se produit lorsque la caractéristique perd le focus avec un clavier ou un pointeur, ou lorsque la méthode blur() est appelée.

Exemples

mapml2geojson

Options par défaut

Un exemple montrant la sortie GeoJSON par défaut lorsqu'aucune option n'est fournie.

<map-layer label="Géométrie de 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éométrie de 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 propriété</th>
<th role="columnheader" scope="col">Valeur 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 couche = document.querySelector('map-layer');
let sortie = layer.mapml2geojson();
};
</script>
Cliquez pour voir la sortie GeoJSON
{
"title": "Géométrie de 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
HTMLFeatureElement

Exigences

Signaler les problèmes liés à ces exigences sur GitHub

exigence amélioration peu pratique indécis en cours de discussion

Spéc.VisualiseurAPI
Propriétéslimité *completcomplet
Méthodesaucun *limité *limité *
Exceptions *
  1. Les attributs IDL et de contenu (propriétés) de map-feature min, max et extent ne sont pas encore spécifiés
  2. Les opérations (méthodes) de map-feature ne sont pas encore spécifiées
  3. L'élément personnalisé map-feature implémente les méthodes mais le paramètre options de focus(options) n'est pas encore implémenté
  4. Cette API est encore en cours de discussion