@caoguo/maplibre-pipeline 0.0.2 → 0.0.4
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/burst/index.cjs +708 -0
- package/dist/burst/index.cjs.map +1 -0
- package/dist/burst/index.js +4 -0
- package/dist/burst/index.js.map +1 -0
- package/dist/burstClass-CGMjcAYy.d.cts +161 -0
- package/dist/burstClass-Cf2p71LE.d.ts +161 -0
- package/dist/chunk-BWQKY35F.js +259 -0
- package/dist/chunk-BWQKY35F.js.map +1 -0
- package/dist/chunk-CDEYJ67B.js +80 -0
- package/dist/chunk-CDEYJ67B.js.map +1 -0
- package/dist/chunk-GCDA7KJM.js +289 -0
- package/dist/chunk-GCDA7KJM.js.map +1 -0
- package/dist/chunk-HCT6NSNS.js +532 -0
- package/dist/chunk-HCT6NSNS.js.map +1 -0
- package/dist/chunk-HIRNJVCV.js +13 -0
- package/dist/chunk-HIRNJVCV.js.map +1 -0
- package/dist/chunk-PJMHTPSA.js +352 -0
- package/dist/chunk-PJMHTPSA.js.map +1 -0
- package/dist/chunk-QVY4WJLM.js +256 -0
- package/dist/chunk-QVY4WJLM.js.map +1 -0
- package/dist/chunk-VA2TQWL3.js +340 -0
- package/dist/chunk-VA2TQWL3.js.map +1 -0
- package/dist/chunk-YBLESEN4.js +133 -0
- package/dist/chunk-YBLESEN4.js.map +1 -0
- package/dist/chunk-YS2ICFVK.js +101 -0
- package/dist/chunk-YS2ICFVK.js.map +1 -0
- package/dist/graph/index.cjs +382 -0
- package/dist/graph/index.cjs.map +1 -0
- package/dist/graph/index.js +4 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/health/index.cjs +348 -0
- package/dist/health/index.cjs.map +1 -0
- package/dist/health/index.js +3 -0
- package/dist/health/index.js.map +1 -0
- package/dist/index.cjs +2389 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +10 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/leakage/index.cjs +7 -6
- package/dist/leakage/index.cjs.map +1 -1
- package/dist/leakage/index.js +1 -1
- package/dist/topology/index.cjs +113 -14
- package/dist/topology/index.cjs.map +1 -1
- package/dist/topology/index.d.cts +65 -15
- package/dist/topology/index.d.ts +65 -15
- package/dist/topology/index.js +1 -1
- package/package.json +3 -3
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Map } from '@caoguo/maplibre';
|
|
2
|
-
import { PipelineTopologyDataset, ColorByMode, PipelineType, NodeSelectEvent, PipeSelectEvent, DrillDownEvent } from '../types/index.cjs';
|
|
2
|
+
import { PipelineTopologyDataset, ColorByMode, PipelineType, NodeSelectEvent, PipeSelectEvent, DrillDownEvent, PipelineNode, PipelinePipe } from '../types/index.cjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* PipelineTopology
|
|
5
|
+
* PipelineTopology 类(Phase 1 管网拓扑编辑器)
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* 完整实现:
|
|
8
8
|
* - 拓扑渲染(管段/节点按类型着色)
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
9
|
+
* - 层级钻取(区域→街道→小区→楼栋,drillDown / drillUp)
|
|
10
|
+
* - 设备卡片(点击节点/管段触发 onNodeSelect / onPipeSelect)
|
|
11
|
+
* - 连通性高亮(选中管线后高亮上下游,highlightConnectivity)
|
|
12
|
+
* - 搜索定位(按编号/地址/区域,search)
|
|
13
|
+
* - 分层控制(按管径/材质/年代/状态,setLayerFilter)
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
interface PipelineTopologyOptions {
|
|
@@ -26,16 +26,36 @@ interface PipelineTopologyOptions {
|
|
|
26
26
|
type NodeListener = (e: NodeSelectEvent) => void;
|
|
27
27
|
type PipeListener = (e: PipeSelectEvent) => void;
|
|
28
28
|
type DrillListener = (e: DrillDownEvent) => void;
|
|
29
|
+
/** 分层控制过滤器(按管径/材质/状态/年代) */
|
|
30
|
+
interface LayerFilter {
|
|
31
|
+
/** 最小管径(mm) */
|
|
32
|
+
minDiameter?: number;
|
|
33
|
+
/** 最大管径(mm) */
|
|
34
|
+
maxDiameter?: number;
|
|
35
|
+
/** 管材 */
|
|
36
|
+
material?: string;
|
|
37
|
+
/** 状态 */
|
|
38
|
+
status?: string;
|
|
39
|
+
/** 最小使用年限 */
|
|
40
|
+
minAgeYears?: number;
|
|
41
|
+
}
|
|
42
|
+
/** 搜索结果 */
|
|
43
|
+
interface SearchResult {
|
|
44
|
+
/** 匹配节点 */
|
|
45
|
+
nodes: PipelineNode[];
|
|
46
|
+
/** 匹配管段 */
|
|
47
|
+
pipes: PipelinePipe[];
|
|
48
|
+
}
|
|
29
49
|
/**
|
|
30
|
-
* PipelineTopology
|
|
50
|
+
* PipelineTopology 组件(Phase 1 MVP 完整实现)
|
|
31
51
|
*
|
|
32
|
-
*
|
|
52
|
+
* 实现进度:
|
|
33
53
|
* - [x] 渲染数据接入
|
|
34
|
-
* - [
|
|
35
|
-
* - [
|
|
36
|
-
* - [
|
|
37
|
-
* - [
|
|
38
|
-
* - [
|
|
54
|
+
* - [x] 层级钻取(drillDown / drillUp)
|
|
55
|
+
* - [x] 设备卡片(点击绑定 onNodeSelect / onPipeSelect)
|
|
56
|
+
* - [x] 连通性高亮(highlightConnectivity)
|
|
57
|
+
* - [x] 搜索定位(search)
|
|
58
|
+
* - [x] 分层控制(setLayerFilter / clearLayerFilter)
|
|
39
59
|
*/
|
|
40
60
|
declare class PipelineTopology {
|
|
41
61
|
private map;
|
|
@@ -47,9 +67,20 @@ declare class PipelineTopology {
|
|
|
47
67
|
private nodeListeners;
|
|
48
68
|
private pipeListeners;
|
|
49
69
|
private drillListeners;
|
|
70
|
+
/** 当前钻取区域(null = 全量) */
|
|
71
|
+
private currentRegion;
|
|
72
|
+
/** 当前分层过滤器 */
|
|
73
|
+
private layerFilter;
|
|
74
|
+
/** click 事件是否已绑定 */
|
|
75
|
+
private clickBound;
|
|
50
76
|
constructor(options: PipelineTopologyOptions);
|
|
51
77
|
/** 渲染管段+节点到地图 */
|
|
52
78
|
render(): void;
|
|
79
|
+
/**
|
|
80
|
+
* 绑定点击事件(设备卡片:点击节点/管段触发订阅回调)。
|
|
81
|
+
* 只绑定一次(render 重建图层后事件仍指向固定 layerId)。
|
|
82
|
+
*/
|
|
83
|
+
private bindClickEvents;
|
|
53
84
|
/** 切换着色模式 */
|
|
54
85
|
setColorBy(mode: ColorByMode): void;
|
|
55
86
|
/** 清空所有图层 */
|
|
@@ -62,6 +93,25 @@ declare class PipelineTopology {
|
|
|
62
93
|
onPipeSelect(fn: PipeListener): () => void;
|
|
63
94
|
/** 订阅钻取事件 */
|
|
64
95
|
onDrillDown(fn: DrillListener): () => void;
|
|
96
|
+
/** 管段是否可见(管线类型 + 区域钻取 + 分层过滤) */
|
|
97
|
+
private isPipeVisible;
|
|
98
|
+
/** 节点是否可见(管线类型 + 区域钻取) */
|
|
99
|
+
private isNodeVisible;
|
|
100
|
+
/** 计算管段使用年限(年) */
|
|
101
|
+
private ageInYears;
|
|
102
|
+
/**
|
|
103
|
+
* 搜索定位(按编号/地址/区域/类型)。
|
|
104
|
+
* 返回匹配的节点与管段,供上层 flyTo 定位。
|
|
105
|
+
*/
|
|
106
|
+
search(query: string): SearchResult;
|
|
107
|
+
/** 层级钻取:下钻到指定区域(过滤渲染 + 触发事件) */
|
|
108
|
+
drillDown(region: string): void;
|
|
109
|
+
/** 层级钻取:返回上一级(清空区域过滤) */
|
|
110
|
+
drillUp(): void;
|
|
111
|
+
/** 分层控制:按管径/材质/状态/年代过滤 */
|
|
112
|
+
setLayerFilter(filter: LayerFilter): void;
|
|
113
|
+
/** 清空分层过滤器 */
|
|
114
|
+
clearLayerFilter(): void;
|
|
65
115
|
/** 高亮连通路径(基于节点 ID) */
|
|
66
116
|
highlightConnectivity(centerId: string): Set<string>;
|
|
67
117
|
}
|
package/dist/topology/index.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Map } from '@caoguo/maplibre';
|
|
2
|
-
import { PipelineTopologyDataset, ColorByMode, PipelineType, NodeSelectEvent, PipeSelectEvent, DrillDownEvent } from '../types/index.js';
|
|
2
|
+
import { PipelineTopologyDataset, ColorByMode, PipelineType, NodeSelectEvent, PipeSelectEvent, DrillDownEvent, PipelineNode, PipelinePipe } from '../types/index.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* PipelineTopology
|
|
5
|
+
* PipelineTopology 类(Phase 1 管网拓扑编辑器)
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* 完整实现:
|
|
8
8
|
* - 拓扑渲染(管段/节点按类型着色)
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
9
|
+
* - 层级钻取(区域→街道→小区→楼栋,drillDown / drillUp)
|
|
10
|
+
* - 设备卡片(点击节点/管段触发 onNodeSelect / onPipeSelect)
|
|
11
|
+
* - 连通性高亮(选中管线后高亮上下游,highlightConnectivity)
|
|
12
|
+
* - 搜索定位(按编号/地址/区域,search)
|
|
13
|
+
* - 分层控制(按管径/材质/年代/状态,setLayerFilter)
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
interface PipelineTopologyOptions {
|
|
@@ -26,16 +26,36 @@ interface PipelineTopologyOptions {
|
|
|
26
26
|
type NodeListener = (e: NodeSelectEvent) => void;
|
|
27
27
|
type PipeListener = (e: PipeSelectEvent) => void;
|
|
28
28
|
type DrillListener = (e: DrillDownEvent) => void;
|
|
29
|
+
/** 分层控制过滤器(按管径/材质/状态/年代) */
|
|
30
|
+
interface LayerFilter {
|
|
31
|
+
/** 最小管径(mm) */
|
|
32
|
+
minDiameter?: number;
|
|
33
|
+
/** 最大管径(mm) */
|
|
34
|
+
maxDiameter?: number;
|
|
35
|
+
/** 管材 */
|
|
36
|
+
material?: string;
|
|
37
|
+
/** 状态 */
|
|
38
|
+
status?: string;
|
|
39
|
+
/** 最小使用年限 */
|
|
40
|
+
minAgeYears?: number;
|
|
41
|
+
}
|
|
42
|
+
/** 搜索结果 */
|
|
43
|
+
interface SearchResult {
|
|
44
|
+
/** 匹配节点 */
|
|
45
|
+
nodes: PipelineNode[];
|
|
46
|
+
/** 匹配管段 */
|
|
47
|
+
pipes: PipelinePipe[];
|
|
48
|
+
}
|
|
29
49
|
/**
|
|
30
|
-
* PipelineTopology
|
|
50
|
+
* PipelineTopology 组件(Phase 1 MVP 完整实现)
|
|
31
51
|
*
|
|
32
|
-
*
|
|
52
|
+
* 实现进度:
|
|
33
53
|
* - [x] 渲染数据接入
|
|
34
|
-
* - [
|
|
35
|
-
* - [
|
|
36
|
-
* - [
|
|
37
|
-
* - [
|
|
38
|
-
* - [
|
|
54
|
+
* - [x] 层级钻取(drillDown / drillUp)
|
|
55
|
+
* - [x] 设备卡片(点击绑定 onNodeSelect / onPipeSelect)
|
|
56
|
+
* - [x] 连通性高亮(highlightConnectivity)
|
|
57
|
+
* - [x] 搜索定位(search)
|
|
58
|
+
* - [x] 分层控制(setLayerFilter / clearLayerFilter)
|
|
39
59
|
*/
|
|
40
60
|
declare class PipelineTopology {
|
|
41
61
|
private map;
|
|
@@ -47,9 +67,20 @@ declare class PipelineTopology {
|
|
|
47
67
|
private nodeListeners;
|
|
48
68
|
private pipeListeners;
|
|
49
69
|
private drillListeners;
|
|
70
|
+
/** 当前钻取区域(null = 全量) */
|
|
71
|
+
private currentRegion;
|
|
72
|
+
/** 当前分层过滤器 */
|
|
73
|
+
private layerFilter;
|
|
74
|
+
/** click 事件是否已绑定 */
|
|
75
|
+
private clickBound;
|
|
50
76
|
constructor(options: PipelineTopologyOptions);
|
|
51
77
|
/** 渲染管段+节点到地图 */
|
|
52
78
|
render(): void;
|
|
79
|
+
/**
|
|
80
|
+
* 绑定点击事件(设备卡片:点击节点/管段触发订阅回调)。
|
|
81
|
+
* 只绑定一次(render 重建图层后事件仍指向固定 layerId)。
|
|
82
|
+
*/
|
|
83
|
+
private bindClickEvents;
|
|
53
84
|
/** 切换着色模式 */
|
|
54
85
|
setColorBy(mode: ColorByMode): void;
|
|
55
86
|
/** 清空所有图层 */
|
|
@@ -62,6 +93,25 @@ declare class PipelineTopology {
|
|
|
62
93
|
onPipeSelect(fn: PipeListener): () => void;
|
|
63
94
|
/** 订阅钻取事件 */
|
|
64
95
|
onDrillDown(fn: DrillListener): () => void;
|
|
96
|
+
/** 管段是否可见(管线类型 + 区域钻取 + 分层过滤) */
|
|
97
|
+
private isPipeVisible;
|
|
98
|
+
/** 节点是否可见(管线类型 + 区域钻取) */
|
|
99
|
+
private isNodeVisible;
|
|
100
|
+
/** 计算管段使用年限(年) */
|
|
101
|
+
private ageInYears;
|
|
102
|
+
/**
|
|
103
|
+
* 搜索定位(按编号/地址/区域/类型)。
|
|
104
|
+
* 返回匹配的节点与管段,供上层 flyTo 定位。
|
|
105
|
+
*/
|
|
106
|
+
search(query: string): SearchResult;
|
|
107
|
+
/** 层级钻取:下钻到指定区域(过滤渲染 + 触发事件) */
|
|
108
|
+
drillDown(region: string): void;
|
|
109
|
+
/** 层级钻取:返回上一级(清空区域过滤) */
|
|
110
|
+
drillUp(): void;
|
|
111
|
+
/** 分层控制:按管径/材质/状态/年代过滤 */
|
|
112
|
+
setLayerFilter(filter: LayerFilter): void;
|
|
113
|
+
/** 清空分层过滤器 */
|
|
114
|
+
clearLayerFilter(): void;
|
|
65
115
|
/** 高亮连通路径(基于节点 ID) */
|
|
66
116
|
highlightConnectivity(centerId: string): Set<string>;
|
|
67
117
|
}
|
package/dist/topology/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caoguo/maplibre-pipeline",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "草果地图管网组件包 - 爆管推演 / 泄漏扩散 / 健康评估 / 拓扑编辑器",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "caoguo <caoguo@hb.cn>",
|
|
@@ -86,8 +86,8 @@
|
|
|
86
86
|
"dist"
|
|
87
87
|
],
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@caoguo/maplibre": "0.0.
|
|
90
|
-
"@caoguo/theme": "0.0.
|
|
89
|
+
"@caoguo/maplibre": "0.0.5",
|
|
90
|
+
"@caoguo/theme": "0.0.4"
|
|
91
91
|
},
|
|
92
92
|
"publishConfig": {
|
|
93
93
|
"access": "public",
|