vue-openlayers-plugin 1.2.0 → 1.2.1

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 (28) hide show
  1. package/lib/{BasemapPanel-d6e4ea88.mjs → BasemapPanel-aa284bf3.mjs} +1 -1
  2. package/lib/{CoordinateLocationDialog-81d00abc.mjs → CoordinateLocationDialog-6c0a6b23.mjs} +1 -1
  3. package/lib/{MapPrintDialog-64d46412.mjs → FilterPanel-b91325ac.mjs} +1 -1
  4. package/lib/{FilterPanel-7358e3fb.mjs → LayerPanel-88983648.mjs} +1 -1
  5. package/lib/{LayerPanel-9bf28955.mjs → MapPrintDialog-2e5a22e7.mjs} +1 -1
  6. package/lib/{MeasurementDialog-4e084192.mjs → MeasurementDialog-ebda57e6.mjs} +1 -1
  7. package/lib/{MyMarkersDialog-aa44e5bd.mjs → MyMarkersDialog-1f851036.mjs} +1 -1
  8. package/lib/{QuadCompareDialog-84a88cf9.mjs → QuadCompareDialog-8f624242.mjs} +1 -1
  9. package/lib/{RegionNavigationDialog-467ad6c0.mjs → RegionNavigationDialog-549597e1.mjs} +1 -1
  10. package/lib/{SplitCompareDialog-50410c0b.mjs → SplitCompareDialog-9bcce145.mjs} +1 -1
  11. package/lib/{SwipeCompareDialog-c322e2f6.mjs → SwipeCompareDialog-374b9865.mjs} +1 -1
  12. package/lib/{ViewBookmarksDialog-83cf5ec4.mjs → ViewBookmarksDialog-10b5fe14.mjs} +1 -1
  13. package/lib/{index-ee58f2f8.mjs → index-b9d6884a.mjs} +1 -1
  14. package/lib/{index-58704a25.mjs → index-e8d5fc75.mjs} +370 -74
  15. package/lib/{index.es-320e524d.mjs → index.es-ff0f4147.mjs} +1 -1
  16. package/lib/index.esm.js +1 -1
  17. package/lib/index.umd.js +356 -60
  18. package/lib/style.css +61 -19
  19. package/package.json +1 -1
  20. package/types/components/OlControlPanel.vue.d.ts +7 -3
  21. package/types/components/OlControlPanel.vue.d.ts.map +1 -1
  22. package/types/components/OlMap.vue.d.ts +3 -1
  23. package/types/components/OlMap.vue.d.ts.map +1 -1
  24. package/types/lowcode-entry.d.ts +5 -0
  25. package/types/lowcode-entry.d.ts.map +1 -1
  26. package/types/tsconfig.tsbuildinfo +1 -1
  27. package/types/types/map.d.ts +32 -0
  28. package/types/types/map.d.ts.map +1 -1
package/lib/index.umd.js CHANGED
@@ -4187,7 +4187,6 @@ var __publicField = (obj, key, value) => {
4187
4187
  dest
4188
4188
  );
4189
4189
  }
4190
- const SimpleGeometry$1 = SimpleGeometry;
4191
4190
  function linearRing(flatCoordinates, offset2, end2, stride) {
4192
4191
  let twiceArea = 0;
4193
4192
  const x0 = flatCoordinates[end2 - stride];
@@ -4640,7 +4639,7 @@ var __publicField = (obj, key, value) => {
4640
4639
  }
4641
4640
  return simplifiedOffset;
4642
4641
  }
