diff --git a/docs/api/layer-api.md b/docs/api/layer-api.md index abe77535..10ec8c15 100644 --- a/docs/api/layer-api.md +++ b/docs/api/layer-api.md @@ -191,7 +191,6 @@ so the resulting JSON SHOULD (somehow, tbd) be tagged with the datum in use by t | Event name | Description | |-------------- |-------------------------------------------------------- | | changestyle | Fired before the layer changes src due to user selecting alternate style in layer control | -| changeprojection | Fired before the layer changes projection due to its declared projection being not equal to that of the map | | extentload | Fired when the metadata for a layer has loaded, but before loading tiles, features and other content | --- diff --git a/docs/api/mapml-viewer-api.mdx b/docs/api/mapml-viewer-api.mdx index 5c452df0..9129a1ca 100644 --- a/docs/api/mapml-viewer-api.mdx +++ b/docs/api/mapml-viewer-api.mdx @@ -221,7 +221,8 @@ let zoom = map.zoom; | [viewSource()](#viewsource) | View the source of the map. | | [defineCustomProjection(options)](#definecustomprojectionoptions) | Define a custom projection for use by the page. | | [zoomTo(lat, lon, zoom)](#zoomtolat-lon-zoom) | Fly or pan the map to a (new) location and zoom level.| -| [geojson2mapml(json, options)](#zoomtolat-lon-zoom) | Add a GeoJSON Layer to the map. | +| [locate()](#locate) | Locate and pan/zoom to the user's location, firing the map-locationfound and/or map-locationerror [events](#events) accordingly.| +| [geojson2mapml(json, options)](#geojson2mapmljson-options) | Add a GeoJSON Layer to the map. | ### back() @@ -327,6 +328,28 @@ navigator.geolocation.getCurrentPosition(success, error, options); --- +### locate(options) + +Locate the user's location and pan + zoom to it. Fires the `map-locationfound` and/or `map-locationerror` [events](#events) accordingly. See Also - [geolocation control](../elements/mapml-viewer/#controlslist). + +```js +let map = document.querySelector('mapml-viewer'); +map.locate(); +``` + +#### Options +<Object> A set of key/value pairs that customize the locate method. All options are optional and detailed below. + +| Option | Type | Default | Description | +|------|------|---------------|--------| +| `setView` | | true | if true, pans and zoom to the user's location, or to world view if geolocation failed. | +| `maxZoom` | | 16 | the maximum zoom for view setting when setView option is true. | +| `timeout` | | 10000 | Number of milliseconds to wait for a response from geolocation before firing a locationerror event. | +| `maximumAge` | | 0 | Maximum age of detected location. If less than this amount of milliseconds passed since last geolocation response, locate will return a cached location. | +| `enableHighAccuracy` | | false | Enables high accuracy, see [description in the W3C spec](https://w3c.github.io/geolocation-api/#enablehighaccuracy-member). | + +--- + ### geojson2mapml(json, options) Convert a GeoJSON feature or feature collection string or object to MapML [``](/web-map-doc/docs/layers/layer/) containing one or more [``](/web-map-doc/docs/elements/feature/) elements. Returns and adds the converted layer element to the map. @@ -362,23 +385,27 @@ Check out [this application](https://maps4html.org/experiments/api/custom-map-ui | Event name | Description | |-------------- |-------------------------------------------------------- | -| layerchange | Fired when a layer changes src, usually by the user following a link. | | load | Fired when all layers have finished loading content | | click | Fired when the map receives both mousedown and mouseup events | | dblclick | Fired when the user double clicks or taps the map | +| focus | Fired when the map has recieved focus | | mousemove | Fired repeatedly as the mouse cursor traverses the map | | mouseover | Fired once as the mouse cursor enters the map | | mouseout | Fired once as the mouse cursor exits the map | | mousedown | Fired when the mouse's primary key is pressed down with cursor over the map | | mouseup | Fired when the mouse's primary key is released with cursor over the map | -| movestart | Fired before the map starts to move / viewport changes | -| move | Fired repeatedly as the map moves. | -| moveend | Fired after the map stops moving | -| zoomstart | Fired before the map changes zoom level | -| zoom | Fired repeatedly as the map changes zoom | -| zoomend | Fired after the map has changed zoom level | -| preclick | Fired before a click on the map is triggered. May not be a primitive. | | contextmenu | Fired when user right-clicks or long presses on map. May not be a primitive.| +| layerchange | Fired when a layer changes src, usually by the user following a link | +| fullscreenchange| Fired when the map switches into or out of fullscreen mode | +| map-projectionchange| Fired when the map's projection is changed | +| map-movestart | Fired before the map starts to move / viewport changes | +| map-move | Fired repeatedly as the map moves. | +| map-moveend | Fired after the map stops moving | +| map-zoomstart | Fired before the map changes zoom level | +| map-zoom | Fired repeatedly as the map changes zoom | +| map-zoomend | Fired after the map has changed zoom level | +| map-locationfound | Fired when user's location is found through the [geolocation control](../elements/mapml-viewer/#controlslist).| +| map-locationerror | Fired when user's location is not found through the [geolocation control](../elements/mapml-viewer/#controlslist).| --- diff --git a/docs/elements/mapml-viewer.md b/docs/elements/mapml-viewer.md index f6eafcc8..a3e757ed 100644 --- a/docs/elements/mapml-viewer.md +++ b/docs/elements/mapml-viewer.md @@ -82,7 +82,14 @@ The default projection is `OSMTILE`. ### `controlslist` -`controlslist` - an enumerated attribute, possible values are: "`nofullscreen`", "`nolayer`", "`noreload`", "`noscale`" and "`nozoom`". Occasionally, you may not want your users to have access to a particular control, so you may prune the set of controls automatically presented (when you have used the `controls` boolean attribute). +`controlslist` - an enumerated attribute, possible values are listed below. Occasionally, you may or may not want your users to have access to a particular control, so you may prune the set of controls automatically presented (when you have used the `controls` boolean attribute). + + - `nofullscreen` - does not display the fullscreen control on map, it is displayed by default. + - `nolayer` - does not display the layer control on map, it is displayed by default. + - `noreload` - does not display the reload control on map, it is displayed by default. + - `noscale` - does not display the scale control on map, it is displayed by default. + - `nozoom` - does not display the zoom control on map, it is displayed by default. + - `geolocation` - display's the geolocation control on map. --- diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/api/layer-api.md b/i18n/fr/docusaurus-plugin-content-docs/current/api/layer-api.md index 0ba6858f..6864043a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/api/layer-api.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/api/layer-api.md @@ -165,7 +165,6 @@ Au besoin, `mapml2geojson` transforme des coordonnées en `gcrs` par défaut ava | 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 | | extentload | Déclenché lorsque les métadonnées d’une couche ont été chargées, mais avant le chargement des pavés, des caractéristiques et de tout autre contenu | --- diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/api/mapml-viewer-api.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/api/mapml-viewer-api.mdx index ad32bdfb..35419329 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/api/mapml-viewer-api.mdx +++ b/i18n/fr/docusaurus-plugin-content-docs/current/api/mapml-viewer-api.mdx @@ -224,7 +224,8 @@ let zoom = map.zoom; | [viewSource()](#viewsource) | Affiche la source de la carte. | | [defineCustomProjection(options)](#definecustomprojectionoptions) | Définir une projection personnalisée à utiliser par la page. | | [zoomTo(lat, lon, zoom)](#zoomtolat-lon-zoom) | Survole la carte ou effectue un mouvement panoramique vers un (nouvel) emplacement et à un autre niveau de zoom.| -| [geojson2mapml(json, options)](#zoomtolat-lon-zoom) | Convertit une caractéristique GeoJSON ou une chaîne ou un objet de collection de caractéristiques en élément MapML `` contenant un ou plusieurs éléments ``. | +| [locate()](#locate) | Localiser et effectuer un panoramique/zoom sur l'emplacement de l'utilisateur, en déclenchant les [événements](#événements) map-locationfound et/ou map-locationerror en conséquence.| +| [geojson2mapml(json, options)](#geojson2mapmljson-options) | Convertit une caractéristique GeoJSON ou une chaîne ou un objet de collection de caractéristiques en élément MapML `` contenant un ou plusieurs éléments ``. | ### back() @@ -330,6 +331,28 @@ navigator.geolocation.getCurrentPosition(success, error, options); --- +### locate(options) + +Localise l'emplacement de l'utilisateur et effectue un panoramique et un zoom sur celui-ci. Déclenche les [événements](#événements) `map-locationfound` et/ou `map-locationerror` en conséquence. Voir aussi - [contrôle de géolocalisation](../elements/mapml-viewer/#controlslist). + +```js +let map = document.querySelector('mapml-viewer'); +map.locate(); +``` + +#### Options +<Object> Un ensemble de paires clé/valeur qui personnalisent la méthode de localisation. Toutes les options sont facultatives et détaillées ci-dessous. + +| Option | Type | Default | Description | +|------|------|---------------|--------| +| `setView` | | true | si true, effectue un panoramique et un zoom sur la position de l'utilisateur, ou sur la vue du monde si la géolocalisation a échoué. | +| `maxZoom` | | 16 | le zoom maximum pour la vue lorsque l'option setView est vraie. | +| `timeout` | | 10000 | Nombre de millisecondes à attendre pour une réponse de la géolocalisation avant de déclencher un événement "locationerror". | +| `maximumAge` | | 0 | Âge maximum de la localisation détectée. Si moins de ce nombre de millisecondes se sont écoulées depuis la dernière réponse de géolocalisation, locate renverra une localisation mise en cache. | +| `enableHighAccuracy` | | false | Permet une grande précision, voir [description dans la spécification W3C](https://w3c.github.io/geolocation-api/#enablehighaccuracy-member). | + +--- + ### geojson2mapml(json, options) Convertit une caractéristique GeoJSON ou une chaîne ou un objet de collection de caractéristiques en élément MapML `` contenant un ou plusieurs éléments ``. @@ -365,23 +388,27 @@ Jetez un coup d’œil à [cette application](https://maps4html.org/experiments/ | Nom de l’événement | Description | |-------------- |-------------------------------------------------------- | -| layerchange | Déclenché lorsqu’une couche change de src, habituellement lorsque l’utilisateur clique sur un lien. | | load | Déclenché après que le contenu de toutes les couches a été chargé | | click | Déclenché lorsque la carte reçoit les événements mousedown et mouseup | | dblclick | Déclenché lorsque l’utilisateur double-clique sur la carte ou touche celle-ci | +| focus | Déclenché lorsque la carte a reçu le focus | | mousemove | Déclenché à répétition lorsque le pointeur de la souris est déplacé sur la carte | | mouseover | Déclenché une fois lorsque le pointeur de la souris est placé sur la carte | | mouseout | Déclenché une fois lorsque le pointeur de la souris sort de la carte | | mousedown | Déclenché lorsque l’utilisateur appuie sur le bouton principal de la souris alors que le pointeur de la souris se trouve sur la carte | | mouseup | Déclenché lorsque l’utilisateur relâche le bouton principal de la souris alors que le pointeur de la souris se trouve sur la carte | -| movestart | Déclenché avant que la carte commence à bouger ou que la fenêtre d’affichage change | -| move | Déclenché à répétition lorsque la carte bouge | -| moveend | Déclenché lorsque la carte ne bouge plus | -| zoomstart | Déclenché avant que le niveau de zoom de la carte change | -| zoom | Déclenché à répétition lorsque le niveau de zoom de la carte change | -| zoomend | Déclenché après que le niveau de zoom de la carte a changé | -| preclick | Déclenché avant que l’utilisateur clique sur la carte | | contextmenu | Déclenché lorsque l’utilisateur fait un clic droit sur la carte ou touche celle-ci | +| layerchange | Déclenché lorsqu’une couche change de src, habituellement lorsque l’utilisateur clique sur un lien | +| fullscreenchange| Déclenché lorsque la carte passe en mode plein écran ou en sort | +| map-projectionchange| Déclenché lorsque la projection de la carte est modifiée | +| map-movestart | Déclenché avant que la carte commence à bouger ou que la fenêtre d’affichage change | +| map-move | Déclenché à répétition lorsque la carte bouge | +| map-moveend | Déclenché lorsque la carte ne bouge plus | +| map-zoomstart | Déclenché avant que le niveau de zoom de la carte change | +| map-zoom | Déclenché à répétition lorsque le niveau de zoom de la carte change | +| map-zoomend | Déclenché après que le niveau de zoom de la carte a changé | +| map-locationfound | Déclenché lorsque l'emplacement de l'utilisateur est trouvé par le biais du [contrôle de géolocalisation](../elements/mapml-viewer/#controlslist).| +| map-locationerror | Déclenché lorsque la localisation de l'utilisateur n'est pas trouvée par le [contrôle de géolocalisation](../elements/mapml-viewer/#controlslist).| --- ## Exemples diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/elements/mapml-viewer.md b/i18n/fr/docusaurus-plugin-content-docs/current/elements/mapml-viewer.md index 83f74a35..1a4aee3c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/elements/mapml-viewer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/elements/mapml-viewer.md @@ -81,7 +81,14 @@ La projection par défaut est `OSMTILE`. ### `controlslist` -`controlslist` - attribut énuméré. Les valeurs possibles sont les suivantes : "`nofullscreen`", "`nolayer`", "`noreload`", "`noscale`" et "`nozoom`". Il se peut qu’à l’occasion, vous ne souhaitiez pas que les utilisateurs aient accès à une commande en particulier. Vous pouvez alors réduire l’ensemble des commandes offertes automatiquement (si vous avez utilisé l’attribut booléen `controls` ). +`controlslist` - attribut énuméré. Les valeurs possibles sont énumérées ci-dessous: "`nofullscreen`", "`nolayer`", "`noreload`", "`noscale`", "`nozoom`" et "`geolocation`". Il peut arriver que vous souhaitiez ou non que vos utilisateurs aient accès à un contrôle particulier ; vous pouvez donc élaguer l'ensemble des contrôles présentés automatiquement (si vous avez utilisé l’attribut booléen `controls`). + + - `nofullscreen` - n'affiche pas le contrôle plein écran sur la carte. + - `nolayer` - n'affiche pas le contrôle de couche sur la carte. + - `noreload` - n'affiche pas le contrôle de rechargement sur la carte. + - `noscale` - n'affiche pas le contrôle de l'échelle sur la carte. + - `nozoom` - n'affiche pas la commande de zoom sur la carte. + - `geolocation` - affiche le contrôle de la géolocalisation sur la carte. ---