gis-view-webgl2 0.1.0 → 0.1.2
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 +40 -8
- package/dist/gis-view.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1036 -249
- package/dist/index.js +1 -1
- package/docs/AI/345/257/271/350/257/235/346/261/207/346/200/273.md +194 -0
- package/docs/GisView.md +9 -8
- package/docs/GisView/345/256/236/347/216/260/345/216/237/347/220/206.md +2 -2
- package/docs/ai/06-/344/274/232/350/257/235/347/264/242/345/274/225/344/270/216/345/244/215/346/237/245/346/226/271/346/263/225.md +172 -0
- package/docs/api/index.html +545 -59
- package/docs/demos/BackendSyncDemo.vue +10 -8
- package/docs/demos/BasicDemo.vue +101 -101
- package/docs/demos/BatchAddDemo.vue +5 -5
- package/docs/demos/ChannelDemo.vue +617 -10
- package/docs/demos/ConnectDemo.vue +392 -0
- package/docs/demos/CopyMergeDemo.vue +980 -929
- package/docs/demos/DecorationDraftDemo.vue +1300 -0
- package/docs/demos/DemoShell.vue +569 -240
- package/docs/demos/DragDropDemo.vue +11 -11
- package/docs/demos/EffectsDemo.vue +6 -6
- package/docs/demos/EventDemo.vue +327 -327
- package/docs/demos/ExtensionDemo.vue +458 -0
- package/docs/demos/GisViewDemo.vue +61 -48
- package/docs/demos/GraphicDemo.vue +338 -0
- package/docs/demos/LabelDemo.vue +553 -497
- package/docs/demos/MinimapDemo.vue +358 -0
- package/docs/demos/PerfDemo.vue +29 -0
- package/docs/demos/SearchFilterDemo.vue +412 -0
- package/docs/demos/StyleDemo.vue +121 -121
- package/docs/demos/api-index.js +98 -77
- package/docs/demos/demos.js +159 -135
- package/docs/demos/shared/demoData.js +107 -107
- package/docs/demos/shared/demoStyle.css +249 -249
- package/docs/demos/shared/fakeBackend.js +93 -6
- package/docs/format/03-/346/213/220/347/202/271/350/243/205/351/245/260/344/270/216/346/240/267/345/274/217.md +28 -8
- package/docs/format/04-/351/200/232/351/201/223/344/270/216/346/240/207/347/255/276.md +5 -4
- package/docs/format/06-/345/257/274/345/205/245/345/257/274/345/207/272/344/270/216/346/240/207/345/207/206/346/226/207/346/241/243.md +8 -6
- package/docs/format/07-/344/272/213/344/273/266/350/275/275/350/215/267/344/270/216/347/244/272/344/276/213/346/225/260/346/215/256.md +6 -6
- package/docs/guide/sample-document.html +4 -4
- package/docs/index.html +180 -9
- package/docs/internals/11-/350/246/206/347/233/226/345/261/202/346/240/207/347/255/276/344/270/216/346/217/220/347/244/272.md +1 -1
- package/docs/internals/13-/351/271/260/347/234/274/345/233/276.md +3 -2
- package/docs/internals/15-03-/351/200/220/350/275/256/350/256/260/345/275/225-/346/200/247/350/203/275/344/270/216/344/277/256/345/244/215-/344/270/213.md +16 -0
- package/docs/internals/16-03-/344/274/230/345/214/226/344/270/216/345/217/226/350/210/215-/344/270/213.md +11 -0
- package/docs/internals/17-/350/260/203/350/257/225/344/270/216/346/211/251/345/261/225/345/273/272/350/256/256.md +1 -1
- package/docs/manual/02-/345/235/220/346/240/207/344/270/216/346/225/260/346/215/256.md +18 -4
- package/docs/manual/03-/351/205/215/347/275/256/351/241/271.md +110 -25
- package/docs/manual/04-/344/272/213/344/273/266/344/270/216/345/233/236/350/260/203.md +13 -8
- package/docs/manual/06-/346/225/260/346/215/256/344/270/216/345/234/272/346/231/257/346/233/264/346/226/260.md +111 -10
- package/docs/manual/07-/346/214/207/351/222/210/344/270/216/350/246/201/347/264/240/347/274/226/350/276/221.md +47 -9
- package/docs/manual/08-/351/200/211/344/270/255/344/270/216/346/213/220/347/202/271.md +17 -15
- package/docs/manual/09-/351/200/232/351/201/223/344/270/216/345/244/232/345/233/236/347/272/277.md +61 -11
- package/docs/manual/10-/351/200/232/351/201/223/347/274/226/350/276/221/344/270/216/346/226/260/345/242/236.md +74 -7
- package/docs/manual/11-/346/240/267/345/274/217/344/270/216/350/247/204/345/210/231.md +3 -2
- package/docs/manual/12-/346/240/207/347/255/276/344/270/216/350/243/205/351/245/260.md +260 -3
- package/docs/manual/13-/345/212/250/346/225/210/344/270/216/345/233/276/345/205/203.md +6 -5
- package/docs/manual/14-/350/247/206/345/233/276/344/270/216/347/255/233/351/200/211.md +27 -14
- package/docs/manual/15-/345/257/274/345/207/272/344/270/216/351/233/206/346/210/220.md +142 -49
- package/docs/manual/16-/345/256/236/344/276/213/346/226/271/346/263/225/346/200/273/350/241/250.md +31 -29
- package/docs/manual/17-/345/217/202/346/225/260/351/200/237/346/237/245.md +55 -39
- package/docs/manual/18-/351/200/220/346/226/271/346/263/225/347/244/272/344/276/213.md +189 -64
- package/docs/manual/19-/350/257/273/346/225/260/344/270/216/346/213/226/346/213/275/351/242/204/350/247/210.md +4 -4
- package/docs/manual/20-/346/200/247/350/203/275/344/270/216/345/244/247/346/225/260/346/215/256.md +42 -2
- package/docs/manual/21-/350/257/264/346/230/216/344/270/216/345/270/270/350/247/201/351/227/256/351/242/230.md +22 -6
- package/docs/playground/index.html +5 -5
- package/docs/steps/README.md +14 -10
- package/docs/steps/check-doc-truth.mjs +1 -1
- package/docs/steps/selftest-actions.html +10 -10
- package/docs/steps/selftest-data.html +96 -14
- package/docs/steps/selftest-decoration.html +577 -0
- package/docs/steps/selftest-demo.html +6 -5
- package/docs/steps/selftest-demos.html +2201 -1612
- package/docs/steps/selftest-docs.html +89 -16
- package/docs/steps/selftest-effects.html +5 -5
- package/docs/steps/selftest-features.html +757 -86
- package/docs/steps/selftest-full.html +583 -583
- package/docs/steps/selftest-labels.html +1034 -652
- package/docs/steps/selftest-perf.html +1899 -1844
- package/docs/steps/selftest-scale.html +117 -7
- package/docs/steps/selftest-select.html +24 -17
- package/docs/steps/step-10-full.js +1 -1
- package/docs//346/216/245/345/217/243/345/215/217/350/256/256.md +167 -17
- package/docs//346/225/260/346/215/256/346/240/274/345/274/217.md +1 -1
- package/package.json +43 -43
- package/docs/demos/HistoryDemo.vue +0 -230
- package/docs/demos/InterfaceDemo.vue +0 -309
- package/docs/demos/SampleDemo.vue +0 -283
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
*
|
|
28
28
|
* 另外两块顺带把这一轮的其它能力摆出来:
|
|
29
29
|
* - 「微调最后一条」用细粒度方法改大小 / 图标 / 颜色 / 线宽 / 拐点 / 标记
|
|
30
|
-
* (
|
|
30
|
+
* (updatePoint / updateLine / addWaypoint / addLineDecoration);
|
|
31
31
|
* - 「存档 → 重建」把 exportData({ format: 'input' }) 的结果整份喂回去(含标签状态 labelStates),
|
|
32
32
|
* 重建之后拖过的标签偏移、运行时加的标签都还在 —— 数据格式与回显走的是同一条路。
|
|
33
33
|
*/
|
|
@@ -310,7 +310,7 @@ const clearPreview = () => {
|
|
|
310
310
|
previewPointer = null
|
|
311
311
|
previewInfo.value = null
|
|
312
312
|
lastContext = null
|
|
313
|
-
view?.
|
|
313
|
+
view?.setDropPreview(null)
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
/**
|
|
@@ -674,23 +674,23 @@ const tweaks = computed(() => {
|
|
|
674
674
|
}
|
|
675
675
|
if (target.kind === 'point') {
|
|
676
676
|
return [
|
|
677
|
-
{ label: '大一点', run: () => view.
|
|
678
|
-
{ label: '小一点', run: () => view.
|
|
679
|
-
{ label: '换图标', run: () => view.
|
|
680
|
-
{ label: '换个色', run: () => view.
|
|
677
|
+
{ label: '大一点', run: () => view.updatePoint(target.ref, { size: pointSizeOf(target.ref) + 4 }) },
|
|
678
|
+
{ label: '小一点', run: () => view.updatePoint(target.ref, { size: Math.max(4, pointSizeOf(target.ref) - 4) }) },
|
|
679
|
+
{ label: '换图标', run: () => view.updatePoint(target.ref, { symbol: isSquareSymbol(target.ref) ? 'circle' : 'square' }) },
|
|
680
|
+
{ label: '换个色', run: () => view.updatePoint(target.ref, { color: pickColor() }) }
|
|
681
681
|
]
|
|
682
682
|
}
|
|
683
683
|
if (target.kind === 'line') {
|
|
684
684
|
return [
|
|
685
|
-
{ label: '粗一点', run: () => view.
|
|
686
|
-
{ label: '细一点', run: () => view.
|
|
685
|
+
{ label: '粗一点', run: () => view.updateLine(target.ref, { width: (Number(lineItemOf(target.ref)?.width) || 1.4) + 1.5 }) },
|
|
686
|
+
{ label: '细一点', run: () => view.updateLine(target.ref, { width: Math.max(0.5, (Number(lineItemOf(target.ref)?.width) || 1.4) - 1.5) }) },
|
|
687
687
|
{ label: '加拐点', run: () => addMidWaypoint(target.ref) },
|
|
688
688
|
{ label: '加标记', run: () => addMidDecoration(target.ref) }
|
|
689
689
|
]
|
|
690
690
|
}
|
|
691
691
|
return [
|
|
692
|
-
{ label: '宽一点', run: () => view.
|
|
693
|
-
{ label: '窄一点', run: () => view.
|
|
692
|
+
{ label: '宽一点', run: () => view.updateChannel(target.ref, { width: (Number(view.getChannel(target.ref)?.item?.width) || 0.3) + 0.2 }) },
|
|
693
|
+
{ label: '窄一点', run: () => view.updateChannel(target.ref, { width: Math.max(0.05, (Number(view.getChannel(target.ref)?.item?.width) || 0.3) - 0.2) }) },
|
|
694
694
|
{ label: '换配色', run: () => view.setChannelColors(target.ref, pickColors()) },
|
|
695
695
|
{ label: '加拐点', run: () => view.addChannelGroupWaypoint(target.ref, undefined) }
|
|
696
696
|
]
|
|
@@ -891,7 +891,7 @@ onBeforeUnmount(() => {
|
|
|
891
891
|
>{{ tweak.label }}</button>
|
|
892
892
|
</div>
|
|
893
893
|
<p class="dv-readout">{{ lastAdded ? `${lastAdded.title} · ${lastAdded.ref}:${readoutOf(lastAdded)}` : '先拖一个要素上来' }}</p>
|
|
894
|
-
<p class="dv-hint"
|
|
894
|
+
<p class="dv-hint">这些按钮走的是定向补丁:updatePoint / updateLine / addWaypoint / addLineDecoration / updateChannel / setChannelColors…</p>
|
|
895
895
|
</div>
|
|
896
896
|
|
|
897
897
|
<div class="dv-group">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 动画效果演示:线路上的跑动图标(ECharts 的 lines.effect 那一类)与节点上的扩散涟漪(effectScatter 那一类)。
|
|
4
4
|
*
|
|
5
5
|
* 这一页只讲一件事 —— **颜色**:
|
|
6
|
-
* - 全局一套色(
|
|
6
|
+
* - 全局一套色(updateOptions({ effects })):所有动点 / 涟漪同一个颜色,改色板当场生效;
|
|
7
7
|
* - 逐条各自一个色:把颜色写进数据里的 lines[].effect / points[].effect(view.batch 合成一条改动);
|
|
8
8
|
* - 图标自带颜色:换成内联 SVG 时那一份颜色就画在 SVG 里,动点直接用它;
|
|
9
9
|
* - 读数是公开接口:getEffects / getStats / getLineEffects / getPointEffects / getPrebake,
|
|
@@ -138,21 +138,21 @@ const syncPrebake = () => {
|
|
|
138
138
|
prebakeText.value = [exact, cross].filter(Boolean).join(' · ')
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
/** 下发全局那一套:
|
|
141
|
+
/** 下发全局那一套:updateOptions({ effects }) 是样式类快路径 —— 重解析要素、不重铺数据,逐条写的 effect 在这次重解析里定下来 */
|
|
142
142
|
const applyEffects = () => {
|
|
143
143
|
if (!view) {
|
|
144
144
|
return
|
|
145
145
|
}
|
|
146
146
|
if (!lineOn.value && !pointOn.value) {
|
|
147
147
|
// 两层都关:等价于「一处全关」,逐条配的也一起停(与 effects: false 同一个语义)
|
|
148
|
-
view.
|
|
148
|
+
view.updateOptions({ effects: false })
|
|
149
149
|
syncReadout()
|
|
150
150
|
return
|
|
151
151
|
}
|
|
152
|
-
view.
|
|
152
|
+
view.updateOptions({ effects: {
|
|
153
153
|
line: lineOn.value ? buildLineEffect() : null,
|
|
154
154
|
point: pointOn.value ? buildPointEffect() : null
|
|
155
|
-
})
|
|
155
|
+
} })
|
|
156
156
|
syncReadout()
|
|
157
157
|
requestAnimationFrame(() => {
|
|
158
158
|
syncReadout()
|
|
@@ -208,7 +208,7 @@ const clearPrebake = () => {
|
|
|
208
208
|
}
|
|
209
209
|
/** 一处全关(effects: false):连逐条配的一起停 —— 与「某个层关掉」不是一回事 */
|
|
210
210
|
const killAll = () => {
|
|
211
|
-
view?.
|
|
211
|
+
view?.updateOptions({ effects: false })
|
|
212
212
|
lineOn.value = false
|
|
213
213
|
pointOn.value = false
|
|
214
214
|
syncReadout()
|