4643
- let LinearRing$1 = class LinearRing2 extends SimpleGeometry$1 {
4642
+ let LinearRing$1 = class LinearRing2 extends SimpleGeometry {
4644
4643
  /**
4645
4644
  * @param {Array<import("../coordinate.js").Coordinate>|Array<number>} coordinates Coordinates.
4646
4645
  * For internal use, flat coordinates in combination with `layout` are also accepted.
@@ -4797,7 +4796,7 @@ var __publicField = (obj, key, value) => {
4797
4796
  }
4798
4797
  };
4799
4798
  const LinearRing$2 = LinearRing$1;
4800
- let Point$6 = class Point2 extends SimpleGeometry$1 {
4799
+ let Point$6 = class Point2 extends SimpleGeometry {
4801
4800
  /**
4802
4801
  * @param {import("../coordinate.js").Coordinate} coordinates Coordinates.
4803
4802
  * @param {import("./Geometry.js").GeometryLayout} [layout] Layout.
@@ -5282,7 +5281,7 @@ var __publicField = (obj, key, value) => {
5282
5281
  }
5283
5282
  return endss;
5284
5283
  }
5285
- let Polygon$6 = class Polygon2 extends SimpleGeometry$1 {
5284
+ let Polygon$6 = class Polygon2 extends SimpleGeometry {
5286
5285
  /**
5287
5286
  * @param {!Array<Array<import("../coordinate.js").Coordinate>>|!Array<number>} coordinates
5288
5287
  * Array of linear rings that define the polygon. The first linear ring of the
@@ -18182,7 +18181,7 @@ var __publicField = (obj, key, value) => {
18182
18181
  }
18183
18182
  return length2;
18184
18183
  }
18185
- let LineString$1 = class LineString2 extends SimpleGeometry$1 {
18184
+ let LineString$1 = class LineString2 extends SimpleGeometry {
18186
18185
  /**
18187
18186
  * @param {Array<import("../coordinate.js").Coordinate>|Array<number>} coordinates Coordinates.
18188
18187
  * For internal use, flat coordinates in combination with `layout` are also accepted.
@@ -19780,7 +19779,7 @@ var __publicField = (obj, key, value) => {
19780
19779
  }
19781
19780
  return flatCenters;
19782
19781
  }
19783
- let Circle$6 = class Circle2 extends SimpleGeometry$1 {
19782
+ let Circle$6 = class Circle2 extends SimpleGeometry {
19784
19783
  /**
19785
19784
  * @param {!import("../coordinate.js").Coordinate} center Center.
19786
19785
  * For internal use, flat coordinates in combination with `layout` and no
@@ -20292,7 +20291,7 @@ var __publicField = (obj, key, value) => {
20292
20291
  return geometries.map((geometry) => geometry.clone());
20293
20292
  }
20294
20293
  const GeometryCollection$1 = GeometryCollection;
20295
- let MultiLineString$1 = class MultiLineString2 extends SimpleGeometry$1 {
20294
+ let MultiLineString$1 = class MultiLineString2 extends SimpleGeometry {
20296
20295
  /**
20297
20296
  * @param {Array<Array<import("../coordinate.js").Coordinate>|LineString>|Array<number>} coordinates
20298
20297
  * Coordinates or LineString geometries. (For internal use, flat coordinates in
@@ -20608,7 +20607,7 @@ var __publicField = (obj, key, value) => {
20608
20607
  }
20609
20608
  };
20610
20609
  const MultiLineString$2 = MultiLineString$1;
20611
- let MultiPoint$1 = class MultiPoint2 extends SimpleGeometry$1 {
20610
+ let MultiPoint$1 = class MultiPoint2 extends SimpleGeometry {
20612
20611
  /**
20613
20612
  * @param {Array<import("../coordinate.js").Coordinate>|Array<number>} coordinates Coordinates.
20614
20613
  * For internal use, flat coordinates in combination with `layout` are also accepted.
@@ -20783,7 +20782,7 @@ var __publicField = (obj, key, value) => {
20783
20782
  }
20784
20783
  };
20785
20784
  const MultiPoint$2 = MultiPoint$1;
20786
- let MultiPolygon$1 = class MultiPolygon2 extends SimpleGeometry$1 {
20785
+ let MultiPolygon$1 = class MultiPolygon2 extends SimpleGeometry {
20787
20786
  /**
20788
20787
  * @param {Array<Array<Array<import("../coordinate.js").Coordinate>>|Polygon>|Array<number>} coordinates Coordinates.
20789
20788
  * For internal use, flat coordinates in combination with `layout` and `endss` are also accepted.
@@ -55186,7 +55185,6 @@ ${this.attributes_.map(
55186
55185
  return abstract();
55187
55186
  }
55188
55187
  }
55189
- const FeatureFormat$1 = FeatureFormat;
55190
55188
  function transformGeometryWithOptions(geometry, write2, options) {
55191
55189
  const featureProjection = options ? get$6(options.featureProjection) : null;
55192
55190
  const dataProjection = options ? get$6(options.dataProjection) : null;
@@ -55299,7 +55297,7 @@ ${this.attributes_.map(
55299
55297
  options
55300
55298
  );
55301
55299
  }
55302
- class JSONFeature extends FeatureFormat$1 {
55300
+ class JSONFeature extends FeatureFormat {
55303
55301
  constructor() {
55304
55302
  super();
55305
55303
  }
@@ -56236,7 +56234,7 @@ ${this.attributes_.map(
56236
56234
  }
56237
56235
  return document_;
56238
56236
  }
56239
- class XMLFeature extends FeatureFormat$1 {
56237
+ class XMLFeature extends FeatureFormat {
56240
56238
  constructor() {
56241
56239
  super();
56242
56240
  this.xmlSerializer_ = getXMLSerializer();
@@ -58742,7 +58740,7 @@ ${this.attributes_.map(
58742
58740
  GML.prototype.writeFeatures;
58743
58741
  GML.prototype.writeFeaturesNode;
58744
58742
  const GML$1 = GML;
58745
- class TextFeature extends FeatureFormat$1 {
58743
+ class TextFeature extends FeatureFormat {
58746
58744
  constructor() {
58747
58745
  super();
58748
58746
  }
@@ -62053,7 +62051,7 @@ ${this.attributes_.map(
62053
62051
  }
62054
62052
  return pos;
62055
62053
  }
62056
- class MVT extends FeatureFormat$1 {
62054
+ class MVT extends FeatureFormat {
62057
62055
  /**
62058
62056
  * @param {Options<FeatureType>} [options] Options.
62059
62057
  */
@@ -335067,24 +335065,24 @@ ${indentData}`);
335067
335065
  key: 0,
335068
335066
  class: "image-loading"
335069
335067
  };
335070
- const _hoisted_8$f = {
335068
+ const _hoisted_8$g = {
335071
335069
  key: 1,
335072
335070
  class: "image-error"
335073
335071
  };
335074
- const _hoisted_9$e = {
335072
+ const _hoisted_9$f = {
335075
335073
  key: 2,
335076
335074
  class: "image-navigation"
335077
335075
  };
335078
- const _hoisted_10$e = {
335076
+ const _hoisted_10$f = {
335079
335077
  key: 3,
335080
335078
  class: "image-counter"
335081
335079
  };
335082
- const _hoisted_11$c = {
335080
+ const _hoisted_11$d = {
335083
335081
  key: 2,
335084
335082
  class: "image-thumbnails"
335085
335083
  };
335086
- const _hoisted_12$a = ["onClick"];
335087
- const _hoisted_13$9 = ["src", "alt"];
335084
+ const _hoisted_12$b = ["onClick"];
335085
+ const _hoisted_13$a = ["src", "alt"];
335088
335086
  const _hoisted_14$7 = {
335089
335087
  key: 3,
335090
335088
  class: "slideshow-controls"
@@ -335255,10 +335253,10 @@ ${indentData}`);
335255
335253
  vue.createElementVNode("div", { class: "loading-spinner" }, null, -1),
335256
335254
  vue.createElementVNode("span", null, "加载中...", -1)
335257
335255
  ])])) : vue.createCommentVNode("", true),
335258
- imageError.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$f, [..._cache[5] || (_cache[5] = [
335256
+ imageError.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$g, [..._cache[5] || (_cache[5] = [
335259
335257
  vue.createElementVNode("span", null, "图片加载失败", -1)
335260
335258
  ])])) : vue.createCommentVNode("", true),
335261
- imageList.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$e, [
335259
+ imageList.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$f, [
335262
335260
  vue.createVNode(vue.unref(elementPlus.ElButton), {
335263
335261
  class: "nav-btn prev-btn",
335264
335262
  disabled: currentIndex.value === 0,
@@ -335284,10 +335282,10 @@ ${indentData}`);
335284
335282
  _: 1
335285
335283
  }, 8, ["disabled"])
335286
335284
  ])) : vue.createCommentVNode("", true),
335287
- imageList.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$e, vue.toDisplayString(currentIndex.value + 1) + " / " + vue.toDisplayString(imageList.value.length), 1)) : vue.createCommentVNode("", true)
335285
+ imageList.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$f, vue.toDisplayString(currentIndex.value + 1) + " / " + vue.toDisplayString(imageList.value.length), 1)) : vue.createCommentVNode("", true)
335288
335286
  ])
335289
335287
  ]),
335290
- _ctx.config.showThumbnails && imageList.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$c, [
335288
+ _ctx.config.showThumbnails && imageList.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$d, [
335291
335289
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(imageList.value, (image2, index2) => {
335292
335290
  return vue.openBlock(), vue.createElementBlock("div", {
335293
335291
  key: index2,
@@ -335297,8 +335295,8 @@ ${indentData}`);
335297
335295
  vue.createElementVNode("img", {
335298
335296
  src: image2,
335299
335297
  alt: `缩略图 ${index2 + 1}`
335300
- }, null, 8, _hoisted_13$9)
335301
- ], 10, _hoisted_12$a);
335298
+ }, null, 8, _hoisted_13$a)
335299
+ ], 10, _hoisted_12$b);
335302
335300
  }), 128))
335303
335301
  ])) : vue.createCommentVNode("", true),
335304
335302
  _ctx.config.slideshow && imageList.value.length > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_14$7, [
@@ -335371,18 +335369,18 @@ ${indentData}`);
335371
335369
  class: "data-stats"
335372
335370
  };
335373
335371
  const _hoisted_7$i = { key: 0 };
335374
- const _hoisted_8$e = {
335372
+ const _hoisted_8$f = {
335375
335373
  key: 5,
335376
335374
  class: "table-view"
335377
335375
  };
335378
- const _hoisted_9$d = { class: "table-container" };
335379
- const _hoisted_10$d = { class: "data-table" };
335380
- const _hoisted_11$b = ["onClick"];
335381
- const _hoisted_12$9 = {
335376
+ const _hoisted_9$e = { class: "table-container" };
335377
+ const _hoisted_10$e = { class: "data-table" };
335378
+ const _hoisted_11$c = ["onClick"];
335379
+ const _hoisted_12$a = {
335382
335380
  key: 0,
335383
335381
  class: "sort-indicator"
335384
335382
  };
335385
- const _hoisted_13$8 = ["onClick"];
335383
+ const _hoisted_13$9 = ["onClick"];
335386
335384
  const _hoisted_14$6 = { key: 0 };
335387
335385
  const _hoisted_15$5 = ["src", "alt"];
335388
335386
  const _hoisted_16$5 = { key: 1 };
@@ -335639,9 +335637,9 @@ ${indentData}`);
335639
335637
  vue.createElementVNode("span", null, "共 " + vue.toDisplayString(filteredData.value.length) + " 条记录", 1),
335640
335638
  searchQuery.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$i, "(已过滤 " + vue.toDisplayString(arrayData.value.length - filteredData.value.length) + " 条)", 1)) : vue.createCommentVNode("", true)
335641
335639
  ])) : vue.createCommentVNode("", true),
335642
- currentView.value === "table" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$e, [
335643
- vue.createElementVNode("div", _hoisted_9$d, [
335644
- vue.createElementVNode("table", _hoisted_10$d, [
335640
+ currentView.value === "table" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8$f, [
335641
+ vue.createElementVNode("div", _hoisted_9$e, [
335642
+ vue.createElementVNode("table", _hoisted_10$e, [
335645
335643
  vue.createElementVNode("thead", null, [
335646
335644
  vue.createElementVNode("tr", null, [
335647
335645
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayFields.value, (field) => {
@@ -335651,8 +335649,8 @@ ${indentData}`);
335651
335649
  onClick: ($event) => handleSort(field.key)
335652
335650
  }, [
335653
335651
  vue.createTextVNode(vue.toDisplayString(field.label) + " ", 1),
335654
- field.sortable && sortField.value === field.key ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_12$9, vue.toDisplayString(sortOrder.value === "asc" ? "↑" : "↓"), 1)) : vue.createCommentVNode("", true)
335655
- ], 10, _hoisted_11$b);
335652
+ field.sortable && sortField.value === field.key ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_12$a, vue.toDisplayString(sortOrder.value === "asc" ? "↑" : "↓"), 1)) : vue.createCommentVNode("", true)
335653
+ ], 10, _hoisted_11$c);
335656
335654
  }), 128))
335657
335655
  ])
335658
335656
  ]),
@@ -335681,7 +335679,7 @@ ${indentData}`);
335681
335679
  ])) : field.type === "date" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_18$5, vue.toDisplayString(formatDate(getFieldValue(item, field.key || field.name))), 1)) : field.type === "number" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_19$5, vue.toDisplayString(formatNumber2(getFieldValue(item, field.key || field.name))), 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_20$3, vue.toDisplayString(getFieldValue(item, field.key || field.name)), 1))
335682
335680
  ]);
335683
335681
  }), 128))
335684
- ], 8, _hoisted_13$8);
335682
+ ], 8, _hoisted_13$9);
335685
335683
  }), 128))
335686
335684
  ])
335687
335685
  ])
@@ -339149,18 +339147,18 @@ ${indentData}`);
339149
339147
  const _hoisted_5$q = ["onClick"];
339150
339148
  const _hoisted_6$k = { class: "item-content" };
339151
339149
  const _hoisted_7$h = { class: "item-name" };
339152
- const _hoisted_8$d = { class: "item-address" };
339153
- const _hoisted_9$c = {
339150
+ const _hoisted_8$e = { class: "item-address" };
339151
+ const _hoisted_9$d = {
339154
339152
  key: 1,
339155
339153
  class: "search-section"
339156
339154
  };
339157
- const _hoisted_10$c = {
339155
+ const _hoisted_10$d = {
339158
339156
  key: 0,
339159
339157
  class: "section-title"
339160
339158
  };
339161
- const _hoisted_11$a = { class: "result-count" };
339162
- const _hoisted_12$8 = ["onClick"];
339163
- const _hoisted_13$7 = { class: "item-content" };
339159
+ const _hoisted_11$b = { class: "result-count" };
339160
+ const _hoisted_12$9 = ["onClick"];
339161
+ const _hoisted_13$8 = { class: "item-content" };
339164
339162
  const _hoisted_14$5 = ["innerHTML"];
339165
339163
  const _hoisted_15$4 = ["innerHTML"];
339166
339164
  const _hoisted_16$4 = {
@@ -339650,20 +339648,20 @@ ${indentData}`);
339650
339648
  }),
339651
339649
  vue.createElementVNode("div", _hoisted_6$k, [
339652
339650
  vue.createElementVNode("div", _hoisted_7$h, vue.toDisplayString(item.name), 1),
339653
- vue.createElementVNode("div", _hoisted_8$d, vue.toDisplayString(item.address), 1)
339651
+ vue.createElementVNode("div", _hoisted_8$e, vue.toDisplayString(item.address), 1)
339654
339652
  ])
339655
339653
  ], 10, _hoisted_5$q)
339656
339654
  ]);
339657
339655
  }), 128))
339658
339656
  ])) : vue.createCommentVNode("", true),
339659
- searchResults.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$c, [
339657
+ searchResults.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$d, [
339660
339658
  vue.renderSlot(_ctx.$slots, "results-title", {
339661
339659
  searchQuery: searchQuery.value,
339662
339660
  resultsCount: searchResults.value.length
339663
339661
  }, () => [
339664
- searchQuery.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$c, [
339662
+ searchQuery.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$d, [
339665
339663
  vue.createElementVNode("span", null, vue.toDisplayString(resultsTitleText.value), 1),
339666
- vue.createElementVNode("span", _hoisted_11$a, "(" + vue.toDisplayString(searchResults.value.length) + ")", 1)
339664
+ vue.createElementVNode("span", _hoisted_11$b, "(" + vue.toDisplayString(searchResults.value.length) + ")", 1)
339667
339665
  ])) : vue.createCommentVNode("", true)
339668
339666
  ]),
339669
339667
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayResults.value, (result, index2) => {
@@ -339688,7 +339686,7 @@ ${indentData}`);
339688
339686
  ]),
339689
339687
  _: 1
339690
339688
  }),
339691
- vue.createElementVNode("div", _hoisted_13$7, [
339689
+ vue.createElementVNode("div", _hoisted_13$8, [
339692
339690
  vue.createElementVNode("div", {
339693
339691
  class: "item-name",
339694
339692
  innerHTML: highlightText(result.name, searchQuery.value)
@@ -339700,7 +339698,7 @@ ${indentData}`);
339700
339698
  result.type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$4, vue.toDisplayString(result.type), 1)) : vue.createCommentVNode("", true)
339701
339699
  ]),
339702
339700
  result.confidence ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17$4, vue.toDisplayString(Math.round(result.confidence * 100)) + "% ", 1)) : vue.createCommentVNode("", true)
339703
- ], 10, _hoisted_12$8)
339701
+ ], 10, _hoisted_12$9)
339704
339702
  ]);
339705
339703
  }), 128))
339706
339704
  ])) : vue.createCommentVNode("", true),
@@ -339877,6 +339875,24 @@ ${indentData}`);
339877
339875
  key: 6,
339878
339876
  class: "control-section"
339879
339877
  };
339878
+ const _hoisted_8$d = { class: "drawing-menu-panel-content" };
339879
+ const _hoisted_9$c = { class: "drawing-tool-list" };
339880
+ const _hoisted_10$c = {
339881
+ key: 0,
339882
+ class: "drawing-menu-divider"
339883
+ };
339884
+ const _hoisted_11$a = {
339885
+ key: 1,
339886
+ class: "drawing-toggle-row"
339887
+ };
339888
+ const _hoisted_12$8 = {
339889
+ key: 7,
339890
+ class: "control-divider"
339891
+ };
339892
+ const _hoisted_13$7 = {
339893
+ key: 8,
339894
+ class: "control-section"
339895
+ };
339880
339896
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
339881
339897
  __name: "OlControlPanel",
339882
339898
  props: {
@@ -339889,8 +339905,10 @@ ${indentData}`);
339889
339905
  bottomOffset: {},
