feat: refine supply map layers and workbench branding

This commit is contained in:
2026-10-27 17:56:38 +08:00
parent 6983ba03f1
commit 4f0f34f460
23 changed files with 948 additions and 171 deletions
@@ -6,6 +6,7 @@ import type {
MapLegendItem
} from "@/features/map/core";
import { MAP_STYLE_TOKENS } from "./map-colors";
import { SOURCE_GIS_MIN_ZOOM, SUPPLY_LAYER_VISUALS } from "./map-layer-visuals";
import {
AVAILABLE_WATER_NETWORK_SOURCE_IDS,
SUPPLY_LAYER_CATALOG,
@@ -67,13 +68,13 @@ const LAYER_CONTROL_PRESENTATION: Record<
}
},
junctions: {
description: "拓扑连接点",
minZoom: 15,
description: "拓扑连接点 · 随缩放细化",
minZoom: SUPPLY_LAYER_VISUALS.junctions.minzoom,
visual: { kind: "point", color: MAP_STYLE_TOKENS.supply.junction }
},
valves: {
description: "控制设施",
minZoom: 8.5,
description: "控制设施 · 符号自动避让",
minZoom: SUPPLY_LAYER_VISUALS.valves.minzoom,
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.valve }
},
reservoirs: {
@@ -83,22 +84,22 @@ const LAYER_CONTROL_PRESENTATION: Record<
},
pumps: {
description: "加压设施",
minZoom: 11,
minZoom: SUPPLY_LAYER_VISUALS.pumps.minzoom,
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.pump }
},
tanks: {
description: "调蓄设施",
minZoom: 11,
minZoom: SUPPLY_LAYER_VISUALS.tanks.minzoom,
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.tank }
},
water_quality_monitoring_points: {
description: "灵敏度分析选点",
minZoom: 8,
minZoom: SUPPLY_LAYER_VISUALS.waterQuality.minzoom,
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.waterQuality }
},
fx_20200423_pipes: {
description: "全口径管线",
minZoom: 10,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_pipes,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: {
@@ -112,7 +113,7 @@ const LAYER_CONTROL_PRESENTATION: Record<
},
fx_20200811_dn100_pipes: {
description: "DN100 及以上",
minZoom: 9,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200811_dn100_pipes,
collection: "fx-pipe-inventory-20200811",
collectionLabel: "2020-08-11 · 专项管线台账",
visual: {
@@ -123,49 +124,49 @@ const LAYER_CONTROL_PRESENTATION: Record<
},
fx_20200423_valves: {
description: "源设施台账",
minZoom: 14,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_valves,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.sourceValve }
},
fx_20200423_drain_valves: {
description: "源设施台账",
minZoom: 10,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_drain_valves,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.sourceDrainValve }
},
fx_20200423_flow_meters: {
description: "源仪表台账",
minZoom: 10,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_flow_meters,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.sourceFlowMeter }
},
fx_20200423_hydrants: {
description: "源设施台账",
minZoom: 13,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_hydrants,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.sourceHydrant }
},
fx_20200423_service_connections: {
description: "源设施台账",
minZoom: 13,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_service_connections,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.sourceConnection }
},
fx_20200423_customer_meters: {
description: "源水表台账",
minZoom: 13,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_customer_meters,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.sourceCustomerMeter }
},
fx_20200423_non_residential_meters: {
description: "源水表台账",
minZoom: 15,
minZoom: SOURCE_GIS_MIN_ZOOM.fx_20200423_non_residential_meters,
collection: "fx-water-assets-20200423",
collectionLabel: "2020-04-23 · 全网除头桥快照",
visual: { kind: "image", imageSrc: SUPPLY_ASSET_ICON_PATHS.sourceNonResidentialMeter }
@@ -526,7 +527,7 @@ export function createLayerControlItems(
id: item.id,
label: item.label,
description: item.description,
minZoom: 8.5,
minZoom: item.minZoom,
visual: {
kind: "image" as const,
imageSrc: