solid-map-gl 1.13.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +157 -30
- package/dist/index.d.ts +489 -0
- package/dist/index.js +11 -0
- package/dist/index.jsx +2320 -0
- package/package.json +51 -35
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/styles.css +0 -1
- package/dist/source/components/Atmosphere/index.jsx +0 -13
- package/dist/source/components/Camera/index.jsx +0 -108
- package/dist/source/components/Control/index.jsx +0 -33
- package/dist/source/components/Draw/drawingStyles.jsx +0 -225
- package/dist/source/components/Draw/index.jsx +0 -52
- package/dist/source/components/Draw/modes/line_string.js +0 -43
- package/dist/source/components/Draw/modes/measurements.js +0 -76
- package/dist/source/components/Draw/modes/multi_point.js +0 -37
- package/dist/source/components/Draw/modes/point.js +0 -25
- package/dist/source/components/Draw/modes/polygon.js +0 -25
- package/dist/source/components/Draw/modes/radius.js +0 -138
- package/dist/source/components/Draw/modes/rectangle.js +0 -118
- package/dist/source/components/Draw/modes/rectangle_assisted.js +0 -233
- package/dist/source/components/Image/index.jsx +0 -135
- package/dist/source/components/Layer/index.jsx +0 -125
- package/dist/source/components/Layer3D/index.jsx +0 -330
- package/dist/source/components/Light/index.jsx +0 -10
- package/dist/source/components/MapGL/index.jsx +0 -273
- package/dist/source/components/MapProvider/index.jsx +0 -9
- package/dist/source/components/Marker/index.jsx +0 -57
- package/dist/source/components/Popup/index.jsx +0 -38
- package/dist/source/components/Source/index.jsx +0 -89
- package/dist/source/components/Terrain/index.jsx +0 -30
- package/dist/source/events.js +0 -78
- package/dist/source/index.jsx +0 -14
- package/dist/source/mapStyles.js +0 -116
- package/dist/source/styles.js +0 -62
- package/dist/types/components/Atmosphere/index.d.ts +0 -8
- package/dist/types/components/Camera/index.d.ts +0 -54
- package/dist/types/components/Control/index.d.ts +0 -15
- package/dist/types/components/Draw/drawingStyles.d.ts +0 -20
- package/dist/types/components/Draw/index.d.ts +0 -16
- package/dist/types/components/Draw/modes/line_string.d.ts +0 -2
- package/dist/types/components/Draw/modes/multi_point.d.ts +0 -2
- package/dist/types/components/Draw/modes/point.d.ts +0 -2
- package/dist/types/components/Draw/modes/polygon.d.ts +0 -2
- package/dist/types/components/Draw/modes/radius.d.ts +0 -2
- package/dist/types/components/Draw/modes/rectangle.d.ts +0 -2
- package/dist/types/components/Draw/modes/rectangle_assisted.d.ts +0 -18
- package/dist/types/components/Image/index.d.ts +0 -28
- package/dist/types/components/Layer/index.d.ts +0 -32
- package/dist/types/components/Layer3D/index.d.ts +0 -22
- package/dist/types/components/Light/index.d.ts +0 -8
- package/dist/types/components/MapGL/index.d.ts +0 -96
- package/dist/types/components/MapProvider/index.d.ts +0 -11
- package/dist/types/components/Marker/index.d.ts +0 -28
- package/dist/types/components/Popup/index.d.ts +0 -18
- package/dist/types/components/Source/index.d.ts +0 -13
- package/dist/types/components/Terrain/index.d.ts +0 -7
- package/dist/types/events.d.ts +0 -103
- package/dist/types/index.d.ts +0 -16
- package/dist/types/mapStyles.d.ts +0 -2
- package/dist/types/styles.d.ts +0 -2
package/dist/esm/styles.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:rgba(0,0,0,.7);color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { onCleanup, createEffect } from "solid-js";
|
|
2
|
-
import { useMapContext } from "../MapProvider";
|
|
3
|
-
export const Atmosphere = (props) => {
|
|
4
|
-
const [ctx] = useMapContext();
|
|
5
|
-
// Add or Update Atmosphere Layer
|
|
6
|
-
createEffect(() => ctx.map.setFog(props.style || {}));
|
|
7
|
-
// Remove Atmosphere Layer
|
|
8
|
-
onCleanup(() => {
|
|
9
|
-
if (ctx.map.getFog())
|
|
10
|
-
ctx.map.setFog(null);
|
|
11
|
-
});
|
|
12
|
-
return null;
|
|
13
|
-
};
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { createEffect, onCleanup, createSignal } from 'solid-js';
|
|
2
|
-
import { useMapContext } from '../MapProvider';
|
|
3
|
-
// linearly interpolate between two positions [x,y,z] based on time
|
|
4
|
-
const lerp = (a, b, t) => a.map((_, idx) => (1.0 - t) * a[idx] + t * b[idx]);
|
|
5
|
-
// sphericaly interpolate between two positions [x,y,z] based on time
|
|
6
|
-
const slerp = (a, b, t) => {
|
|
7
|
-
const dotProduct = a.map((_, idx) => a[idx] * b[idx]).reduce((m, n) => m + n);
|
|
8
|
-
const theta = Math.acos(dotProduct);
|
|
9
|
-
return a.map((_, idx) => (Math.sin((1 - t) * theta) / Math.sin(theta)) * a[idx] +
|
|
10
|
-
(Math.sin(t * theta) / Math.sin(theta)) * b[idx]);
|
|
11
|
-
};
|
|
12
|
-
// calculations from: https://easings.net
|
|
13
|
-
const easeQuad = {
|
|
14
|
-
in: (x) => x * x,
|
|
15
|
-
out: (x) => 1 - (1 - x) * (1 - x),
|
|
16
|
-
inOut: (x) => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2,
|
|
17
|
-
};
|
|
18
|
-
export const Camera = (props) => {
|
|
19
|
-
const [ctx] = useMapContext();
|
|
20
|
-
let animationTime = 0.1;
|
|
21
|
-
let isReverse = false;
|
|
22
|
-
// Handle User Interaction
|
|
23
|
-
const [userInteraction, setUserInteraction] = createSignal(false);
|
|
24
|
-
['mousedown', 'touchstart', 'wheel'].forEach((event) => ctx.map.on(event, (evt) => !evt.rotate && setUserInteraction(true)));
|
|
25
|
-
['moveend', 'mouseup', 'touchend'].forEach((event) => ctx.map.on(event, (evt) => !evt.rotate && setUserInteraction(false)));
|
|
26
|
-
const updateCameraPosition = async ([lng, lat, alt], target) => {
|
|
27
|
-
const camera = ctx.map.getFreeCameraOptions();
|
|
28
|
-
camera.position = window.MapLib.MercatorCoordinate.fromLngLat([lng, lat], alt);
|
|
29
|
-
camera.lookAtPoint(target);
|
|
30
|
-
ctx.map.setFreeCameraOptions(camera);
|
|
31
|
-
};
|
|
32
|
-
const frame = () => {
|
|
33
|
-
props.translate && window.requestAnimationFrame(frame);
|
|
34
|
-
const params = [
|
|
35
|
-
props.translate.start,
|
|
36
|
-
props.translate.end,
|
|
37
|
-
props.translate.easing
|
|
38
|
-
? easeQuad[props.translate.easing](animationTime)
|
|
39
|
-
: animationTime,
|
|
40
|
-
];
|
|
41
|
-
const position = props.translate.type === 'line' ? lerp(...params) : slerp(...params);
|
|
42
|
-
updateCameraPosition(position, props.translate.target);
|
|
43
|
-
if (!props.translate.loop && (animationTime > 1.0 || animationTime < 0.0))
|
|
44
|
-
isReverse = !isReverse;
|
|
45
|
-
animationTime = isReverse ? animationTime - 0.001 : animationTime + 0.001;
|
|
46
|
-
};
|
|
47
|
-
createEffect(() => {
|
|
48
|
-
props.translate && window.requestAnimationFrame(frame);
|
|
49
|
-
});
|
|
50
|
-
const options = { duration: 1000, easing: (n) => n };
|
|
51
|
-
const rotateGlobe = () => {
|
|
52
|
-
if (userInteraction())
|
|
53
|
-
return;
|
|
54
|
-
const { secPerRev = 120, maxSpinZoom = 5, slowSpinZoom = 3, } = props.rotateGlobe;
|
|
55
|
-
const zoom = ctx.map.getZoom();
|
|
56
|
-
if (zoom > maxSpinZoom)
|
|
57
|
-
return;
|
|
58
|
-
let distancePerSecond = 360 / secPerRev;
|
|
59
|
-
if (zoom > slowSpinZoom)
|
|
60
|
-
distancePerSecond *= (maxSpinZoom - zoom) / (maxSpinZoom - slowSpinZoom);
|
|
61
|
-
const center = ctx.map.getCenter();
|
|
62
|
-
center.lng = props.reverse
|
|
63
|
-
? center.lng + distancePerSecond
|
|
64
|
-
: center.lng - distancePerSecond;
|
|
65
|
-
ctx.map.easeTo({ center, ...options }, { rotate: true });
|
|
66
|
-
};
|
|
67
|
-
const rotateViewport = () => {
|
|
68
|
-
if (!props.rotateViewport || userInteraction()) {
|
|
69
|
-
ctx.map.stop();
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const rotateViewport = props.rotateViewport;
|
|
73
|
-
const secPerRev = rotateViewport?.secPerRev || 60;
|
|
74
|
-
const bearing = props.reverse
|
|
75
|
-
? ctx.map.getBearing() + 360 / secPerRev
|
|
76
|
-
: ctx.map.getBearing() - 360 / secPerRev;
|
|
77
|
-
const pitch = rotateViewport?.pitch || 60;
|
|
78
|
-
const around = rotateViewport?.around;
|
|
79
|
-
ctx.map.easeTo({ bearing, pitch, around, ...options }, { rotate: true });
|
|
80
|
-
};
|
|
81
|
-
const onEnd = () => (props.rotateGlobe ? rotateGlobe() : rotateViewport());
|
|
82
|
-
ctx.map.on('moveend', onEnd).on('dragend', onEnd);
|
|
83
|
-
let originalCenter;
|
|
84
|
-
createEffect(() => {
|
|
85
|
-
if (props.rotateGlobe == undefined)
|
|
86
|
-
return;
|
|
87
|
-
if (props.rotateGlobe) {
|
|
88
|
-
originalCenter = ctx.map.getCenter();
|
|
89
|
-
rotateGlobe();
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
props.resetWhenStopped
|
|
93
|
-
? ctx.map.stop().easeTo({ center: originalCenter })
|
|
94
|
-
: ctx.map.stop();
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
createEffect(() => {
|
|
98
|
-
if (props.rotateViewport == undefined)
|
|
99
|
-
return;
|
|
100
|
-
props.rotateViewport
|
|
101
|
-
? rotateViewport()
|
|
102
|
-
: props.resetWhenStopped
|
|
103
|
-
? ctx.map.stop().resetNorthPitch()
|
|
104
|
-
: ctx.map.stop();
|
|
105
|
-
});
|
|
106
|
-
onCleanup(() => ctx.map.off('moveend', onEnd).off('dragend', onEnd));
|
|
107
|
-
return props.children;
|
|
108
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { createSignal, createEffect, onCleanup, splitProps, untrack, } from "solid-js";
|
|
2
|
-
import { useMapContext } from "../MapProvider";
|
|
3
|
-
export const Control = (props) => {
|
|
4
|
-
const [ctx] = useMapContext();
|
|
5
|
-
const [update, create] = splitProps(props, ["position"]);
|
|
6
|
-
const [control, setControl] = createSignal(null);
|
|
7
|
-
const controlClasses = new Map([
|
|
8
|
-
["navigation", window.MapLib.NavigationControl],
|
|
9
|
-
["scale", window.MapLib.ScaleControl],
|
|
10
|
-
["attribution", window.MapLib.AttributionControl],
|
|
11
|
-
["geolocate", window.MapLib.GeolocateControl],
|
|
12
|
-
["fullscreen", window.MapLib.FullscreenControl],
|
|
13
|
-
["logo", window.MapLib.LogoControl],
|
|
14
|
-
["terrain", window.MapLib.TerrainControl],
|
|
15
|
-
]);
|
|
16
|
-
// Add Control
|
|
17
|
-
createEffect(() => {
|
|
18
|
-
untrack(() => control() &&
|
|
19
|
-
ctx.map.hasControl(control()) &&
|
|
20
|
-
ctx.map.removeControl(control()));
|
|
21
|
-
setControl(create.custom ||
|
|
22
|
-
new (controlClasses.get(create.type || "navigation"))(create.options));
|
|
23
|
-
});
|
|
24
|
-
// Update Position
|
|
25
|
-
createEffect(() => {
|
|
26
|
-
ctx.map.hasControl(control()) && ctx.map.removeControl(control());
|
|
27
|
-
ctx.map.addControl(control(), update.position);
|
|
28
|
-
});
|
|
29
|
-
onCleanup(() => {
|
|
30
|
-
ctx.map.hasControl(control()) && ctx.map.removeControl(control());
|
|
31
|
-
});
|
|
32
|
-
return null;
|
|
33
|
-
};
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
export default [
|
|
2
|
-
// point active
|
|
3
|
-
// {
|
|
4
|
-
// id: "points-active-halo",
|
|
5
|
-
// type: "circle",
|
|
6
|
-
// filter: [
|
|
7
|
-
// "all",
|
|
8
|
-
// ["==", "$type", "Point"],
|
|
9
|
-
// ["==", "meta", "feature"],
|
|
10
|
-
// ["==", "active", "true"],
|
|
11
|
-
// ],
|
|
12
|
-
// paint: {
|
|
13
|
-
// "circle-radius": 9,
|
|
14
|
-
// "circle-color": "#f7ad3b",
|
|
15
|
-
// "circle-opacity": 0.75,
|
|
16
|
-
// },
|
|
17
|
-
// },
|
|
18
|
-
// {
|
|
19
|
-
// id: "highlight-active-points",
|
|
20
|
-
// type: "circle",
|
|
21
|
-
// filter: [
|
|
22
|
-
// "all",
|
|
23
|
-
// ["==", "$type", "Point"],
|
|
24
|
-
// ["==", "meta", "feature"],
|
|
25
|
-
// ["==", "active", "true"],
|
|
26
|
-
// ],
|
|
27
|
-
// paint: {
|
|
28
|
-
// "circle-radius": 5,
|
|
29
|
-
// "circle-color": ["get", "user_color"],
|
|
30
|
-
// },
|
|
31
|
-
// },
|
|
32
|
-
// // point inactive
|
|
33
|
-
// {
|
|
34
|
-
// id: "points-inactive-halo",
|
|
35
|
-
// type: "circle",
|
|
36
|
-
// filter: [
|
|
37
|
-
// "all",
|
|
38
|
-
// ["==", "$type", "Point"],
|
|
39
|
-
// ["==", "meta", "feature"],
|
|
40
|
-
// ["==", "active", "false"],
|
|
41
|
-
// ["!has", "user_label"],
|
|
42
|
-
// ],
|
|
43
|
-
// paint: {
|
|
44
|
-
// "circle-radius": 8,
|
|
45
|
-
// "circle-color": "#FFFFFF",
|
|
46
|
-
// "circle-opacity": 0.75,
|
|
47
|
-
// },
|
|
48
|
-
// },
|
|
49
|
-
// {
|
|
50
|
-
// id: "points-inactive",
|
|
51
|
-
// type: "circle",
|
|
52
|
-
// filter: [
|
|
53
|
-
// "all",
|
|
54
|
-
// ["==", "$type", "Point"],
|
|
55
|
-
// ["==", "meta", "feature"],
|
|
56
|
-
// ["==", "active", "false"],
|
|
57
|
-
// ["!has", "user_label"],
|
|
58
|
-
// ],
|
|
59
|
-
// paint: {
|
|
60
|
-
// "circle-radius": 5,
|
|
61
|
-
// "circle-color": ["get", "user_color"],
|
|
62
|
-
// },
|
|
63
|
-
// },
|
|
64
|
-
// {
|
|
65
|
-
// id: "points-inactive-label",
|
|
66
|
-
// type: "symbol",
|
|
67
|
-
// filter: [
|
|
68
|
-
// "all",
|
|
69
|
-
// ["==", "$type", "Point"],
|
|
70
|
-
// ["==", "meta", "feature"],
|
|
71
|
-
// ["==", "active", "false"],
|
|
72
|
-
// ["has", "user_label"],
|
|
73
|
-
// ],
|
|
74
|
-
// layout: {
|
|
75
|
-
// "text-field": ["get", "user_label"],
|
|
76
|
-
// "text-font": ["Arial Regular"],
|
|
77
|
-
// "text-anchor": "bottom",
|
|
78
|
-
// "text-size": 20,
|
|
79
|
-
// },
|
|
80
|
-
// paint: {
|
|
81
|
-
// "text-halo-color": "rgba(255,255,255,0.75)",
|
|
82
|
-
// "text-halo-width": 2,
|
|
83
|
-
// "text-halo-blur": 1,
|
|
84
|
-
// "text-color": ["get", "user_color"],
|
|
85
|
-
// },
|
|
86
|
-
// },
|
|
87
|
-
// // line avtive (being drawn)
|
|
88
|
-
// {
|
|
89
|
-
// id: "gl-draw-line-active",
|
|
90
|
-
// type: "line",
|
|
91
|
-
// filter: ["all", ["==", "$type", "LineString"], ["==", "active", "true"]],
|
|
92
|
-
// layout: {
|
|
93
|
-
// "line-cap": "round",
|
|
94
|
-
// "line-join": "round",
|
|
95
|
-
// },
|
|
96
|
-
// paint: {
|
|
97
|
-
// "line-color": "#f7ad3b",
|
|
98
|
-
// "line-dasharray": [0.2, 2],
|
|
99
|
-
// "line-width": 3,
|
|
100
|
-
// },
|
|
101
|
-
// },
|
|
102
|
-
// {
|
|
103
|
-
// id: "gl-draw-line-inactive",
|
|
104
|
-
// type: "line",
|
|
105
|
-
// filter: ["all", ["==", "$type", "LineString"], ["==", "active", "false"]],
|
|
106
|
-
// layout: {
|
|
107
|
-
// "line-cap": "round",
|
|
108
|
-
// "line-join": "round",
|
|
109
|
-
// },
|
|
110
|
-
// paint: {
|
|
111
|
-
// "line-color": [
|
|
112
|
-
// "case",
|
|
113
|
-
// ["has", "user_color"],
|
|
114
|
-
// ["get", "user_color"],
|
|
115
|
-
// "#f7ad3b",
|
|
116
|
-
// ],
|
|
117
|
-
// "line-width": 2,
|
|
118
|
-
// },
|
|
119
|
-
// },
|
|
120
|
-
// // vertex point halos
|
|
121
|
-
// {
|
|
122
|
-
// id: "gl-draw-polygon-and-line-vertex-halo-active",
|
|
123
|
-
// type: "circle",
|
|
124
|
-
// filter: [
|
|
125
|
-
// "all",
|
|
126
|
-
// ["==", "meta", "vertex"],
|
|
127
|
-
// ["==", "$type", "Point"],
|
|
128
|
-
// ["!=", "mode", "static"],
|
|
129
|
-
// ],
|
|
130
|
-
// paint: {
|
|
131
|
-
// "circle-radius": 5,
|
|
132
|
-
// "circle-color": "#FFF",
|
|
133
|
-
// "circle-opacity": 0.75,
|
|
134
|
-
// },
|
|
135
|
-
// },
|
|
136
|
-
// // vertex points
|
|
137
|
-
// {
|
|
138
|
-
// id: "gl-draw-polygon-and-line-vertex-active",
|
|
139
|
-
// type: "circle",
|
|
140
|
-
// filter: [
|
|
141
|
-
// "all",
|
|
142
|
-
// ["==", "meta", "vertex"],
|
|
143
|
-
// ["==", "$type", "Point"],
|
|
144
|
-
// ["!=", "mode", "static"],
|
|
145
|
-
// ],
|
|
146
|
-
// paint: {
|
|
147
|
-
// "circle-radius": 3,
|
|
148
|
-
// "circle-color": "#f7ad3b",
|
|
149
|
-
// },
|
|
150
|
-
// },
|
|
151
|
-
// // polygon fill
|
|
152
|
-
// {
|
|
153
|
-
// id: "gl-draw-polygon-fill-inactive",
|
|
154
|
-
// type: "fill",
|
|
155
|
-
// filter: ["==", "$type", "Polygon"],
|
|
156
|
-
// paint: {
|
|
157
|
-
// "fill-color": [
|
|
158
|
-
// "case",
|
|
159
|
-
// ["has", "user_color"],
|
|
160
|
-
// ["get", "user_color"],
|
|
161
|
-
// "#f7ad3b",
|
|
162
|
-
// ],
|
|
163
|
-
// "fill-opacity": 0.1,
|
|
164
|
-
// },
|
|
165
|
-
// },
|
|
166
|
-
// // polygon outline stroke
|
|
167
|
-
// // This doesn't style the first edge of the polygon, which uses the line stroke styling instead
|
|
168
|
-
// {
|
|
169
|
-
// id: "gl-draw-polygon-stroke-active",
|
|
170
|
-
// type: "line",
|
|
171
|
-
// filter: ["all", ["==", "$type", "Polygon"], ["==", "active", "true"]],
|
|
172
|
-
// layout: {
|
|
173
|
-
// "line-cap": "round",
|
|
174
|
-
// "line-join": "round",
|
|
175
|
-
// },
|
|
176
|
-
// paint: {
|
|
177
|
-
// "line-color": "#f7ad3b",
|
|
178
|
-
// "line-dasharray": [0.5, 2],
|
|
179
|
-
// "line-width": 2,
|
|
180
|
-
// },
|
|
181
|
-
// },
|
|
182
|
-
// {
|
|
183
|
-
// id: "gl-draw-polygon-stroke-inactive",
|
|
184
|
-
// type: "line",
|
|
185
|
-
// filter: ["all", ["==", "$type", "Polygon"], ["==", "active", "false"]],
|
|
186
|
-
// layout: {
|
|
187
|
-
// "line-cap": "round",
|
|
188
|
-
// "line-join": "round",
|
|
189
|
-
// },
|
|
190
|
-
// paint: {
|
|
191
|
-
// "line-color": [
|
|
192
|
-
// "case",
|
|
193
|
-
// ["has", "user_color"],
|
|
194
|
-
// ["get", "user_color"],
|
|
195
|
-
// "#f7ad3b",
|
|
196
|
-
// ],
|
|
197
|
-
// "line-width": 2,
|
|
198
|
-
// },
|
|
199
|
-
// },
|
|
200
|
-
{
|
|
201
|
-
id: "measure-label",
|
|
202
|
-
type: "symbol",
|
|
203
|
-
filter: ["all", ["==", "$type", "Point"], ["==", "user_type", "measure"]],
|
|
204
|
-
layout: {
|
|
205
|
-
"text-field": ["get", "user_value"],
|
|
206
|
-
"text-anchor": ["get", "user_anchor"],
|
|
207
|
-
"text-offset": [
|
|
208
|
-
"match",
|
|
209
|
-
["get", "user_anchor"],
|
|
210
|
-
"bottom",
|
|
211
|
-
[0, -0.5],
|
|
212
|
-
[0, 0],
|
|
213
|
-
],
|
|
214
|
-
"text-size": 12,
|
|
215
|
-
"text-allow-overlap": true,
|
|
216
|
-
"text-ignore-placement": true,
|
|
217
|
-
},
|
|
218
|
-
paint: {
|
|
219
|
-
"text-halo-color": "rgba(255,255,255,0.75)",
|
|
220
|
-
"text-halo-width": 2,
|
|
221
|
-
"text-halo-blur": 1,
|
|
222
|
-
"text-color": "#000",
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
];
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { onCleanup } from "solid-js";
|
|
2
|
-
import { useMapContext } from "../MapProvider";
|
|
3
|
-
import { drawEvents } from "../../events";
|
|
4
|
-
import styles from "./drawingStyles";
|
|
5
|
-
export const Draw = (props) => {
|
|
6
|
-
const [ctx] = useMapContext();
|
|
7
|
-
// const modes = props.lib.modes;
|
|
8
|
-
// modes.point = PointMode;
|
|
9
|
-
// modes.multi_point = MultiPointMode;
|
|
10
|
-
// modes.line_string = LineStringeMode;
|
|
11
|
-
// modes.draw_polygon = PolygonMode;
|
|
12
|
-
// modes.radius = RadiusMode;
|
|
13
|
-
// modes.rectangle = RectangleMode;
|
|
14
|
-
// modes.rectangle_assisted = RectangleAssistedMode;
|
|
15
|
-
// Add Draw Control
|
|
16
|
-
const draw = new props.lib({
|
|
17
|
-
styles: [...props.lib.lib.theme, ...styles],
|
|
18
|
-
modes: {
|
|
19
|
-
...props.lib.modes,
|
|
20
|
-
// draw_point,
|
|
21
|
-
// draw_line_string,
|
|
22
|
-
// draw_polygon,
|
|
23
|
-
// draw_radius,
|
|
24
|
-
// draw_rectangle,
|
|
25
|
-
},
|
|
26
|
-
userProperties: {
|
|
27
|
-
showLength: props.showLength || false,
|
|
28
|
-
showArea: props.showArea || false,
|
|
29
|
-
},
|
|
30
|
-
...props.options,
|
|
31
|
-
});
|
|
32
|
-
ctx.map.addControl(draw, props.position || "top-right");
|
|
33
|
-
props.getInstance && props.getInstance(draw);
|
|
34
|
-
// Hook up events
|
|
35
|
-
const eventList = {};
|
|
36
|
-
drawEvents.forEach((item) => {
|
|
37
|
-
if (props[item]) {
|
|
38
|
-
const event = `draw.${item.slice(2).toLowerCase()}`;
|
|
39
|
-
const fn = (evt) => props[item](evt);
|
|
40
|
-
eventList[event] = fn;
|
|
41
|
-
ctx.map.on(event, fn);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
// Remove Draw Control
|
|
45
|
-
onCleanup(() => {
|
|
46
|
-
// Remove Events
|
|
47
|
-
Object.keys(eventList).forEach((event) => ctx.map.off(event, eventList[event]));
|
|
48
|
-
// Remove Control
|
|
49
|
-
ctx.map?.removeControl(draw);
|
|
50
|
-
});
|
|
51
|
-
return null;
|
|
52
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import MapboxDraw from "@mapbox/mapbox-gl-draw";
|
|
2
|
-
import { getLength } from "./measurements";
|
|
3
|
-
const DrawLineString = MapboxDraw.modes.draw_line_string;
|
|
4
|
-
export default {
|
|
5
|
-
...DrawLineString,
|
|
6
|
-
onSetup: function () {
|
|
7
|
-
const draw = DrawLineString.onSetup.call(this);
|
|
8
|
-
const measure = this.newFeature({
|
|
9
|
-
type: "Feature",
|
|
10
|
-
properties: {
|
|
11
|
-
type: "measure",
|
|
12
|
-
value: "TTT",
|
|
13
|
-
},
|
|
14
|
-
geometry: {
|
|
15
|
-
type: "Point",
|
|
16
|
-
coordinates: [],
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
return { ...draw, measure };
|
|
20
|
-
},
|
|
21
|
-
onMouseMove: function (state, e) {
|
|
22
|
-
DrawLineString.onMouseMove.call(this, state, e);
|
|
23
|
-
if (state.line.coordinates.length >= 2) {
|
|
24
|
-
const { label, pos } = getLength(state.line.coordinates);
|
|
25
|
-
state.measure.properties.value = label;
|
|
26
|
-
state.measure.updateCoordinate("", pos[1], pos[0]);
|
|
27
|
-
// console.log(state.measure);
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
toDisplayFeatures: function (state, geojson, display) {
|
|
31
|
-
// const displayMeasure = (geojson) => {
|
|
32
|
-
// display(geojson);
|
|
33
|
-
// this.drawConfig.userProperties.showLength &&
|
|
34
|
-
// geojson.geometry.coordinates.forEach((coords, index) => {
|
|
35
|
-
// if (!Array.isArray(coords) || index == 0) return;
|
|
36
|
-
// display(getLength([geojson.geometry.coordinates[index - 1], coords]));
|
|
37
|
-
// });
|
|
38
|
-
// };
|
|
39
|
-
DrawLineString.toDisplayFeatures.call(this, state, geojson, display);
|
|
40
|
-
console.log(state, geojson);
|
|
41
|
-
display(state.measure.toGeoJSON());
|
|
42
|
-
},
|
|
43
|
-
};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import length from "@turf/length";
|
|
2
|
-
import area from "@turf/area";
|
|
3
|
-
import midpoint from "@turf/midpoint";
|
|
4
|
-
import { centerOfMass } from "@turf/center-of-mass";
|
|
5
|
-
export const getCoords = (coords) => {
|
|
6
|
-
return (new Intl.NumberFormat(undefined, {
|
|
7
|
-
maximumFractionDigits: 5,
|
|
8
|
-
}).format(coords[0]) +
|
|
9
|
-
"° " +
|
|
10
|
-
new Intl.NumberFormat(undefined, {
|
|
11
|
-
maximumFractionDigits: 5,
|
|
12
|
-
}).format(coords[1]) +
|
|
13
|
-
"°");
|
|
14
|
-
};
|
|
15
|
-
export const getLength = (coordinates, meta) => {
|
|
16
|
-
// length calculation in kilometers or miles
|
|
17
|
-
const lengthValue = length({
|
|
18
|
-
type: "Feature",
|
|
19
|
-
properties: {},
|
|
20
|
-
geometry: {
|
|
21
|
-
type: "LineString",
|
|
22
|
-
coordinates,
|
|
23
|
-
},
|
|
24
|
-
}, {
|
|
25
|
-
units: window.navigator.language === "en-US" ? "miles" : "kilometers",
|
|
26
|
-
});
|
|
27
|
-
const label = window.navigator.language === "en-US"
|
|
28
|
-
? new Intl.NumberFormat(undefined, {
|
|
29
|
-
style: "unit",
|
|
30
|
-
maximumFractionDigits: 2,
|
|
31
|
-
unit: lengthValue <= 1 ? "foot" : "mile",
|
|
32
|
-
}).format(lengthValue <= 1 ? lengthValue * 5280 : lengthValue)
|
|
33
|
-
: new Intl.NumberFormat(undefined, {
|
|
34
|
-
style: "unit",
|
|
35
|
-
maximumFractionDigits: 2,
|
|
36
|
-
unit: lengthValue <= 1 ? "meter" : "kilometer",
|
|
37
|
-
}).format(lengthValue <= 1 ? lengthValue * 1000 : lengthValue);
|
|
38
|
-
return {
|
|
39
|
-
label,
|
|
40
|
-
pos: midpoint(coordinates[0], coordinates[1]).geometry.coordinates,
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
export const getArea = (coordinates, meta) => {
|
|
44
|
-
// area calculation in square meters
|
|
45
|
-
const areaValue = area({
|
|
46
|
-
type: "Feature",
|
|
47
|
-
properties: {},
|
|
48
|
-
geometry: {
|
|
49
|
-
type: "Polygon",
|
|
50
|
-
coordinates,
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
const areaLabel = window.navigator.language === "en-US"
|
|
54
|
-
? new Intl.NumberFormat(undefined, {
|
|
55
|
-
style: "unit",
|
|
56
|
-
maximumFractionDigits: 2,
|
|
57
|
-
unit: areaValue <= 10.764 ? "foot" : "mile",
|
|
58
|
-
}).format(areaValue <= 10.764 ? areaValue * 10.764 : areaValue * 1.0000003861) + "²"
|
|
59
|
-
: new Intl.NumberFormat(undefined, {
|
|
60
|
-
style: "unit",
|
|
61
|
-
maximumFractionDigits: 2,
|
|
62
|
-
unit: areaValue <= 1000000 ? "meter" : "kilometer",
|
|
63
|
-
}).format(areaValue <= 1000000 ? areaValue : areaValue / 1000000) + "²";
|
|
64
|
-
return {
|
|
65
|
-
type: "Feature",
|
|
66
|
-
properties: {
|
|
67
|
-
meta: "measureLabel",
|
|
68
|
-
value: areaLabel,
|
|
69
|
-
...meta,
|
|
70
|
-
},
|
|
71
|
-
geometry: centerOfMass({
|
|
72
|
-
type: "Polygon",
|
|
73
|
-
coordinates,
|
|
74
|
-
}).geometry,
|
|
75
|
-
};
|
|
76
|
-
};
|