339890
339906
  viewBookmarks: {}
339891
339907
  },
339892
- setup(__props, { expose: __expose }) {
339908
+ emits: ["drawing-complete"],
339909
+ setup(__props, { expose: __expose, emit: __emit }) {
339893
339910
  const props = __props;
339911
+ const emit = __emit;
339894
339912
  const map2 = vue.inject("map");
339895
339913
  const mapManager = vue.inject("mapManager");
339896
339914
  const overviewMapUtil = createOverviewMapUtil();
@@ -339900,7 +339918,37 @@ ${indentData}`);
339900
339918
  const currentZoom = vue.ref(10);
339901
339919
  const minZoom = vue.ref(3);
339902
339920
  const maxZoom = vue.ref(18);
339921
+ const isDrawingMenuOpen = vue.ref(false);
339922
+ const continuousDrawing = vue.ref(false);
339923
+ const activeDrawingMode = vue.ref("none");
339924
+ const DEFAULT_DRAWING_TOOLS = [
339925
+ "rectangle",
339926
+ "polygon",
339927
+ "circle",
339928
+ "line",
339929
+ "point"
339930
+ ];
339931
+ const drawingToolLabels = {
339932
+ point: "绘制点",
339933
+ line: "绘制线",
339934
+ polygon: "绘制多边形",
339935
+ circle: "绘制圆形",
339936
+ rectangle: "绘制矩形"
339937
+ };
339938
+ const geoJsonFormat = new GeoJSON$2();
339939
+ let boundDrawingManager = null;
339940
+ let boundDrawingEndHandler = null;
339941
+ let boundModeChangeHandler = null;
339903
339942
  const currentMap = vue.computed(() => map2 == null ? void 0 : map2.value);
339943
+ const popoverPlacement = vue.computed(() => {
339944
+ const isRight = props.position.includes("right");
339945
+ const isBottom = props.position.includes("bottom");
339946
+ if (props.direction === "vertical") {
339947
+ return isRight ? "left" : "right";
339948
+ } else {
339949
+ return isBottom ? "top" : "bottom";
339950
+ }
339951
+ });
339904
339952
  const positionClasses = vue.computed(() => {
339905
339953
  const basePositions = {
339906
339954
  "top-left": "top-4 left-4",
@@ -339984,10 +340032,55 @@ ${indentData}`);
339984
340032
  const tools = props.config.tools;
339985
340033
  return !!((tools == null ? void 0 : tools.viewBookmarks) || props.config.viewBookmarks);
339986
340034
  });
340035
+ const drawingControlConfig = vue.computed(() => {
340036
+ var _a2;
340037
+ const rawConfig = ((_a2 = props.config.tools) == null ? void 0 : _a2.drawing) ?? props.config.drawing;
340038
+ if (rawConfig === false) {
340039
+ return {
340040
+ enabled: false,
340041
+ trigger: "hover",
340042
+ continuous: false,
340043
+ showContinuousToggle: true,
340044
+ tools: DEFAULT_DRAWING_TOOLS,
340045
+ onDrawEnd: void 0
340046
+ };
340047
+ }
340048
+ if (rawConfig === true || rawConfig === void 0) {
340049
+ return {
340050
+ enabled: rawConfig === true,
340051
+ trigger: "hover",
340052
+ continuous: false,
340053
+ showContinuousToggle: true,
340054
+ tools: DEFAULT_DRAWING_TOOLS,
340055
+ onDrawEnd: void 0
340056
+ };
340057
+ }
340058
+ const config = rawConfig;
340059
+ const tools = (config.tools || DEFAULT_DRAWING_TOOLS).filter(
340060
+ (tool) => DEFAULT_DRAWING_TOOLS.includes(tool)
340061
+ );
340062
+ return {
340063
+ enabled: config.enabled !== false,
340064
+ trigger: config.trigger || "hover",
340065
+ continuous: config.continuous ?? false,
340066
+ showContinuousToggle: config.showContinuousToggle !== false,
340067
+ tools: tools.length > 0 ? Array.from(new Set(tools)) : DEFAULT_DRAWING_TOOLS,
340068
+ onDrawEnd: config.onDrawEnd
340069
+ };
340070
+ });
340071
+ const isDrawingEnabled = vue.computed(() => drawingControlConfig.value.enabled);
340072
+ const isDrawingActive = vue.computed(() => activeDrawingMode.value !== "none");
339987
340073
  const hasOtherTools = vue.computed(() => {
339988
340074
  const tools = props.config.tools;
339989
340075
  return !!((tools == null ? void 0 : tools.fullScreen) || props.config.fullScreen || (tools == null ? void 0 : tools.location) || props.config.location || isLayerPanelEnabled.value || isViewBookmarksEnabled.value || (tools == null ? void 0 : tools.overviewMap) || props.config.overviewMap || (tools == null ? void 0 : tools.zoomToExtent) || props.config.zoomToExtent);
339990
340076
  });
