vue-openlayers-plugin 1.2.0 → 1.2.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 (31) hide show
  1. package/lib/{BasemapPanel-d6e4ea88.mjs → BasemapPanel-2a1eff3d.mjs} +1 -1
  2. package/lib/{CoordinateLocationDialog-81d00abc.mjs → CoordinateLocationDialog-3ffa7ef5.mjs} +1 -1
  3. package/lib/{MapPrintDialog-64d46412.mjs → FilterPanel-caa15606.mjs} +1 -1
  4. package/lib/{FilterPanel-7358e3fb.mjs → LayerPanel-c7be314b.mjs} +1 -1
  5. package/lib/{LayerPanel-9bf28955.mjs → MapPrintDialog-1520d417.mjs} +1 -1
  6. package/lib/{MeasurementDialog-4e084192.mjs → MeasurementDialog-1b4b64c7.mjs} +1 -1
  7. package/lib/{MyMarkersDialog-aa44e5bd.mjs → MyMarkersDialog-67ff8e26.mjs} +1 -1
  8. package/lib/{QuadCompareDialog-84a88cf9.mjs → QuadCompareDialog-c1098032.mjs} +1 -1
  9. package/lib/{RegionNavigationDialog-467ad6c0.mjs → RegionNavigationDialog-cc4e392d.mjs} +1 -1
  10. package/lib/{SplitCompareDialog-50410c0b.mjs → SplitCompareDialog-ab540279.mjs} +1 -1
  11. package/lib/{SwipeCompareDialog-c322e2f6.mjs → SwipeCompareDialog-a1aa3ab0.mjs} +1 -1
  12. package/lib/{ViewBookmarksDialog-83cf5ec4.mjs → ViewBookmarksDialog-6b0999f7.mjs} +1 -1
  13. package/lib/{index-58704a25.mjs → index-0c3a5960.mjs} +409 -74
  14. package/lib/{index-ee58f2f8.mjs → index-f34dc985.mjs} +1 -1
  15. package/lib/{index.es-320e524d.mjs → index.es-571daed3.mjs} +1 -1
  16. package/lib/index.esm.js +1 -1
  17. package/lib/index.umd.js +395 -60
  18. package/lib/style.css +61 -19
  19. package/package.json +2 -9
  20. package/types/components/OlControlPanel.vue.d.ts +9 -3
  21. package/types/components/OlControlPanel.vue.d.ts.map +1 -1
  22. package/types/components/OlMap.vue.d.ts +5 -1
  23. package/types/components/OlMap.vue.d.ts.map +1 -1
  24. package/types/core/MapManager.d.ts +5 -0
  25. package/types/core/MapManager.d.ts.map +1 -1
  26. package/types/lowcode-entry.d.ts +10 -0
  27. package/types/lowcode-entry.d.ts.map +1 -1
  28. package/types/types/map.d.ts +37 -0
  29. package/types/types/map.d.ts.map +1 -1
  30. package/lib//346/240/207/345/207/206 +0 -159
  31. package/types/tsconfig.tsbuildinfo +0 -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
  ])
@@ -336390,15 +336388,34 @@ ${indentData}`);
336390
336388
  __publicField(this, "drawingManager", null);
336391
336389
  __publicField(this, "featureHighlightManager", null);
336392
336390
  __publicField(this, "popupManager", null);
336391
+ __publicField(this, "drawingEndListener", null);
336393
336392
  // 状态管理
336394
336393
  __publicField(this, "isCoordinatePicking", false);
336395
336394
  __publicField(this, "coordinatePickCallback", null);
336396
336395
  __publicField(this, "measurementType", null);
336397
336396
  __publicField(this, "contextMenuCoordinate", [0, 0]);
336397
+ __publicField(this, "ignoreMapClickUntil", 0);
336398
336398
  this.config = config;
336399
336399
  this.eventBus = eventBus;
336400
336400
  this.storage = storage2;
336401
336401
  }
336402
+ markDrawingEndIgnoreWindow() {
336403
+ this.ignoreMapClickUntil = Date.now() + 300;
336404
+ }
336405
+ shouldIgnoreMapClick() {
336406
+ return Date.now() < this.ignoreMapClickUntil;
336407
+ }
336408
+ bindDrawingManagerEvents() {
336409
+ if (!this.drawingManager)
336410
+ return;
336411
+ if (this.drawingEndListener) {
336412
+ this.drawingManager.off("drawing-end", this.drawingEndListener);
336413
+ }
336414
+ this.drawingEndListener = () => {
336415
+ this.markDrawingEndIgnoreWindow();
336416
+ };
336417
+ this.drawingManager.on("drawing-end", this.drawingEndListener);
336418
+ }
336402
336419
  /**
336403
336420
  * 处理要素点击的popup显示
336404
336421
  */
@@ -336693,6 +336710,7 @@ ${indentData}`);
336693
336710
  this.featureHighlightManager = new FeatureHighlightManager(this.map);
336694
336711
  this.markerAdapter = new MarkerDrawingAdapter(this.map);
336695
336712
  this.drawingManager = new DrawingManager({ map: this.map });
336713
+ this.bindDrawingManagerEvents();
336696
336714
  this.measurementTool = new MeasurementTool(this.map, this.storage);
336697
336715
  const initialCenter = this.config.center || [116.404, 39.915];
336698
336716
  const initialZoom = this.config.zoom || 10;
@@ -336788,6 +336806,9 @@ ${indentData}`);
336788
336806
  }
336789
336807
  return;
336790
336808
  }
336809
+ if (this.shouldIgnoreMapClick()) {
336810
+ return;
336811
+ }
336791
336812
  const featuresAtPixel = [];
336792
336813
  this.map.forEachFeatureAtPixel(pixel, (feature, layer2) => {
336793
336814
  if (layer2 && feature) {
@@ -337278,6 +337299,9 @@ ${indentData}`);
337278
337299
  const view = this.map.getView();
337279
337300
  const projection2 = view.getProjection().getCode();
337280
337301
  const lonLatCoordinate = projection2 === "EPSG:4326" || projection2 === "EPSG:4490" ? coordinate : toLonLat(coordinate);
337302
+ if (this.shouldIgnoreMapClick()) {
337303
+ return;
337304
+ }
337281
337305
  const features2 = this.map.getFeaturesAtPixel(pixel);
337282
337306
  if (features2 && features2.length > 0) {
337283
337307
  features2.sort((a3, b10) => {
@@ -337558,6 +337582,9 @@ ${indentData}`);
337558
337582
  * 销毁地图管理器
337559
337583
  */
337560
337584
  destroy() {
337585
+ if (this.drawingManager && this.drawingEndListener) {
337586
+ this.drawingManager.off("drawing-end", this.drawingEndListener);
337587
+ }
337561
337588
  if (this.map) {
337562
337589
  this.map.setTarget(void 0);
337563
337590
  }
@@ -337568,6 +337595,7 @@ ${indentData}`);
337568
337595
  this.measurementTool = null;
337569
337596
  this.mapOperationTool = null;
337570
337597
  this.drawingManager = null;
337598
+ this.drawingEndListener = null;
337571
337599
  this.eventCallbacks = {};
337572
337600
  this.map = null;
337573
337601
  }
@@ -339149,18 +339177,18 @@ ${indentData}`);
339149
339177
  const _hoisted_5$q = ["onClick"];
339150
339178
  const _hoisted_6$k = { class: "item-content" };
339151
339179
  const _hoisted_7$h = { class: "item-name" };
339152
- const _hoisted_8$d = { class: "item-address" };
339153
- const _hoisted_9$c = {
339180
+ const _hoisted_8$e = { class: "item-address" };
339181
+ const _hoisted_9$d = {
339154
339182
  key: 1,
339155
339183
  class: "search-section"
339156
339184
  };
339157
- const _hoisted_10$c = {
339185
+ const _hoisted_10$d = {
339158
339186
  key: 0,
339159
339187
  class: "section-title"
339160
339188
  };
339161
- const _hoisted_11$a = { class: "result-count" };
339162
- const _hoisted_12$8 = ["onClick"];
339163
- const _hoisted_13$7 = { class: "item-content" };
339189
+ const _hoisted_11$b = { class: "result-count" };
339190
+ const _hoisted_12$9 = ["onClick"];
339191
+ const _hoisted_13$8 = { class: "item-content" };
339164
339192
  const _hoisted_14$5 = ["innerHTML"];
339165
339193
  const _hoisted_15$4 = ["innerHTML"];
339166
339194
  const _hoisted_16$4 = {
@@ -339650,20 +339678,20 @@ ${indentData}`);
339650
339678
  }),
339651
339679
  vue.createElementVNode("div", _hoisted_6$k, [
339652
339680
  vue.createElementVNode("div", _hoisted_7$h, vue.toDisplayString(item.name), 1),
339653
- vue.createElementVNode("div", _hoisted_8$d, vue.toDisplayString(item.address), 1)
339681
+ vue.createElementVNode("div", _hoisted_8$e, vue.toDisplayString(item.address), 1)
339654
339682
  ])
339655
339683
  ], 10, _hoisted_5$q)
339656
339684
  ]);
339657
339685
  }), 128))
339658
339686
  ])) : vue.createCommentVNode("", true),
339659
- searchResults.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$c, [
339687
+ searchResults.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$d, [
339660
339688
  vue.renderSlot(_ctx.$slots, "results-title", {
339661
339689
  searchQuery: searchQuery.value,
339662
339690
  resultsCount: searchResults.value.length
339663
339691
  }, () => [
339664
- searchQuery.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$c, [
339692
+ searchQuery.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$d, [
339665
339693
  vue.createElementVNode("span", null, vue.toDisplayString(resultsTitleText.value), 1),
339666
- vue.createElementVNode("span", _hoisted_11$a, "(" + vue.toDisplayString(searchResults.value.length) + ")", 1)
339694
+ vue.createElementVNode("span", _hoisted_11$b, "(" + vue.toDisplayString(searchResults.value.length) + ")", 1)
339667
339695
  ])) : vue.createCommentVNode("", true)
339668
339696
  ]),
339669
339697
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayResults.value, (result, index2) => {
@@ -339688,7 +339716,7 @@ ${indentData}`);
339688
339716
  ]),
339689
339717
  _: 1
339690
339718
  }),
339691
- vue.createElementVNode("div", _hoisted_13$7, [
339719
+ vue.createElementVNode("div", _hoisted_13$8, [
339692
339720
  vue.createElementVNode("div", {
339693
339721
  class: "item-name",
339694
339722
  innerHTML: highlightText(result.name, searchQuery.value)
@@ -339700,7 +339728,7 @@ ${indentData}`);
339700
339728
  result.type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_16$4, vue.toDisplayString(result.type), 1)) : vue.createCommentVNode("", true)
339701
339729
  ]),
339702
339730
  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)
339731
+ ], 10, _hoisted_12$9)
339704
339732
  ]);
339705
339733
  }), 128))
339706
339734
  ])) : vue.createCommentVNode("", true),
@@ -339877,6 +339905,24 @@ ${indentData}`);
339877
339905
  key: 6,
339878
339906
  class: "control-section"
339879
339907
  };
339908
+ const _hoisted_8$d = { class: "drawing-menu-panel-content" };
339909
+ const _hoisted_9$c = { class: "drawing-tool-list" };
339910
+ const _hoisted_10$c = {
339911
+ key: 0,
339912
+ class: "drawing-menu-divider"
339913
+ };
339914
+ const _hoisted_11$a = {
339915
+ key: 1,
339916
+ class: "drawing-toggle-row"
339917
+ };
339918
+ const _hoisted_12$8 = {
339919
+ key: 7,
339920
+ class: "control-divider"
339921
+ };
339922
+ const _hoisted_13$7 = {
339923
+ key: 8,
339924
+ class: "control-section"
339925
+ };
339880
339926
  const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
339881
339927
  __name: "OlControlPanel",
339882
339928
  props: {
@@ -339889,8 +339935,10 @@ ${indentData}`);
339889
339935
  bottomOffset: {},
339890
339936
  viewBookmarks: {}
339891
339937
  },
339892
- setup(__props, { expose: __expose }) {
339938
+ emits: ["drawing-complete", "drawing-clear"],
339939
+ setup(__props, { expose: __expose, emit: __emit }) {
339893
339940
  const props = __props;
339941
+ const emit = __emit;
339894
339942
  const map2 = vue.inject("map");
339895
339943
  const mapManager = vue.inject("mapManager");
339896
339944
  const overviewMapUtil = createOverviewMapUtil();
@@ -339900,7 +339948,37 @@ ${indentData}`);
339900
339948
  const currentZoom = vue.ref(10);
339901
339949
  const minZoom = vue.ref(3);
339902
339950
  const maxZoom = vue.ref(18);
339951
+ const isDrawingMenuOpen = vue.ref(false);
339952
+ const continuousDrawing = vue.ref(false);
339953
+ const activeDrawingMode = vue.ref("none");
339954
+ const DEFAULT_DRAWING_TOOLS = [
339955
+ "rectangle",
339956
+ "polygon",
339957
+ "circle",
339958
+ "line",
339959
+ "point"
339960
+ ];
339961
+ const drawingToolLabels = {
339962
+ point: "绘制点",
339963
+ line: "绘制线",
339964
+ polygon: "绘制多边形",
339965
+ circle: "绘制圆形",
339966
+ rectangle: "绘制矩形"
339967
+ };
339968
+ const geoJsonFormat = new GeoJSON$2();
339969
+ let boundDrawingManager = null;
339970
+ let boundDrawingEndHandler = null;
339971
+ let boundModeChangeHandler = null;
339903
339972
  const currentMap = vue.computed(() => map2 == null ? void 0 : map2.value);
339973
+ const popoverPlacement = vue.computed(() => {
339974
+ const isRight = props.position.includes("right");
339975
+ const isBottom = props.position.includes("bottom");
339976
+ if (props.direction === "vertical") {
339977
+ return isRight ? "left" : "right";
339978
+ } else {
339979
+ return isBottom ? "top" : "bottom";
339980
+ }
339981
+ });
339904
339982
  const positionClasses = vue.computed(() => {
339905
339983
  const basePositions = {
339906
339984
  "top-left": "top-4 left-4",
@@ -339984,10 +340062,55 @@ ${indentData}`);
339984
340062
  const tools = props.config.tools;
339985
340063
  return !!((tools == null ? void 0 : tools.viewBookmarks) || props.config.viewBookmarks);
339986
340064
  });
340065
+ const drawingControlConfig = vue.computed(() => {
340066
+ var _a2;
340067
+ const rawConfig = ((_a2 = props.config.tools) == null ? void 0 : _a2.drawing) ?? props.config.drawing;
340068
+ if (rawConfig === false) {
340069
+ return {
340070
+ enabled: false,
340071
+ trigger: "hover",
340072
+ continuous: false,
340073
+ showContinuousToggle: true,
340074
+ tools: DEFAULT_DRAWING_TOOLS,
340075
+ onDrawEnd: void 0
340076
+ };
340077
+ }
340078
+ if (rawConfig === true || rawConfig === void 0) {
340079
+ return {
340080
+ enabled: rawConfig === true,
340081
+ trigger: "hover",
340082
+ continuous: false,
340083
+ showContinuousToggle: true,
340084
+ tools: DEFAULT_DRAWING_TOOLS,
340085
+ onDrawEnd: void 0
340086
+ };
340087
+ }
340088
+ const config = rawConfig;
340089
+ const tools = (config.tools || DEFAULT_DRAWING_TOOLS).filter(
340090
+ (tool) => DEFAULT_DRAWING_TOOLS.includes(tool)
340091
+ );
340092
+ return {
340093
+ enabled: config.enabled !== false,
340094
+ trigger: config.trigger || "hover",
340095
+ continuous: config.continuous ?? false,
340096
+ showContinuousToggle: config.showContinuousToggle !== false,
340097
+ tools: tools.length > 0 ? Array.from(new Set(tools)) : DEFAULT_DRAWING_TOOLS,
340098
+ onDrawEnd: config.onDrawEnd
340099
+ };
340100
+ });
340101
+ const isDrawingEnabled = vue.computed(() => drawingControlConfig.value.enabled);
340102
+ const isDrawingActive = vue.computed(() => activeDrawingMode.value !== "none");
339987
340103
  const hasOtherTools = vue.computed(() => {
339988
340104
  const tools = props.config.tools;
339989
340105
  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
340106
  });
