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.
Files changed (87) hide show
  1. package/README.md +40 -8
  2. package/dist/gis-view.css +1 -1
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.d.ts +1036 -249
  5. package/dist/index.js +1 -1
  6. package/docs/AI/345/257/271/350/257/235/346/261/207/346/200/273.md +194 -0
  7. package/docs/GisView.md +9 -8
  8. package/docs/GisView/345/256/236/347/216/260/345/216/237/347/220/206.md +2 -2
  9. 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
  10. package/docs/api/index.html +545 -59
  11. package/docs/demos/BackendSyncDemo.vue +10 -8
  12. package/docs/demos/BasicDemo.vue +101 -101
  13. package/docs/demos/BatchAddDemo.vue +5 -5
  14. package/docs/demos/ChannelDemo.vue +617 -10
  15. package/docs/demos/ConnectDemo.vue +392 -0
  16. package/docs/demos/CopyMergeDemo.vue +980 -929
  17. package/docs/demos/DecorationDraftDemo.vue +1300 -0
  18. package/docs/demos/DemoShell.vue +569 -240
  19. package/docs/demos/DragDropDemo.vue +11 -11
  20. package/docs/demos/EffectsDemo.vue +6 -6
  21. package/docs/demos/EventDemo.vue +327 -327
  22. package/docs/demos/ExtensionDemo.vue +458 -0
  23. package/docs/demos/GisViewDemo.vue +61 -48
  24. package/docs/demos/GraphicDemo.vue +338 -0
  25. package/docs/demos/LabelDemo.vue +553 -497
  26. package/docs/demos/MinimapDemo.vue +358 -0
  27. package/docs/demos/PerfDemo.vue +29 -0
  28. package/docs/demos/SearchFilterDemo.vue +412 -0
  29. package/docs/demos/StyleDemo.vue +121 -121
  30. package/docs/demos/api-index.js +98 -77
  31. package/docs/demos/demos.js +159 -135
  32. package/docs/demos/shared/demoData.js +107 -107
  33. package/docs/demos/shared/demoStyle.css +249 -249
  34. package/docs/demos/shared/fakeBackend.js +93 -6
  35. 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
  36. package/docs/format/04-/351/200/232/351/201/223/344/270/216/346/240/207/347/255/276.md +5 -4
  37. 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
  38. 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
  39. package/docs/guide/sample-document.html +4 -4
  40. package/docs/index.html +180 -9
  41. 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
  42. package/docs/internals/13-/351/271/260/347/234/274/345/233/276.md +3 -2
  43. 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
  44. 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
  45. 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
  46. package/docs/manual/02-/345/235/220/346/240/207/344/270/216/346/225/260/346/215/256.md +18 -4
  47. package/docs/manual/03-/351/205/215/347/275/256/351/241/271.md +110 -25
  48. package/docs/manual/04-/344/272/213/344/273/266/344/270/216/345/233/236/350/260/203.md +13 -8
  49. 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
  50. 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
  51. package/docs/manual/08-/351/200/211/344/270/255/344/270/216/346/213/220/347/202/271.md +17 -15
  52. 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
  53. 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
  54. package/docs/manual/11-/346/240/267/345/274/217/344/270/216/350/247/204/345/210/231.md +3 -2
  55. package/docs/manual/12-/346/240/207/347/255/276/344/270/216/350/243/205/351/245/260.md +260 -3
  56. package/docs/manual/13-/345/212/250/346/225/210/344/270/216/345/233/276/345/205/203.md +6 -5
  57. package/docs/manual/14-/350/247/206/345/233/276/344/270/216/347/255/233/351/200/211.md +27 -14
  58. package/docs/manual/15-/345/257/274/345/207/272/344/270/216/351/233/206/346/210/220.md +142 -49
  59. 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
  60. package/docs/manual/17-/345/217/202/346/225/260/351/200/237/346/237/245.md +55 -39
  61. package/docs/manual/18-/351/200/220/346/226/271/346/263/225/347/244/272/344/276/213.md +189 -64
  62. 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
  63. 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
  64. 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
  65. package/docs/playground/index.html +5 -5
  66. package/docs/steps/README.md +14 -10
  67. package/docs/steps/check-doc-truth.mjs +1 -1
  68. package/docs/steps/selftest-actions.html +10 -10
  69. package/docs/steps/selftest-data.html +96 -14
  70. package/docs/steps/selftest-decoration.html +577 -0
  71. package/docs/steps/selftest-demo.html +6 -5
  72. package/docs/steps/selftest-demos.html +2201 -1612
  73. package/docs/steps/selftest-docs.html +89 -16
  74. package/docs/steps/selftest-effects.html +5 -5
  75. package/docs/steps/selftest-features.html +757 -86
  76. package/docs/steps/selftest-full.html +583 -583
  77. package/docs/steps/selftest-labels.html +1034 -652
  78. package/docs/steps/selftest-perf.html +1899 -1844
  79. package/docs/steps/selftest-scale.html +117 -7
  80. package/docs/steps/selftest-select.html +24 -17
  81. package/docs/steps/step-10-full.js +1 -1
  82. package/docs//346/216/245/345/217/243/345/215/217/350/256/256.md +167 -17
  83. package/docs//346/225/260/346/215/256/346/240/274/345/274/217.md +1 -1
  84. package/package.json +43 -43
  85. package/docs/demos/HistoryDemo.vue +0 -230
  86. package/docs/demos/InterfaceDemo.vue +0 -309
  87. package/docs/demos/SampleDemo.vue +0 -283
@@ -27,7 +27,7 @@
27
27
  *
28
28
  * 另外两块顺带把这一轮的其它能力摆出来:
29
29
  * - 「微调最后一条」用细粒度方法改大小 / 图标 / 颜色 / 线宽 / 拐点 / 标记
30
- * (setPointSize / setPointSymbol / setPointColor / setLineWidth / addWaypoint / addLineDecoration);
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?.clearDropPreview()
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.setPointSize(target.ref, pointSizeOf(target.ref) + 4) },
678
- { label: '小一点', run: () => view.setPointSize(target.ref, Math.max(4, pointSizeOf(target.ref) - 4)) },
679
- { label: '换图标', run: () => view.setPointSymbol(target.ref, isSquareSymbol(target.ref) ? 'circle' : 'square') },
680
- { label: '换个色', run: () => view.setPointColor(target.ref, pickColor()) }
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.setLineWidth(target.ref, (Number(lineItemOf(target.ref)?.width) || 1.4) + 1.5) },
686
- { label: '细一点', run: () => view.setLineWidth(target.ref, Math.max(0.5, (Number(lineItemOf(target.ref)?.width) || 1.4) - 1.5)) },
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.setChannelWidth(target.ref, (Number(view.getChannel(target.ref)?.item?.width) || 0.3) + 0.2) },
693
- { label: '窄一点', run: () => view.setChannelWidth(target.ref, Math.max(0.05, (Number(view.getChannel(target.ref)?.item?.width) || 0.3) - 0.2)) },
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">这些按钮走的是细粒度方法:setPointSize / setPointSymbol / setPointColor / setLineWidth / addWaypoint / addLineDecoration / setChannelWidth / setChannelColors…</p>
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
- * - 全局一套色(setEffects):所有动点 / 涟漪同一个颜色,改色板当场生效;
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
- /** 下发全局那一套:setEffects 是样式类快路径 —— 重解析要素、不重铺数据,逐条写的 effect 在这次重解析里定下来 */
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.setEffects(false)
148
+ view.updateOptions({ effects: false })
149
149
  syncReadout()
150
150
  return
151
151
  }
152
- view.setEffects({
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?.setEffects(false)
211
+ view?.updateOptions({ effects: false })
212
212
  lineOn.value = false
213
213
  pointOn.value = false
214
214
  syncReadout()