340077
+ vue.watch(
340078
+ drawingControlConfig,
340079
+ (config) => {
340080
+ continuousDrawing.value = config.continuous;
340081
+ },
340082
+ { immediate: true }
340083
+ );
339991
340084
  const initOverviewMap = () => {
339992
340085
  const tools = props.config.tools || {};
339993
340086
  const rawConfig = tools.overviewMap ?? props.config.overviewMap;
@@ -340157,6 +340250,83 @@ ${indentData}`);
340157
340250
  mapManager.value.clearAll();
340158
340251
  }
340159
340252
  };
340253
+ const buildDrawingResult = (drawing) => {
340254
+ const drawingJson = drawing.toJSON();
340255
+ const feature = drawing.getFeature();
340256
+ let geojson = null;
340257
+ if (feature && currentMap.value) {
340258
+ try {
340259
+ geojson = geoJsonFormat.writeFeatureObject(feature, {
340260
+ featureProjection: currentMap.value.getView().getProjection(),
340261
+ dataProjection: "EPSG:4326"
340262
+ });
340263
+ } catch (error2) {
340264
+ console.warn("绘制结果转 GeoJSON 失败:", error2);
340265
+ }
340266
+ }
340267
+ return {
340268
+ id: drawing.getId(),
340269
+ type: drawing.getType(),
340270
+ name: drawing.getName(),
340271
+ coordinates: drawingJson.coordinates,
340272
+ properties: drawingJson.properties || {},
340273
+ style: drawingJson.style || {},
340274
+ config: drawingJson.config || {},
340275
+ geojson,
340276
+ drawing,
340277
+ feature,
340278
+ source: "controls"
340279
+ };
340280
+ };
340281
+ const cleanupDrawingListeners = () => {
340282
+ if (boundDrawingManager && boundDrawingEndHandler && boundModeChangeHandler) {
340283
+ boundDrawingManager.off("drawing-end", boundDrawingEndHandler);
340284
+ boundDrawingManager.off("mode-change", boundModeChangeHandler);
340285
+ }
340286
+ boundDrawingManager = null;
340287
+ boundDrawingEndHandler = null;
340288
+ boundModeChangeHandler = null;
340289
+ activeDrawingMode.value = "none";
340290
+ };
340291
+ const bindDrawingListeners = (drawingManager) => {
340292
+ cleanupDrawingListeners();
340293
+ if (!drawingManager)
340294
+ return;
340295
+ boundDrawingManager = drawingManager;
340296
+ activeDrawingMode.value = drawingManager.getMode();
340297
+ boundDrawingEndHandler = (drawing) => {
340298
+ var _a2, _b2;
340299
+ const result = buildDrawingResult(drawing);
340300
+ (_b2 = (_a2 = drawingControlConfig.value).onDrawEnd) == null ? void 0 : _b2.call(_a2, result);
340301
+ emit("drawing-complete", result);
340302
+ };
340303
+ boundModeChangeHandler = (mode) => {
340304
+ activeDrawingMode.value = mode;
340305
+ };
340306
+ drawingManager.on("drawing-end", boundDrawingEndHandler);
340307
+ drawingManager.on("mode-change", boundModeChangeHandler);
340308
+ };
340309
+ const startQuickDrawing = (tool) => {
340310
+ var _a2;
340311
+ const drawingManager = (_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager();
340312
+ if (!drawingManager) {
340313
+ console.warn("DrawingManager not found");
340314
+ return;
340315
+ }
340316
+ drawingManager.setContinuousDrawing(continuousDrawing.value);
340317
+ drawingManager.setMode(tool, {
340318
+ allowContinuousDrawing: continuousDrawing.value
340319
+ });
340320
+ isDrawingMenuOpen.value = false;
340321
+ };
340322
+ const stopQuickDrawing = () => {
340323
+ var _a2;
340324
+ const drawingManager = (_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager();
340325
+ if (!drawingManager)
340326
+ return;
340327
+ drawingManager.setMode("none");
340328
+ isDrawingMenuOpen.value = false;
340329
+ };
340160
340330
  const zoomToExtent = () => {
340161
340331
  var _a2;
340162
340332
  if (currentMap.value) {
@@ -340200,6 +340370,16 @@ ${indentData}`);
340200
340370
  },
340201
340371
  { immediate: true }
340202
340372
  );
340373
+ vue.watch(
340374
+ () => {
340375
+ var _a2;
340376
+ return ((_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager()) || null;
340377
+ },
340378
+ (drawingManager) => {
340379
+ bindDrawingListeners(drawingManager);
340380
+ },
340381
+ { immediate: true }
340382
+ );
340203
340383
  const handleFullscreenChange = () => {
340204
340384
  isFullscreen.value = !!document.fullscreenElement;
340205
340385
  };
@@ -340211,6 +340391,7 @@ ${indentData}`);
340211
340391
  var _a2;
340212
340392
  document.removeEventListener("fullscreenchange", handleFullscreenChange);
340213
340393
  overviewMapUtil.destroy();
340394
+ cleanupDrawingListeners();
340214
340395
  if (currentMap.value) {
340215
340396
  currentMap.value.un("moveend", updateScale);
340216
340397
  (_a2 = currentMap.value.getTargetElement()) == null ? void 0 : _a2.removeEventListener("mousemove", updateMousePosition);
@@ -340241,7 +340422,7 @@ ${indentData}`);
340241
340422
  isMinZoom
340242
340423
  });