340107
+ vue.watch(
340108
+ drawingControlConfig,
340109
+ (config) => {
340110
+ continuousDrawing.value = config.continuous;
340111
+ },
340112
+ { immediate: true }
340113
+ );
339991
340114
  const initOverviewMap = () => {
339992
340115
  const tools = props.config.tools || {};
339993
340116
  const rawConfig = tools.overviewMap ?? props.config.overviewMap;
@@ -340155,8 +340278,90 @@ ${indentData}`);
340155
340278
  const clearAllDrawnContent = () => {
340156
340279
  if (mapManager == null ? void 0 : mapManager.value) {
340157
340280
  mapManager.value.clearAll();
340281
+ emit("drawing-clear", {
340282
+ source: "controls",
340283
+ cleared: true,
340284
+ timestamp: Date.now()
340285
+ });
340158
340286
  }
340159
340287
  };
340288
+ const buildDrawingResult = (drawing) => {
340289
+ const drawingJson = drawing.toJSON();
340290
+ const feature = drawing.getFeature();
340291
+ let geojson = null;
340292
+ if (feature && currentMap.value) {
340293
+ try {
340294
+ geojson = geoJsonFormat.writeFeatureObject(feature, {
340295
+ featureProjection: currentMap.value.getView().getProjection(),
340296
+ dataProjection: "EPSG:4326"
340297
+ });
340298
+ } catch (error2) {
340299
+ console.warn("绘制结果转 GeoJSON 失败:", error2);
340300
+ }
340301
+ }
340302
+ return {
340303
+ id: drawing.getId(),
340304
+ type: drawing.getType(),
340305
+ name: drawing.getName(),
340306
+ coordinates: drawingJson.coordinates,
340307
+ properties: drawingJson.properties || {},
340308
+ style: drawingJson.style || {},
340309
+ config: drawingJson.config || {},
340310
+ geojson,
340311
+ drawing,
340312
+ feature,
340313
+ source: "controls"
340314
+ };
340315
+ };
340316
+ const cleanupDrawingListeners = () => {
340317
+ if (boundDrawingManager && boundDrawingEndHandler && boundModeChangeHandler) {
340318
+ boundDrawingManager.off("drawing-end", boundDrawingEndHandler);
340319
+ boundDrawingManager.off("mode-change", boundModeChangeHandler);
340320
+ }
340321
+ boundDrawingManager = null;
340322
+ boundDrawingEndHandler = null;
340323
+ boundModeChangeHandler = null;
340324
+ activeDrawingMode.value = "none";
340325
+ };
340326
+ const bindDrawingListeners = (drawingManager) => {
340327
+ cleanupDrawingListeners();
340328
+ if (!drawingManager)
340329
+ return;
340330
+ boundDrawingManager = drawingManager;
340331
+ activeDrawingMode.value = drawingManager.getMode();
340332
+ boundDrawingEndHandler = (drawing) => {
340333
+ var _a2, _b2;
340334
+ const result = buildDrawingResult(drawing);
340335
+ (_b2 = (_a2 = drawingControlConfig.value).onDrawEnd) == null ? void 0 : _b2.call(_a2, result);
340336
+ emit("drawing-complete", result);
340337
+ };
340338
+ boundModeChangeHandler = (mode) => {
340339
+ activeDrawingMode.value = mode;
340340
+ };
340341
+ drawingManager.on("drawing-end", boundDrawingEndHandler);
340342
+ drawingManager.on("mode-change", boundModeChangeHandler);
340343
+ };
340344
+ const startQuickDrawing = (tool) => {
340345
+ var _a2;
340346
+ const drawingManager = (_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager();
340347
+ if (!drawingManager) {
340348
+ console.warn("DrawingManager not found");
340349
+ return;
340350
+ }
340351
+ drawingManager.setContinuousDrawing(continuousDrawing.value);
340352
+ drawingManager.setMode(tool, {
340353
+ allowContinuousDrawing: continuousDrawing.value
340354
+ });
340355
+ isDrawingMenuOpen.value = false;
340356
+ };
340357
+ const stopQuickDrawing = () => {
340358
+ var _a2;
340359
+ const drawingManager = (_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager();
340360
+ if (!drawingManager)
340361
+ return;
340362
+ drawingManager.setMode("none");
340363
+ isDrawingMenuOpen.value = false;
340364
+ };
340160
340365
  const zoomToExtent = () => {
340161
340366
  var _a2;
340162
340367
  if (currentMap.value) {
@@ -340200,6 +340405,16 @@ ${indentData}`);
340200
340405
  },
