@sjvair/monitor-map 3.0.3 → 3.0.5
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/dist/lib/LoadScreen.svelte +68 -0
- package/dist/lib/LoadScreen.svelte.d.ts +25 -0
- package/dist/lib/MainMapView.svelte +1 -0
- package/dist/lib/MainMapView.svelte.d.ts +26 -0
- package/dist/lib/MapLegend.svelte +15 -0
- package/dist/lib/MapLegend.svelte.d.ts +18 -0
- package/dist/lib/MonitorDetailPanel.svelte +152 -0
- package/dist/lib/MonitorDetailPanel.svelte.d.ts +3 -0
- package/dist/lib/MonitorMapLayout.svelte +193 -0
- package/dist/lib/MonitorMapLayout.svelte.d.ts +7 -0
- package/dist/lib/actions.d.ts +3 -0
- package/dist/lib/actions.js +12 -8
- package/dist/lib/assets/icons/adjustment-horizontal.svg +3 -0
- package/dist/lib/assets/logos/airgradient-blue.svg +63 -0
- package/dist/lib/assets/logos/airnow-compact.jpg +0 -0
- package/dist/lib/assets/logos/carb-compact.jpg +0 -0
- package/dist/lib/assets/logos/purpleair-compact.png +0 -0
- package/dist/lib/assets/logos/sjvair-parts/sjvair-air.webp +0 -0
- package/dist/lib/assets/logos/sjvair-parts/sjvair-icon.webp +0 -0
- package/dist/lib/assets/logos/sjvair-parts/sjvair-sjv.webp +0 -0
- package/dist/lib/assets/logos/sjvair-white.svg +115 -0
- package/dist/lib/assets/logos/sjvair.svg +96 -0
- package/dist/lib/collocation-sites/CollocationTooltip.svelte +98 -0
- package/dist/lib/collocation-sites/CollocationTooltip.svelte.d.ts +7 -0
- package/dist/lib/collocation-sites/collocation-utils.d.ts +3 -0
- package/dist/lib/collocation-sites/collocation-utils.js +30 -0
- package/dist/lib/collocation-sites/collocations-icon-manager.svelte.d.ts +7 -0
- package/dist/lib/collocation-sites/collocations-icon-manager.svelte.js +17 -20
- package/dist/lib/collocation-sites/collocations-map-integration.svelte.d.ts +18 -0
- package/dist/lib/collocation-sites/collocations-map-integration.svelte.js +98 -83
- package/dist/lib/collocation-sites/collocations.svelte.d.ts +9 -0
- package/dist/lib/collocation-sites/collocations.svelte.js +17 -26
- package/dist/lib/collocation-sites/types.d.ts +8 -0
- package/dist/lib/collocation-sites/types.js +1 -0
- package/dist/lib/colors.d.ts +17 -0
- package/dist/lib/colors.js +29 -23
- package/dist/lib/components/DataBox.svelte +29 -0
- package/dist/lib/components/DataBox.svelte.d.ts +9 -0
- package/dist/lib/components/DisplayOption.svelte +7 -0
- package/dist/lib/components/DisplayOption.svelte.d.ts +5 -0
- package/dist/lib/components/MapLayersDisplayOptions.svelte +42 -0
- package/dist/lib/components/MapLayersDisplayOptions.svelte.d.ts +18 -0
- package/dist/lib/components/SegmentedControl.svelte +61 -0
- package/dist/lib/components/SegmentedControl.svelte.d.ts +11 -0
- package/dist/lib/components/ToggleSwitch.svelte +93 -0
- package/dist/lib/components/ToggleSwitch.svelte.d.ts +9 -0
- package/dist/lib/components/ui/button/button.svelte +89 -0
- package/dist/lib/components/ui/button/button.svelte.d.ts +70 -0
- package/dist/lib/components/ui/button/index.d.ts +2 -0
- package/dist/lib/components/ui/button/index.js +4 -0
- package/dist/lib/components/ui/range-calendar/index.d.ts +19 -0
- package/dist/lib/components/ui/range-calendar/index.js +21 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-caption.svelte +76 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-caption.svelte.d.ts +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-cell.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-day.svelte +36 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-day.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.svelte +7 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.svelte +7 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.svelte +12 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid.svelte +16 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-header.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-heading.svelte +16 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month-select.svelte +44 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month-select.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month.svelte +15 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-month.svelte.d.ts +5 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-months.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-nav.svelte +19 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-nav.svelte.d.ts +5 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-next-button.svelte +36 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +8 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.svelte +36 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +8 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-year-select.svelte +43 -0
- package/dist/lib/components/ui/range-calendar/range-calendar-year-select.svelte.d.ts +4 -0
- package/dist/lib/components/ui/range-calendar/range-calendar.svelte +112 -0
- package/dist/lib/components/ui/range-calendar/range-calendar.svelte.d.ts +21 -0
- package/dist/lib/data-chart/DataChart.svelte +303 -0
- package/dist/lib/data-chart/DataChart.svelte.d.ts +7 -0
- package/dist/lib/data-chart/DateRange.d.ts +6 -0
- package/dist/lib/data-chart/DateRange.js +15 -14
- package/dist/lib/data-chart/chart-utils.d.ts +3 -0
- package/dist/lib/data-chart/chart-utils.js +157 -93
- package/dist/lib/data-chart/data-chart.svelte.d.ts +7 -0
- package/dist/lib/data-chart/data-chart.svelte.js +7 -28
- package/dist/lib/data-chart/requests.d.ts +3 -0
- package/dist/lib/data-chart/requests.js +36 -28
- package/dist/lib/data-chart/tooltip.d.ts +10 -0
- package/dist/lib/data-chart/tooltip.js +160 -98
- package/dist/lib/ev-stations/components/EvStationClusterTooltip.svelte +16 -0
- package/dist/lib/ev-stations/components/EvStationClusterTooltip.svelte.d.ts +7 -0
- package/dist/lib/ev-stations/components/EvStationTooltip.svelte +127 -0
- package/dist/lib/ev-stations/components/EvStationTooltip.svelte.d.ts +7 -0
- package/dist/lib/ev-stations/components/EvStationsDisplayOptions.svelte +46 -0
- package/dist/lib/ev-stations/components/EvStationsDisplayOptions.svelte.d.ts +18 -0
- package/dist/lib/ev-stations/data-maps.d.ts +5 -0
- package/dist/lib/ev-stations/data-maps.js +152 -4
- package/dist/lib/ev-stations/ev-station-icons.d.ts +16 -0
- package/dist/lib/ev-stations/ev-station-icons.js +21 -27
- package/dist/lib/ev-stations/ev-stations-cluster-renderer.d.ts +19 -0
- package/dist/lib/ev-stations/ev-stations-cluster-renderer.js +130 -117
- package/dist/lib/ev-stations/ev-stations-map-integration.svelte.d.ts +31 -0
- package/dist/lib/ev-stations/ev-stations-map-integration.svelte.js +206 -180
- package/dist/lib/ev-stations/ev-stations.svelte.d.ts +9 -0
- package/dist/lib/ev-stations/ev-stations.svelte.js +54 -32
- package/dist/lib/ev-stations/types.d.ts +53 -0
- package/dist/lib/ev-stations/types.js +1 -0
- package/dist/lib/ev-stations/zip-codes.d.ts +13 -0
- package/dist/lib/ev-stations/zip-codes.js +457 -135
- package/dist/lib/hms/components/HMSFireLegend.svelte +21 -0
- package/dist/lib/hms/components/HMSFireLegend.svelte.d.ts +18 -0
- package/dist/lib/hms/hms-fire-icon-manager.d.ts +5 -0
- package/dist/lib/hms/hms-fire-icon-manager.js +28 -37
- package/dist/lib/hms/hms-fire-map-integration.svelte.d.ts +23 -0
- package/dist/lib/hms/hms-fire-map-integration.svelte.js +94 -97
- package/dist/lib/hms/hms-smoke-map-integration.svelte.d.ts +19 -0
- package/dist/lib/hms/hms-smoke-map-integration.svelte.js +68 -84
- package/dist/lib/hms/hms.svelte.d.ts +19 -0
- package/dist/lib/hms/hms.svelte.js +225 -76
- package/dist/lib/index.d.ts +68 -0
- package/dist/lib/index.js +56 -21
- package/dist/lib/map/Map.svelte +13 -0
- package/dist/lib/map/Map.svelte.d.ts +8 -0
- package/dist/lib/map/MapStyleDisplayOptions.svelte +61 -0
- package/dist/lib/map/MapStyleDisplayOptions.svelte.d.ts +3 -0
- package/dist/lib/map/Menu.svelte +64 -0
- package/dist/lib/map/Menu.svelte.d.ts +5 -0
- package/dist/lib/map/icons.d.ts +7 -0
- package/dist/lib/map/icons.js +24 -22
- package/dist/lib/map/integrations/base-layer-seperator.d.ts +9 -0
- package/dist/lib/map/integrations/base-layer-seperator.js +11 -12
- package/dist/lib/map/integrations/click-manager.d.ts +14 -0
- package/dist/lib/map/integrations/click-manager.js +52 -33
- package/dist/lib/map/integrations/integrations-manager.d.ts +8 -0
- package/dist/lib/map/integrations/integrations-manager.js +20 -12
- package/dist/lib/map/integrations/map-display-option.svelte.d.ts +7 -0
- package/dist/lib/map/integrations/map-display-option.svelte.js +10 -18
- package/dist/lib/map/integrations/map-geojson-integration.svelte.d.ts +13 -0
- package/dist/lib/map/integrations/map-geojson-integration.svelte.js +21 -17
- package/dist/lib/map/integrations/map-icon-manager.d.ts +15 -0
- package/dist/lib/map/integrations/map-icon-manager.js +52 -46
- package/dist/lib/map/integrations/map-integration.svelte.d.ts +6 -0
- package/dist/lib/map/integrations/map-integration.svelte.js +2 -5
- package/dist/lib/map/integrations/map-layer-integration.svelte.d.ts +11 -0
- package/dist/lib/map/integrations/map-layer-integration.svelte.js +36 -23
- package/dist/lib/map/integrations/tooltip.svelte.d.ts +28 -0
- package/dist/lib/map/integrations/tooltip.svelte.js +120 -78
- package/dist/lib/map/integrations/types.d.ts +14 -0
- package/dist/lib/map/integrations/types.js +1 -0
- package/dist/lib/map/map.svelte.d.ts +14 -0
- package/dist/lib/map/map.svelte.js +48 -50
- package/dist/lib/map/utils.d.ts +7 -0
- package/dist/lib/map/utils.js +32 -29
- package/dist/lib/monitors/components/MonitorClusterTooltip.svelte +112 -0
- package/dist/lib/monitors/components/MonitorClusterTooltip.svelte.d.ts +7 -0
- package/dist/lib/monitors/components/MonitorMarkersLegend.svelte +41 -0
- package/dist/lib/monitors/components/MonitorMarkersLegend.svelte.d.ts +3 -0
- package/dist/lib/monitors/components/MonitorSubscriptionManager.svelte +128 -0
- package/dist/lib/monitors/components/MonitorSubscriptionManager.svelte.d.ts +6 -0
- package/dist/lib/monitors/components/MonitorTooltip.svelte +61 -0
- package/dist/lib/monitors/components/MonitorTooltip.svelte.d.ts +7 -0
- package/dist/lib/monitors/components/MonitorWidgetModal.svelte +100 -0
- package/dist/lib/monitors/components/MonitorWidgetModal.svelte.d.ts +6 -0
- package/dist/lib/monitors/components/MonitorsDisplayOptions.svelte +79 -0
- package/dist/lib/monitors/components/MonitorsDisplayOptions.svelte.d.ts +3 -0
- package/dist/lib/monitors/monitor-utils.d.ts +4 -0
- package/dist/lib/monitors/monitor-utils.js +33 -23
- package/dist/lib/monitors/monitors-cluster-renderer.d.ts +33 -0
- package/dist/lib/monitors/monitors-cluster-renderer.js +218 -209
- package/dist/lib/monitors/monitors-icon-manager.svelte.d.ts +13 -0
- package/dist/lib/monitors/monitors-icon-manager.svelte.js +75 -70
- package/dist/lib/monitors/monitors-map-integration.svelte.d.ts +40 -0
- package/dist/lib/monitors/monitors-map-integration.svelte.js +278 -270
- package/dist/lib/monitors/monitors.svelte.d.ts +16 -0
- package/dist/lib/monitors/monitors.svelte.js +38 -63
- package/dist/lib/monitors/types.d.ts +26 -0
- package/dist/lib/monitors/types.js +1 -0
- package/dist/lib/reactivity.svelte.d.ts +0 -0
- package/dist/lib/reactivity.svelte.js +83 -0
- package/dist/lib/router-context.d.ts +27 -0
- package/dist/lib/router-context.js +11 -11
- package/dist/lib/routes.d.ts +2 -0
- package/dist/lib/routes.js +10 -9
- package/dist/lib/search/Search.svelte +189 -0
- package/dist/lib/search/Search.svelte.d.ts +3 -0
- package/dist/lib/search/service.d.ts +17 -0
- package/dist/lib/search/service.js +75 -85
- package/dist/lib/utils.d.ts +13 -0
- package/dist/lib/utils.js +10 -12
- package/dist/lib/weather.d.ts +1 -0
- package/dist/lib/weather.js +11 -7
- package/dist/lib/wind/wind.svelte.d.ts +10 -0
- package/dist/lib/wind/wind.svelte.js +13 -21
- package/package.json +9 -7
- package/src/lib/LoadScreen.svelte +3 -3
- package/src/lib/hms/components/HMSFireLegend.svelte +1 -1
- package/src/lib/hms/hms.svelte.ts +8 -9
- package/src/lib/index.ts +18 -0
- package/src/lib/routes.ts +6 -1
- package/src/lib/utils.ts +1 -1
- package/dist/lib/LoadScreen.js +0 -73
- package/dist/lib/MainMapView.js +0 -7
- package/dist/lib/MapLegend.js +0 -13
- package/dist/lib/MonitorDetailPanel.js +0 -169
- package/dist/lib/MonitorMapLayout.js +0 -91
- package/dist/lib/_virtual/_rolldown/runtime.js +0 -11
- package/dist/lib/assets/logos/airgradient-blue.js +0 -4
- package/dist/lib/assets/logos/airnow-compact.js +0 -4
- package/dist/lib/assets/logos/carb-compact.js +0 -4
- package/dist/lib/assets/logos/purpleair-compact.js +0 -4
- package/dist/lib/assets/logos/sjvair.js +0 -4
- package/dist/lib/collocation-sites/CollocationTooltip.js +0 -105
- package/dist/lib/components/DataBox.js +0 -30
- package/dist/lib/components/DisplayOption.js +0 -10
- package/dist/lib/components/MapLayersDisplayOptions.js +0 -87
- package/dist/lib/components/SegmentedControl.js +0 -37
- package/dist/lib/components/ToggleSwitch.js +0 -17
- package/dist/lib/components/ui/button/button.js +0 -34
- package/dist/lib/components/ui/range-calendar/range-calendar-caption.js +0 -82
- package/dist/lib/components/ui/range-calendar/range-calendar-cell.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-day.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-body.js +0 -27
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-head.js +0 -27
- package/dist/lib/components/ui/range-calendar/range-calendar-grid-row.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-grid.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-head-cell.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-header.js +0 -35
- package/dist/lib/components/ui/range-calendar/range-calendar-month-select.js +0 -61
- package/dist/lib/components/ui/range-calendar/range-calendar-month.js +0 -25
- package/dist/lib/components/ui/range-calendar/range-calendar-months.js +0 -25
- package/dist/lib/components/ui/range-calendar/range-calendar-nav.js +0 -25
- package/dist/lib/components/ui/range-calendar/range-calendar-next-button.js +0 -58
- package/dist/lib/components/ui/range-calendar/range-calendar-prev-button.js +0 -58
- package/dist/lib/components/ui/range-calendar/range-calendar-year-select.js +0 -59
- package/dist/lib/components/ui/range-calendar/range-calendar.js +0 -272
- package/dist/lib/data-chart/DataChart.js +0 -142
- package/dist/lib/ev-stations/components/EvStationClusterTooltip.js +0 -16
- package/dist/lib/ev-stations/components/EvStationTooltip.js +0 -120
- package/dist/lib/ev-stations/components/EvStationsDisplayOptions.js +0 -41
- package/dist/lib/hms/components/HMSFireLegend.js +0 -35
- package/dist/lib/map/Map.js +0 -14
- package/dist/lib/map/MapStyleDisplayOptions.js +0 -43
- package/dist/lib/map/Menu.js +0 -44
- package/dist/lib/monitors/components/MonitorClusterTooltip.js +0 -83
- package/dist/lib/monitors/components/MonitorMarkersLegend.js +0 -35
- package/dist/lib/monitors/components/MonitorSubscriptionManager.js +0 -104
- package/dist/lib/monitors/components/MonitorTooltip.js +0 -59
- package/dist/lib/monitors/components/MonitorWidgetModal.js +0 -40
- package/dist/lib/monitors/components/MonitorsDisplayOptions.js +0 -76
- package/dist/lib/search/Search.js +0 -124
- package/dist/lib/sjvair-air.avif +0 -0
- package/dist/lib/sjvair-air.png +0 -0
- package/dist/lib/sjvair-air.webp +0 -0
- package/dist/lib/sjvair-air2.avif +0 -0
- package/dist/lib/sjvair-air2.png +0 -0
- package/dist/lib/sjvair-air2.webp +0 -0
- package/dist/lib/sjvair-icon.avif +0 -0
- package/dist/lib/sjvair-icon.png +0 -0
- package/dist/lib/sjvair-icon.webp +0 -0
- package/dist/lib/sjvair-icon2.avif +0 -0
- package/dist/lib/sjvair-icon2.png +0 -0
- package/dist/lib/sjvair-icon2.webp +0 -0
- package/dist/lib/sjvair-sjv.avif +0 -0
- package/dist/lib/sjvair-sjv.png +0 -0
- package/dist/lib/sjvair-sjv.webp +0 -0
- package/dist/lib/sjvair-sjv2.avif +0 -0
- package/dist/lib/sjvair-sjv2.png +0 -0
- package/dist/lib/sjvair-sjv2.webp +0 -0
|
@@ -1,39 +1,30 @@
|
|
|
1
|
-
import { asDataURI
|
|
2
|
-
import { MapIconManager
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
md: {
|
|
10
|
-
color: "#FF8C00",
|
|
11
|
-
size: 24
|
|
12
|
-
},
|
|
13
|
-
lg: {
|
|
14
|
-
color: "#FF4500",
|
|
15
|
-
size: 28
|
|
16
|
-
},
|
|
17
|
-
xl: {
|
|
18
|
-
color: "#DC143C",
|
|
19
|
-
size: 32
|
|
20
|
-
},
|
|
21
|
-
xxl: {
|
|
22
|
-
color: "#8B0000",
|
|
23
|
-
size: 36
|
|
24
|
-
}
|
|
1
|
+
import { asDataURI, fireIcon } from "../map/icons.ts";
|
|
2
|
+
import { MapIconManager } from "../map/integrations/map-icon-manager.ts";
|
|
3
|
+
const FRP_TIERS = {
|
|
4
|
+
sm: { color: "#FFD700", size: 20 },
|
|
5
|
+
md: { color: "#FF8C00", size: 24 },
|
|
6
|
+
lg: { color: "#FF4500", size: 28 },
|
|
7
|
+
xl: { color: "#DC143C", size: 32 },
|
|
8
|
+
xxl: { color: "#8B0000", size: 36 }
|
|
25
9
|
};
|
|
26
|
-
function
|
|
27
|
-
|
|
10
|
+
export function getTierIconId(frp) {
|
|
11
|
+
if (frp < 10)
|
|
12
|
+
return "hms-fire-sm";
|
|
13
|
+
if (frp < 50)
|
|
14
|
+
return "hms-fire-md";
|
|
15
|
+
if (frp < 150)
|
|
16
|
+
return "hms-fire-lg";
|
|
17
|
+
if (frp < 350)
|
|
18
|
+
return "hms-fire-xl";
|
|
19
|
+
return "hms-fire-xxl";
|
|
20
|
+
}
|
|
21
|
+
export class HMSFireIconManager extends MapIconManager {
|
|
22
|
+
constructor() {
|
|
23
|
+
super();
|
|
24
|
+
for (const [tier, { color, size }] of Object.entries(FRP_TIERS)) {
|
|
25
|
+
const img = new Image(size, size);
|
|
26
|
+
img.src = asDataURI(fireIcon(color, size));
|
|
27
|
+
this.register(`hms-fire-${tier}`, img);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
28
30
|
}
|
|
29
|
-
var a = class extends n {
|
|
30
|
-
constructor() {
|
|
31
|
-
super();
|
|
32
|
-
for (let [n, { color: i, size: a }] of Object.entries(r)) {
|
|
33
|
-
let r = new Image(a, a);
|
|
34
|
-
r.src = e(t(i, a)), this.register(`hms-fire-${n}`, r);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
//#endregion
|
|
39
|
-
export { a as HMSFireIconManager, i as getTierIconId };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Map as MaptilerMap } from "@maptiler/sdk";
|
|
2
|
+
import type { Feature } from "geojson";
|
|
3
|
+
import type { Point } from "geojson";
|
|
4
|
+
import { MapIconLayerIntegration } from "../map/integrations/map-geojson-integration.svelte.ts";
|
|
5
|
+
import { HMSFireIconManager } from "./hms-fire-icon-manager.ts";
|
|
6
|
+
type FireProperties = Record<string, unknown>;
|
|
7
|
+
declare class HMSFireMapIntegration extends MapIconLayerIntegration<FireProperties> {
|
|
8
|
+
referenceId: string;
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
icons: HMSFireIconManager;
|
|
11
|
+
private zoomedIn;
|
|
12
|
+
get features(): Array<Feature<Point, FireProperties>>;
|
|
13
|
+
get mapLayer(): Parameters<MaptilerMap["addLayer"]>[0];
|
|
14
|
+
get mapSource(): Parameters<MaptilerMap["addSource"]>[1];
|
|
15
|
+
private get groupFeatures();
|
|
16
|
+
private get hotspotFeatures();
|
|
17
|
+
private onZoom;
|
|
18
|
+
constructor();
|
|
19
|
+
apply(): void;
|
|
20
|
+
remove(): void;
|
|
21
|
+
}
|
|
22
|
+
export declare const hmsFireMapIntegration: HMSFireMapIntegration;
|
|
23
|
+
export type { HMSFireMapIntegration };
|
|
@@ -1,97 +1,94 @@
|
|
|
1
|
-
import { mapManager
|
|
2
|
-
import { MapIconLayerIntegration
|
|
3
|
-
import { hmsManager
|
|
4
|
-
import { HMSFireIconManager
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}();
|
|
96
|
-
//#endregion
|
|
97
|
-
export { s as hmsFireMapIntegration };
|
|
1
|
+
import { mapManager } from "../map/map.svelte.ts";
|
|
2
|
+
import { MapIconLayerIntegration } from "../map/integrations/map-geojson-integration.svelte.ts";
|
|
3
|
+
import { hmsManager } from "./hms.svelte.ts";
|
|
4
|
+
import { HMSFireIconManager, getTierIconId } from "./hms-fire-icon-manager.ts";
|
|
5
|
+
const ZOOM_THRESHOLD = 10;
|
|
6
|
+
class HMSFireMapIntegration extends MapIconLayerIntegration {
|
|
7
|
+
referenceId = "hms-fire";
|
|
8
|
+
enabled = $state(true);
|
|
9
|
+
icons = new HMSFireIconManager();
|
|
10
|
+
zoomedIn = $state(false);
|
|
11
|
+
get features() {
|
|
12
|
+
return this.zoomedIn ? this.hotspotFeatures : this.groupFeatures;
|
|
13
|
+
}
|
|
14
|
+
get mapLayer() {
|
|
15
|
+
return {
|
|
16
|
+
id: this.referenceId,
|
|
17
|
+
type: "symbol",
|
|
18
|
+
source: this.referenceId,
|
|
19
|
+
layout: {
|
|
20
|
+
"icon-image": ["get", "icon"],
|
|
21
|
+
"icon-allow-overlap": true,
|
|
22
|
+
"icon-ignore-placement": true
|
|
23
|
+
},
|
|
24
|
+
paint: {}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
get mapSource() {
|
|
28
|
+
return {
|
|
29
|
+
type: "geojson",
|
|
30
|
+
promoteId: "id",
|
|
31
|
+
data: { type: "FeatureCollection", features: this.features }
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
get groupFeatures() {
|
|
35
|
+
return (hmsManager.fireGroups ?? []).map((g) => ({
|
|
36
|
+
type: "Feature",
|
|
37
|
+
properties: {
|
|
38
|
+
id: g.id,
|
|
39
|
+
icon: getTierIconId(g.avgFrp),
|
|
40
|
+
avgFrp: g.avgFrp,
|
|
41
|
+
count: g.count
|
|
42
|
+
},
|
|
43
|
+
geometry: { type: "Point", coordinates: g.coordinates }
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
get hotspotFeatures() {
|
|
47
|
+
return (hmsManager.fire ?? []).map((d) => ({
|
|
48
|
+
type: "Feature",
|
|
49
|
+
properties: {
|
|
50
|
+
id: d.id,
|
|
51
|
+
icon: getTierIconId(d.frp),
|
|
52
|
+
frp: d.frp
|
|
53
|
+
},
|
|
54
|
+
geometry: d.geometry
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
onZoom = () => {
|
|
58
|
+
if (!mapManager.map)
|
|
59
|
+
return;
|
|
60
|
+
this.zoomedIn = mapManager.map.getZoom() >= ZOOM_THRESHOLD;
|
|
61
|
+
};
|
|
62
|
+
constructor() {
|
|
63
|
+
super();
|
|
64
|
+
$effect.root(() => {
|
|
65
|
+
$effect(() => {
|
|
66
|
+
const features = this.features;
|
|
67
|
+
if (!mapManager.map || !this.enabled)
|
|
68
|
+
return;
|
|
69
|
+
mapManager.setDataSource(this.referenceId, features);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
apply() {
|
|
74
|
+
if (!mapManager.map)
|
|
75
|
+
return;
|
|
76
|
+
this.icons
|
|
77
|
+
.loadIcons()
|
|
78
|
+
.then(() => {
|
|
79
|
+
if (!mapManager.map || !this.enabled)
|
|
80
|
+
return;
|
|
81
|
+
this.remove();
|
|
82
|
+
this.zoomedIn = mapManager.map.getZoom() >= ZOOM_THRESHOLD;
|
|
83
|
+
mapManager.map.addSource(this.referenceId, this.mapSource);
|
|
84
|
+
mapManager.map.addLayer(this.mapLayer, this.beforeLayer);
|
|
85
|
+
mapManager.map.on("zoom", this.onZoom);
|
|
86
|
+
})
|
|
87
|
+
.catch(console.error);
|
|
88
|
+
}
|
|
89
|
+
remove() {
|
|
90
|
+
mapManager.map?.off("zoom", this.onZoom);
|
|
91
|
+
super.remove();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export const hmsFireMapIntegration = new HMSFireMapIntegration();
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Map as MaptilerMap } from "@maptiler/sdk";
|
|
2
|
+
import type { Feature, MultiPolygon } from "geojson";
|
|
3
|
+
import type { HMSSmokeGeoJSON } from "@sjvair/sdk/hms";
|
|
4
|
+
import { MapGeoJSONIntegration } from "../map/integrations/map-geojson-integration.svelte.ts";
|
|
5
|
+
type SmokeProperties = {
|
|
6
|
+
id: string;
|
|
7
|
+
density: HMSSmokeGeoJSON["density"];
|
|
8
|
+
};
|
|
9
|
+
declare class HMSSmokeMapIntegration extends MapGeoJSONIntegration<SmokeProperties> {
|
|
10
|
+
referenceId: string;
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
get features(): Array<Feature<MultiPolygon, SmokeProperties>>;
|
|
13
|
+
get mapLayer(): Parameters<MaptilerMap["addLayer"]>[0];
|
|
14
|
+
get mapSource(): Parameters<MaptilerMap["addSource"]>[1];
|
|
15
|
+
constructor();
|
|
16
|
+
apply(): void;
|
|
17
|
+
}
|
|
18
|
+
export declare const hmsSmokeMapIntegration: HMSSmokeMapIntegration;
|
|
19
|
+
export type { HMSSmokeMapIntegration };
|
|
@@ -1,84 +1,68 @@
|
|
|
1
|
-
import { mapManager
|
|
2
|
-
import { MapGeoJSONIntegration
|
|
3
|
-
import { hmsManager
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
constructor() {
|
|
72
|
-
super(), r.effect_root(() => {
|
|
73
|
-
r.user_effect(() => {
|
|
74
|
-
let t = this.features;
|
|
75
|
-
!e.map || !this.enabled || e.setDataSource(this.referenceId, t);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
apply() {
|
|
80
|
-
e.map && (this.remove(), e.map.addSource(this.referenceId, this.mapSource), super.apply());
|
|
81
|
-
}
|
|
82
|
-
}();
|
|
83
|
-
//#endregion
|
|
84
|
-
export { i as hmsSmokeMapIntegration };
|
|
1
|
+
import { mapManager } from "../map/map.svelte.ts";
|
|
2
|
+
import { MapGeoJSONIntegration } from "../map/integrations/map-geojson-integration.svelte.ts";
|
|
3
|
+
import { hmsManager } from "./hms.svelte.ts";
|
|
4
|
+
class HMSSmokeMapIntegration extends MapGeoJSONIntegration {
|
|
5
|
+
referenceId = "hms-smoke";
|
|
6
|
+
enabled = $state(true);
|
|
7
|
+
get features() {
|
|
8
|
+
return (hmsManager.smoke ?? []).map((d) => ({
|
|
9
|
+
type: "Feature",
|
|
10
|
+
properties: {
|
|
11
|
+
id: d.id,
|
|
12
|
+
density: d.density
|
|
13
|
+
},
|
|
14
|
+
geometry: d.geometry
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
get mapLayer() {
|
|
18
|
+
return {
|
|
19
|
+
id: this.referenceId,
|
|
20
|
+
type: "fill",
|
|
21
|
+
source: this.referenceId,
|
|
22
|
+
layout: {},
|
|
23
|
+
paint: {
|
|
24
|
+
"fill-color": ["match", ["get", "density"],
|
|
25
|
+
"light", "#bfc8c3",
|
|
26
|
+
"medium", "#757b78",
|
|
27
|
+
"#333634"
|
|
28
|
+
],
|
|
29
|
+
"fill-opacity": ["match", ["get", "density"],
|
|
30
|
+
"light", 0.2,
|
|
31
|
+
"medium", 0.3,
|
|
32
|
+
0.4
|
|
33
|
+
],
|
|
34
|
+
"fill-outline-color": ["match", ["get", "density"],
|
|
35
|
+
"light", "#bfc8c3",
|
|
36
|
+
"medium", "#757b78",
|
|
37
|
+
"#333634"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
get mapSource() {
|
|
43
|
+
return {
|
|
44
|
+
type: "geojson",
|
|
45
|
+
promoteId: "id",
|
|
46
|
+
data: { type: "FeatureCollection", features: this.features }
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
constructor() {
|
|
50
|
+
super();
|
|
51
|
+
$effect.root(() => {
|
|
52
|
+
$effect(() => {
|
|
53
|
+
const features = this.features;
|
|
54
|
+
if (!mapManager.map || !this.enabled)
|
|
55
|
+
return;
|
|
56
|
+
mapManager.setDataSource(this.referenceId, features);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
apply() {
|
|
61
|
+
if (!mapManager.map)
|
|
62
|
+
return;
|
|
63
|
+
this.remove();
|
|
64
|
+
mapManager.map.addSource(this.referenceId, this.mapSource);
|
|
65
|
+
super.apply();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export const hmsSmokeMapIntegration = new HMSSmokeMapIntegration();
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type HMSFireGeoJSON, type HMSSmokeGeoJSON } from "@sjvair/sdk/hms";
|
|
2
|
+
export interface HMSFireGroup {
|
|
3
|
+
id: string;
|
|
4
|
+
coordinates: [number, number];
|
|
5
|
+
avgFrp: number;
|
|
6
|
+
count: number;
|
|
7
|
+
}
|
|
8
|
+
declare class HmsManager {
|
|
9
|
+
smoke: Array<HMSSmokeGeoJSON> | undefined;
|
|
10
|
+
fire: Array<HMSFireGeoJSON & {
|
|
11
|
+
frp: number;
|
|
12
|
+
}> | undefined;
|
|
13
|
+
fireGroups: Array<HMSFireGroup> | undefined;
|
|
14
|
+
init(): Promise<void>;
|
|
15
|
+
loadSmoke(): Promise<void>;
|
|
16
|
+
loadFire(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare const hmsManager: HmsManager;
|
|
19
|
+
export type { HmsManager as HMSManager };
|