340243
340424
  return (_ctx, _cache) => {
340244
- var _a2, _b2, _c2, _d, _e2, _f, _g, _h, _i2, _j, _k, _l, _m, _n2, _o2, _p;
340425
+ var _a2, _b2, _c2, _d, _e2, _f, _g, _h, _i2, _j, _k, _l, _m, _n2, _o2, _p, _q, _r2;
340245
340426
  const _component_el_slider = vue.resolveComponent("el-slider");
340246
340427
  return vue.openBlock(), vue.createElementBlock("div", {
340247
340428
  class: vue.normalizeClass(["mapcontrols absolute z-1 pointer-events-none select-none animate-fade-in", positionClasses.value]),
@@ -340480,8 +340661,119 @@ ${indentData}`);
340480
340661
  _: 1
340481
340662
  }, 8, ["title"])) : vue.createCommentVNode("", true)
340482
340663
  ])) : vue.createCommentVNode("", true),
340483
- (((_m = _ctx.config.tools) == null ? void 0 : _m.clearAll) || _ctx.config.clearAll) && (hasOtherTools.value || ((_n2 = _ctx.config.tools) == null ? void 0 : _n2.zoom) || _ctx.config.zoom || ((_o2 = _ctx.config.tools) == null ? void 0 : _o2.rotate) || _ctx.config.rotate) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$j)) : vue.createCommentVNode("", true),
340484
- ((_p = _ctx.config.tools) == null ? void 0 : _p.clearAll) || _ctx.config.clearAll ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$g, [
340664
+ isDrawingEnabled.value && (hasOtherTools.value || ((_m = _ctx.config.tools) == null ? void 0 : _m.zoom) || _ctx.config.zoom || ((_n2 = _ctx.config.tools) == null ? void 0 : _n2.rotate) || _ctx.config.rotate) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$j)) : vue.createCommentVNode("", true),
340665
+ isDrawingEnabled.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$g, [
340666
+ vue.createVNode(vue.unref(elementPlus.ElPopover), {
340667
+ placement: popoverPlacement.value,
340668
+ trigger: drawingControlConfig.value.trigger === "hover" ? "hover" : "click",
340669
+ visible: isDrawingMenuOpen.value,
340670
+ "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => isDrawingMenuOpen.value = $event),
340671
+ width: 180,
340672
+ "popper-class": "drawing-menu-popover",
340673
+ disabled: !isDrawingEnabled.value
340674
+ }, {
340675
+ reference: vue.withCtx(() => [
340676
+ vue.createVNode(vue.unref(elementPlus.ElButton), {
340677
+ class: vue.normalizeClass(["control-btn", { "is-active": isDrawingMenuOpen.value || isDrawingActive.value }]),
340678
+ title: "快捷绘制",
340679
+ size: "small",
340680
+ text: ""
340681
+ }, {
340682
+ default: vue.withCtx(() => [
340683
+ vue.createVNode(vue.unref(elementPlus.ElIcon), null, {
340684
+ default: vue.withCtx(() => [
340685
+ vue.createVNode(vue.unref(iconsVue.EditPen))
340686
+ ]),
340687
+ _: 1
340688
+ })
340689
+ ]),
340690
+ _: 1
340691
+ }, 8, ["class"])
340692
+ ]),
340693
+ default: vue.withCtx(() => [
340694
+ vue.createElementVNode("div", _hoisted_8$d, [
340695
+ _cache[5] || (_cache[5] = vue.createElementVNode("div", { class: "drawing-menu-title" }, "快捷绘制", -1)),
340696
+ vue.createElementVNode("div", _hoisted_9$c, [
340697
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(drawingControlConfig.value.tools, (tool) => {
340698
+ return vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTooltip), {
340699
+ key: tool,
340700
+ content: drawingToolLabels[tool],
340701
+ placement: "top",
340702
+ "show-after": 200
340703
+ }, {
340704
+ default: vue.withCtx(() => [
340705
+ vue.createVNode(vue.unref(elementPlus.ElButton), {
340706
+ size: "small",
340707
+ text: "",
340708
+ class: vue.normalizeClass(["drawing-tool-btn", { "is-active": activeDrawingMode.value === tool }]),
340709
+ onClick: ($event) => startQuickDrawing(tool)
340710
+ }, {
340711
+ default: vue.withCtx(() => [
340712
+ tool === "point" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 0 }, {
340713
+ default: vue.withCtx(() => [
340714
+ vue.createVNode(vue.unref(iconsVue.Location))
340715
+ ]),
340716
+ _: 1
340717
+ })) : tool === "line" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 1 }, {
340718
+ default: vue.withCtx(() => [
340719
+ vue.createVNode(vue.unref(iconsVue.Minus))
340720
+ ]),
340721
+ _: 1
340722
+ })) : tool === "polygon" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 2 }, {
340723
+ default: vue.withCtx(() => [
340724
+ vue.createVNode(vue.unref(iconsVue.Share))
340725
+ ]),
340726
+ _: 1
340727
+ })) : tool === "circle" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 3 }, {
340728
+ default: vue.withCtx(() => [
340729
+ vue.createVNode(vue.unref(iconsVue.CircleCheck))
340730
+ ]),
340731
+ _: 1
340732
+ })) : tool === "rectangle" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 4 }, {
340733
+ default: vue.withCtx(() => [
340734
+ vue.createVNode(vue.unref(iconsVue.FullScreen))
340735
+ ]),
340736
+ _: 1
340737
+ })) : vue.createCommentVNode("", true)
340738
+ ]),
340739
+ _: 2
340740
+ }, 1032, ["class", "onClick"])
340741
+ ]),
340742
+ _: 2
340743
+ }, 1032, ["content"]);
340744
+ }), 128))
340745
+ ]),
340746
+ drawingControlConfig.value.showContinuousToggle || isDrawingActive.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$c)) : vue.createCommentVNode("", true),
340747
+ drawingControlConfig.value.showContinuousToggle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$a, [
340748
+ vue.createVNode(vue.unref(elementPlus.ElCheckbox), {
340749
+ modelValue: continuousDrawing.value,
340750
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => continuousDrawing.value = $event)
340751
+ }, {
340752
+ default: vue.withCtx(() => [..._cache[3] || (_cache[3] = [
340753
+ vue.createTextVNode(" 是否连续绘制 ", -1)
340754
+ ])]),
340755
+ _: 1
340756
+ }, 8, ["modelValue"])
340757
+ ])) : vue.createCommentVNode("", true),
340758
+ isDrawingActive.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElButton), {
340759
+ key: 2,
340760
+ size: "small",
340761
+ text: "",
340762
+ class: "drawing-stop-btn",
340763
+ onClick: stopQuickDrawing
340764
+ }, {
340765
+ default: vue.withCtx(() => [..._cache[4] || (_cache[4] = [
340766
+ vue.createTextVNode(" 停止绘制 ", -1)
340767
+ ])]),
340768
+ _: 1
340769
+ })) : vue.createCommentVNode("", true)
340770
+ ])
340771
+ ]),
340772
+ _: 1
340773
+ }, 8, ["placement", "trigger", "visible", "disabled"])
340774
+ ])) : vue.createCommentVNode("", true),
340775
+ (((_o2 = _ctx.config.tools) == null ? void 0 : _o2.clearAll) || _ctx.config.clearAll) && (hasOtherTools.value || isDrawingEnabled.value || ((_p = _ctx.config.tools) == null ? void 0 : _p.zoom) || _ctx.config.zoom || ((_q = _ctx.config.tools) == null ? void 0 : _q.rotate) || _ctx.config.rotate) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$8)) : vue.createCommentVNode("", true),
340776
+ ((_r2 = _ctx.config.tools) == null ? void 0 : _r2.clearAll) || _ctx.config.clearAll ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$7, [
340485
340777
  vue.createVNode(vue.unref(elementPlus.ElButton), {
340486
340778
  class: "control-btn",
340487
340779
  title: "清空绘制内容",
@@ -340505,8 +340797,8 @@ ${indentData}`);
340505
340797
  };
340506
340798
  }