340201
340406
  { immediate: true }
340202
340407
  );
340408
+ vue.watch(
340409
+ () => {
340410
+ var _a2;
340411
+ return ((_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager()) || null;
340412
+ },
340413
+ (drawingManager) => {
340414
+ bindDrawingListeners(drawingManager);
340415
+ },
340416
+ { immediate: true }
340417
+ );
340203
340418
  const handleFullscreenChange = () => {
340204
340419
  isFullscreen.value = !!document.fullscreenElement;
340205
340420
  };
@@ -340211,6 +340426,7 @@ ${indentData}`);
340211
340426
  var _a2;
340212
340427
  document.removeEventListener("fullscreenchange", handleFullscreenChange);
340213
340428
  overviewMapUtil.destroy();
340429
+ cleanupDrawingListeners();
340214
340430
  if (currentMap.value) {
340215
340431
  currentMap.value.un("moveend", updateScale);
340216
340432
  (_a2 = currentMap.value.getTargetElement()) == null ? void 0 : _a2.removeEventListener("mousemove", updateMousePosition);
@@ -340241,7 +340457,7 @@ ${indentData}`);
340241
340457
  isMinZoom
340242
340458
  });
340243
340459
  return (_ctx, _cache) => {
340244
- var _a2, _b2, _c2, _d, _e2, _f, _g, _h, _i2, _j, _k, _l, _m, _n2, _o2, _p;
340460
+ var _a2, _b2, _c2, _d, _e2, _f, _g, _h, _i2, _j, _k, _l, _m, _n2, _o2, _p, _q, _r2;
340245
340461
  const _component_el_slider = vue.resolveComponent("el-slider");
340246
340462
  return vue.openBlock(), vue.createElementBlock("div", {
340247
340463
  class: vue.normalizeClass(["mapcontrols absolute z-1 pointer-events-none select-none animate-fade-in", positionClasses.value]),
@@ -340480,8 +340696,119 @@ ${indentData}`);
340480
340696
  _: 1
340481
340697
  }, 8, ["title"])) : vue.createCommentVNode("", true)
340482
340698
  ])) : 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, [
340699
+ 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),
340700
+ isDrawingEnabled.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$g, [
340701
+ vue.createVNode(vue.unref(elementPlus.ElPopover), {
340702
+ placement: popoverPlacement.value,
340703
+ trigger: drawingControlConfig.value.trigger === "hover" ? "hover" : "click",
340704
+ visible: isDrawingMenuOpen.value,
340705
+ "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => isDrawingMenuOpen.value = $event),
340706
+ width: 180,
340707
+ "popper-class": "drawing-menu-popover",
340708
+ disabled: !isDrawingEnabled.value
340709
+ }, {
340710
+ reference: vue.withCtx(() => [
340711
+ vue.createVNode(vue.unref(elementPlus.ElButton), {
340712
+ class: vue.normalizeClass(["control-btn", { "is-active": isDrawingMenuOpen.value || isDrawingActive.value }]),
340713
+ title: "快捷绘制",
340714
+ size: "small",
340715
+ text: ""
340716
+ }, {
340717
+ default: vue.withCtx(() => [
340718
+ vue.createVNode(vue.unref(elementPlus.ElIcon), null, {
340719
+ default: vue.withCtx(() => [
340720
+ vue.createVNode(vue.unref(iconsVue.EditPen))
340721
+ ]),
340722
+ _: 1
340723
+ })
340724
+ ]),
340725
+ _: 1
340726
+ }, 8, ["class"])
340727
+ ]),
340728
+ default: vue.withCtx(() => [
340729
+ vue.createElementVNode("div", _hoisted_8$d, [
340730
+ _cache[5] || (_cache[5] = vue.createElementVNode("div", { class: "drawing-menu-title" }, "快捷绘制", -1)),
340731
+ vue.createElementVNode("div", _hoisted_9$c, [
340732
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(drawingControlConfig.value.tools, (tool) => {
340733
+ return vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTooltip), {
340734
+ key: tool,
340735
+ content: drawingToolLabels[tool],
340736
+ placement: "top",
340737
+ "show-after": 200
340738
+ }, {
340739
+ default: vue.withCtx(() => [
340740
+ vue.createVNode(vue.unref(elementPlus.ElButton), {
340741
+ size: "small",
340742
+ text: "",
340743
+ class: vue.normalizeClass(["drawing-tool-btn", { "is-active": activeDrawingMode.value === tool }]),
340744
+ onClick: ($event) => startQuickDrawing(tool)
340745
+ }, {
340746
+ default: vue.withCtx(() => [
340747
+ tool === "point" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 0 }, {
340748
+ default: vue.withCtx(() => [
340749
+ vue.createVNode(vue.unref(iconsVue.Location))
340750
+ ]),
340751
+ _: 1
340752
+ })) : tool === "line" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 1 }, {
340753
+ default: vue.withCtx(() => [
340754
+ vue.createVNode(vue.unref(iconsVue.Minus))
340755
+ ]),
340756
+ _: 1
340757
+ })) : tool === "polygon" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 2 }, {
340758
+ default: vue.withCtx(() => [
340759
+ vue.createVNode(vue.unref(iconsVue.Share))
340760
+ ]),
340761
+ _: 1
340762
+ })) : tool === "circle" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 3 }, {
340763
+ default: vue.withCtx(() => [
340764
+ vue.createVNode(vue.unref(iconsVue.CircleCheck))
340765
+ ]),
340766
+ _: 1
340767
+ })) : tool === "rectangle" ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), { key: 4 }, {
340768
+ default: vue.withCtx(() => [
340769
+ vue.createVNode(vue.unref(iconsVue.FullScreen))
340770
+ ]),
340771
+ _: 1
340772
+ })) : vue.createCommentVNode("", true)
340773
+ ]),
340774
+ _: 2
340775
+ }, 1032, ["class", "onClick"])
340776
+ ]),
340777
+ _: 2
340778
+ }, 1032, ["content"]);
340779
+ }), 128))
340780
+ ]),
340781
+ drawingControlConfig.value.showContinuousToggle || isDrawingActive.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$c)) : vue.createCommentVNode("", true),
340782
+ drawingControlConfig.value.showContinuousToggle ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$a, [
340783
+ vue.createVNode(vue.unref(elementPlus.ElCheckbox), {
340784
+ modelValue: continuousDrawing.value,
340785
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => continuousDrawing.value = $event)
340786
+ }, {
340787
+ default: vue.withCtx(() => [..._cache[3] || (_cache[3] = [
340788
+ vue.createTextVNode(" 是否连续绘制 ", -1)
340789
+ ])]),
340790
+ _: 1
340791
+ }, 8, ["modelValue"])
340792
+ ])) : vue.createCommentVNode("", true),
340793
+ isDrawingActive.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElButton), {
340794
+ key: 2,
340795
+ size: "small",
340796
+ text: "",
340797
+ class: "drawing-stop-btn",
340798
+ onClick: stopQuickDrawing
340799
+ }, {
340800
+ default: vue.withCtx(() => [..._cache[4] || (_cache[4] = [
340801
+ vue.createTextVNode(" 停止绘制 ", -1)
340802
+ ])]),
340803
+ _: 1
340804
+ })) : vue.createCommentVNode("", true)
340805
+ ])
340806
+ ]),
340807
+ _: 1
340808
+ }, 8, ["placement", "trigger", "visible", "disabled"])
340809
+ ])) : vue.createCommentVNode("", true),
340810
+ (((_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),
340811
+ ((_r2 = _ctx.config.tools) == null ? void 0 : _r2.clearAll) || _ctx.config.clearAll ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_13$7, [
340485
340812
  vue.createVNode(vue.unref(elementPlus.ElButton), {
340486
340813
  class: "control-btn",
340487
340814
  title: "清空绘制内容",
@@ -340505,8 +340832,8 @@ ${indentData}`);
340505
340832
  };
340506
340833
  }
