@polar/plugin-pins
v2.0.0
Published
Pins plugin for POLAR that adds map interactions to client that allow users to indicate a specific point on the map.
Downloads
388
Readme
Pins
Scope
The pins plugin handles marking locations. Embedding processes can then use that coordinate for further steps. The plugin may react to other plugins, especially address searches.
Configuration
The usage of displayComponent
has no influence on the creation of Pins on the Map if this plugin is being used.
pins
| fieldName | type | description |
| - | - | - |
| appearOnClick | appearOnClick? | Pin restrictions. See object description below. |
| boundaryLayerId | string? | Id of a vector layer to restrict pins to. When pins are moved or created outside of the boundary, an information will be shown and the pin is reset to its previous state. The map will wait at most 10s for the layer to load; should it not happen, the geolocation feature is turned off. |
| boundaryOnError | ('strict' | 'permissive')? | If the boundary layer check does not work due to loading or configuration errors, style 'strict'
will disable the pins feature, and style 'permissive'
will act as if no boundaryLayerId was set. Defaults to 'permissive'
. |
| coordinateSource | string? | The pins plugin may react to changes in other plugins. This specifies the path to such store positions. The position must, when subscribed to, return a GeoJSON feature. Please mind that, when referencing another plugin, that plugin must be in addPlugins
before this one. |
| initial | initial? | Configuration options for setting an initial pin. |
| movable | enum["drag", "click", "none"]? | Whether a user may drag and re-click the pin (drag
), only re-click it (click
) or may only be placed programmatically (none
). Defaults to 'none'. |
| style | style? | Display style configuration. |
| toastAction | string? | If boundaryLayerId
is set, and the pin is moved or created outside the boundary, this string will be used as action to send a toast information to the user. If no toast information is desired, leave this field undefined; for testing purposes, you can still find information in the console. |
| toZoomLevel | number? | Zoom level to use on outside input by e.g. address search. Defaults to 0
. |
Example configuration:
pins: {
toZoomLevel: 9,
movable: 'drag',
appearOnClick: {
show: true,
atZoomLevel: 3,
},
style: {
fill: '#003064',
},
boundaryLayerId: 'hamburgBorder',
toastAction: 'plugin/toast/addToast',
coordinateSource: 'plugin/addressSearch/chosenAddress'
}
pins.appearOnClick
| fieldName | type | description |
| - | - | - |
| show | boolean | Display marker. |
| atZoomLevel | number? | Minimum zoom level for sensible marking. Defaults to 0
. |
Example configuration:
appearOnClick: {
show: true,
atZoomLevel: 3,
}
pins.initial
| fieldName | type | description |
| - | - | - |
| coordinates | number[] | Coordinate pair for the pin. |
| centerOn | boolean? | If set to true, center on and zoom to the given coordinates on start. Defaults to false. |
| epsg | string? | Coordinate reference system in which the given coordinates are encoded. Defaults to the epsg
value defined in the mapConfiguration. |
Example configuration:
initial: {
coordinates: [611694.909470, 5975658.233007],
centerOn: true,
epsg: 'EPSG:25832'
}
pins.style
| fieldName | type | description |
| - | - | - |
| fill | string? | Fill color of the pin. Defaults to blue (#005CA9
). |
| stroke | string? | Stroke (that is, border) color of the pin. Defaults to white (#FFFFFF
). |
Example configuration:
style: {
fill: '#003064',
stroke: '#000000'
}
Store
State
map.subscribe('plugin/pins/transformedCoordinate', (pinCoordinate) => {
/* Your Code. */
})
The pinCoordinate
is of type [number, number]
.
map.subscribe('plugin/pins/latLon', (pinCoordinate) => {
/* Your Code. */
})
The pinCoordinate
is transcribed to latitude / longitude.