340507
340799
  });
340508
- const OlControlPanel_vue_vue_type_style_index_0_scoped_fdbbb5b4_lang = "";
340509
- const OlControlPanel = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-fdbbb5b4"]]);
340800
+ const OlControlPanel_vue_vue_type_style_index_0_scoped_13e7a909_lang = "";
340801
+ const OlControlPanel = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-13e7a909"]]);
340510
340802
  const _hoisted_1$u = {
340511
340803
  key: 0,
340512
340804
  class: "ol-legend-header"
@@ -365743,7 +366035,7 @@ ${indentData}`);
365743
366035
  popupConfig: {},
365744
366036
  enableGeolocation: { type: Boolean, default: true }
365745
366037
  },
365746
- emits: ["map-ready", "map-click", "map-dblclick", "map-contextmenu", "map-move", "zoom-change", "feature-click", "tooltip-show", "tooltip-hide", "layer-change", "measurement-change", "measurement-start", "measurement-end", "measurement-result", "context-menu", "bookmark-action", "marker-action", "tool-action", "search", "search-select", "search-clear", "popup-show", "popup-hide", "popup-close"],
366038
+ emits: ["map-ready", "map-click", "map-dblclick", "map-contextmenu", "map-move", "zoom-change", "feature-click", "tooltip-show", "tooltip-hide", "layer-change", "measurement-change", "measurement-start", "measurement-end", "measurement-result", "context-menu", "bookmark-action", "marker-action", "tool-action", "drawing-complete", "search", "search-select", "search-clear", "popup-show", "popup-hide", "popup-close"],
365747
366039
  setup(__props, { expose: __expose, emit: __emit }) {
365748
366040
  const currentLegends = vue.ref([]);
365749
366041
  const currentLayers = vue.ref([]);
@@ -366605,6 +366897,9 @@ ${indentData}`);
366605
366897
  break;
366606
366898
  }
366607
366899
  };
366900
+ const onDrawingComplete = (result) => {
366901
+ emit("drawing-complete", result);
366902
+ };
366608
366903
  const onPrintAction = (data2) => {
366609
366904
  console.log("打印操作:", data2);
366610
366905
  switch (data2.action) {
@@ -367291,7 +367586,8 @@ ${indentData}`);
367291
367586
  "right-offset": finalControlsConfig.value.rightOffset,
367292
367587
  "top-offset": finalControlsConfig.value.topOffset,
367293
367588
  "bottom-offset": finalControlsConfig.value.bottomOffset,
367294
- "view-bookmarks": props.viewBookmarks
367589
+ "view-bookmarks": props.viewBookmarks,
367590
+ onDrawingComplete
367295
367591
  }, {
367296
367592
  custom: vue.withCtx(({ controls }) => [
367297
367593
  vue.renderSlot(_ctx.$slots, "controls", {
@@ -367428,8 +367724,8 @@ ${indentData}`);
367428
367724
  };
367429
367725
  }
367430
367726
  });
367431
- const OlMap_vue_vue_type_style_index_0_scoped_888f37cb_lang = "";
367432
- const OlMap = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-888f37cb"]]);
367727
+ const OlMap_vue_vue_type_style_index_0_scoped_847d5f65_lang = "";
367728
+ const OlMap = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-847d5f65"]]);
367433
367729
  const ol = "";
367434
367730
  const Property$1 = {
367435
367731
  ACCURACY: "accuracy",