340507
340834
  });
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"]]);
340835
+ const OlControlPanel_vue_vue_type_style_index_0_scoped_2ee216d4_lang = "";
340836
+ const OlControlPanel = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-2ee216d4"]]);
340510
340837
  const _hoisted_1$u = {
340511
340838
  key: 0,
340512
340839
  class: "ol-legend-header"
@@ -365743,7 +366070,7 @@ ${indentData}`);
365743
366070
  popupConfig: {},
365744
366071
  enableGeolocation: { type: Boolean, default: true }
365745
366072
  },
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"],
366073
+ 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", "drawing-clear", "search", "search-select", "search-clear", "popup-show", "popup-hide", "popup-close"],
365747
366074
  setup(__props, { expose: __expose, emit: __emit }) {
365748
366075
  const currentLegends = vue.ref([]);
365749
366076
  const currentLayers = vue.ref([]);
@@ -366605,6 +366932,12 @@ ${indentData}`);
366605
366932
  break;
366606
366933
  }
366607
366934
  };
366935
+ const onDrawingComplete = (result) => {
366936
+ emit("drawing-complete", result);
366937
+ };
366938
+ const onDrawingClear = (event) => {
366939
+ emit("drawing-clear", event);
366940
+ };
366608
366941
  const onPrintAction = (data2) => {
366609
366942
  console.log("打印操作:", data2);
366610
366943
  switch (data2.action) {
@@ -367291,7 +367624,9 @@ ${indentData}`);
367291
367624
  "right-offset": finalControlsConfig.value.rightOffset,
367292
367625
  "top-offset": finalControlsConfig.value.topOffset,
367293
367626
  "bottom-offset": finalControlsConfig.value.bottomOffset,
367294
- "view-bookmarks": props.viewBookmarks
367627
+ "view-bookmarks": props.viewBookmarks,
367628
+ onDrawingComplete,
367629
+ onDrawingClear
367295
367630
  }, {
367296
367631
  custom: vue.withCtx(({ controls }) => [
367297
367632
  vue.renderSlot(_ctx.$slots, "controls", {
@@ -367428,8 +367763,8 @@ ${indentData}`);
367428
367763
  };
367429
367764
  }
367430
367765
  });
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"]]);
367766
+ const OlMap_vue_vue_type_style_index_0_scoped_88e42f18_lang = "";
367767
+ const OlMap = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-88e42f18"]]);
367433
367768
  const ol = "";
367434
367769
  const Property$1 = {
367435
367770
  ACCURACY: "accuracy",