Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move refactor/rename custom events into map- namespace #131

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion docs/api/layer-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
---

Expand Down
45 changes: 36 additions & 9 deletions docs/api/mapml-viewer-api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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
&ltObject&gt A set of key/value pairs that customize the locate method. All options are optional and detailed below.

| Option | Type | Default | Description |
|------|------|---------------|--------|
| `setView` | <Boolean\> | true | if true, pans and zoom to the user's location, or to world view if geolocation failed. |
| `maxZoom` | <Number\> | 16 | the maximum zoom for view setting when setView option is true. |
| `timeout` | <Number\> | 10000 | Number of milliseconds to wait for a response from geolocation before firing a locationerror event. |
| `maximumAge` | <Number\> | 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` | <Boolean\> | 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 [`<layer->`](/web-map-doc/docs/layers/layer/) containing one or more [`<map-feature>`](/web-map-doc/docs/elements/feature/) elements. Returns and adds the converted layer element to the map.
Expand Down Expand Up @@ -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).|

---

Expand Down
9 changes: 8 additions & 1 deletion docs/elements/mapml-viewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 `<layer->` contenant un ou plusieurs éléments `<map-feature>`. |
| [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 `<layer->` contenant un ou plusieurs éléments `<map-feature>`. |


### back()
Expand Down Expand Up @@ -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
&ltObject&gt 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` | <Boolean\> | 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` | <Number\> | 16 | le zoom maximum pour la vue lorsque l'option setView est vraie. |
| `timeout` | <Number\> | 10000 | Nombre de millisecondes à attendre pour une réponse de la géolocalisation avant de déclencher un événement "locationerror". |
| `maximumAge` | <Number\> | 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` | <Boolean\> | 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 `<layer->` contenant un ou plusieurs éléments `<map-feature>`.
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.

---

Expand Down