vue-openlayers-plugin 1.1.16 → 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.
- package/README.md +341 -0
- package/lib/{BasemapPanel-d1332546.mjs → BasemapPanel-aa284bf3.mjs} +1 -1
- package/lib/{CoordinateLocationDialog-c2d89c1e.mjs → CoordinateLocationDialog-6c0a6b23.mjs} +1 -1
- package/lib/{MapPrintDialog-eea9e39e.mjs → FilterPanel-b91325ac.mjs} +1 -1
- package/lib/{FilterPanel-d7cb1c79.mjs → LayerPanel-88983648.mjs} +1 -1
- package/lib/{LayerPanel-f411a32b.mjs → MapPrintDialog-2e5a22e7.mjs} +1 -1
- package/lib/{MeasurementDialog-9914f4e9.mjs → MeasurementDialog-ebda57e6.mjs} +1 -1
- package/lib/{MyMarkersDialog-ef717e8c.mjs → MyMarkersDialog-1f851036.mjs} +1 -1
- package/lib/{QuadCompareDialog-3d6eaf0c.mjs → QuadCompareDialog-8f624242.mjs} +1 -1
- package/lib/{RegionNavigationDialog-2843eedd.mjs → RegionNavigationDialog-549597e1.mjs} +1 -1
- package/lib/{SplitCompareDialog-1e678e69.mjs → SplitCompareDialog-9bcce145.mjs} +1 -1
- package/lib/{SwipeCompareDialog-547de7ee.mjs → SwipeCompareDialog-374b9865.mjs} +1 -1
- package/lib/{ViewBookmarksDialog-d3e38c53.mjs → ViewBookmarksDialog-10b5fe14.mjs} +1 -1
- package/lib/{index-92020358.mjs → index-b9d6884a.mjs} +1 -1
- package/lib/{index-198a96d2.mjs → index-e8d5fc75.mjs} +652 -90
- package/lib/{index.es-dd926512.mjs → index.es-ff0f4147.mjs} +1 -1
- package/lib/index.esm.js +1 -1
- package/lib/index.umd.js +638 -76
- package/lib/style.css +74 -23
- package/package.json +1 -1
- package/types/components/OlControlPanel.vue.d.ts +7 -3
- package/types/components/OlControlPanel.vue.d.ts.map +1 -1
- package/types/components/OlMap.vue.d.ts +3 -1
- package/types/components/OlMap.vue.d.ts.map +1 -1
- package/types/components/OlMapSearch.vue.d.ts +20 -1
- package/types/components/OlMapSearch.vue.d.ts.map +1 -1
- package/types/core/tiandituSearchApi.d.ts.map +1 -1
- package/types/lowcode-entry.d.ts +5 -0
- package/types/lowcode-entry.d.ts.map +1 -1
- package/types/plugins/index.d.ts +90 -0
- package/types/plugins/index.d.ts.map +1 -0
- package/types/services/searchService.d.ts +21 -1
- package/types/services/searchService.d.ts.map +1 -1
- package/types/tsconfig.tsbuildinfo +1 -1
- package/types/types/map.d.ts +56 -0
- package/types/types/map.d.ts.map +1 -1
|
@@ -5,11 +5,11 @@ var __publicField = (obj, key, value) => {
|
|
|
5
5
|
return value;
|
|
6
6
|
};
|
|
7
7
|
import { defineComponent, ref, computed, watch, onMounted, openBlock, createElementBlock, normalizeClass, normalizeStyle as normalizeStyle$1, withModifiers, createElementVNode, createBlock, unref, withCtx, createTextVNode, createCommentVNode, renderSlot, nextTick, toDisplayString, onUnmounted, createVNode as createVNode$1, Fragment, renderList, h as h$3, createApp, inject, provide, isRef, resolveDirective, withDirectives, vShow, defineAsyncComponent, reactive, shallowRef, resolveComponent, resolveDynamicComponent, withKeys, useAttrs, useSlots, mergeProps, createSlots, normalizeProps, guardReactiveProps, watchEffect, Teleport } from "vue";
|
|
8
|
-
import { MapLocation, Grid as Grid$6, Tools, Location, Guide, Flag, Printer, EditPen, Delete, Switch, DocumentCopy, Search, Loading, Clock, InfoFilled, Plus, Minus, RefreshLeft, RefreshRight, Right, FullScreen, Aim, Menu as Menu$2, View as View$4, Expand, FolderOpened, DataBoard, Setting, Download, Refresh, ZoomIn, ZoomOut, Document as Document$1, Position, Close } from "@element-plus/icons-vue";
|
|
8
|
+
import { MapLocation, Grid as Grid$6, Tools, Location, Guide, Flag, Printer, EditPen, Delete, Switch, DocumentCopy, Search, Loading, Clock, InfoFilled, Plus, Minus, RefreshLeft, RefreshRight, Right, FullScreen, Aim, Menu as Menu$2, View as View$4, Expand, Share, CircleCheck, FolderOpened, DataBoard, Setting, Download, Refresh, ZoomIn, ZoomOut, Document as Document$1, Position, Close } from "@element-plus/icons-vue";
|
|
9
9
|
import { Feature as Feature$3, Map as Map$4 } from "ol";
|
|
10
10
|
import proj4 from "proj4";
|
|
11
11
|
import { TileSuperMapRest, Util as Util$3, GetFeaturesByGeometryParameters as GetFeaturesByGeometryParameters$1, FeatureService } from "@supermapgis/iclient-ol";
|
|
12
|
-
import { ElButton, ElInput, ElIcon, ElDialog } from "element-plus";
|
|
12
|
+
import { ElButton, ElInput, ElIcon, ElPopover, ElTooltip, ElCheckbox, ElDialog } from "element-plus";
|
|
13
13
|
function _mergeNamespaces(n2, m2) {
|
|
14
14
|
for (var i = 0; i < m2.length; i++) {
|
|
15
15
|
const e8 = m2[i];
|
|
@@ -4183,7 +4183,6 @@ function transformGeom2D(simpleGeometry, transform3, dest) {
|
|
|
4183
4183
|
dest
|
|
4184
4184
|
);
|
|
4185
4185
|
}
|
|
4186
|
-
const SimpleGeometry$1 = SimpleGeometry;
|
|
4187
4186
|
function linearRing(flatCoordinates, offset2, end3, stride) {
|
|
4188
4187
|
let twiceArea = 0;
|
|
4189
4188
|
const x0 = flatCoordinates[end3 - stride];
|
|
@@ -4636,7 +4635,7 @@ function quantizeMultiArray(flatCoordinates, offset2, endss, stride, tolerance2,
|
|
|
4636
4635
|
}
|
|
4637
4636
|
return simplifiedOffset;
|
|
4638
4637
|
}
|
|
4639
|
-
let LinearRing$1 = class LinearRing extends SimpleGeometry
|
|
4638
|
+
let LinearRing$1 = class LinearRing extends SimpleGeometry {
|
|
4640
4639
|
/**
|
|
4641
4640
|
* @param {Array<import("../coordinate.js").Coordinate>|Array<number>} coordinates Coordinates.
|
|
4642
4641
|
* For internal use, flat coordinates in combination with `layout` are also accepted.
|
|
@@ -4793,7 +4792,7 @@ let LinearRing$1 = class LinearRing extends SimpleGeometry$1 {
|
|
|
4793
4792
|
}
|
|
4794
4793
|
};
|
|
4795
4794
|
const LinearRing$2 = LinearRing$1;
|
|
4796
|
-
let Point$5 = class Point extends SimpleGeometry
|
|
4795
|
+
let Point$5 = class Point extends SimpleGeometry {
|
|
4797
4796
|
/**
|
|
4798
4797
|
* @param {import("../coordinate.js").Coordinate} coordinates Coordinates.
|
|
4799
4798
|
* @param {import("./Geometry.js").GeometryLayout} [layout] Layout.
|
|
@@ -5278,7 +5277,7 @@ function inflateEnds(flatCoordinates, ends) {
|
|
|
5278
5277
|
}
|
|
5279
5278
|
return endss;
|
|
5280
5279
|
}
|
|
5281
|
-
let Polygon$6 = class Polygon extends SimpleGeometry
|
|
5280
|
+
let Polygon$6 = class Polygon extends SimpleGeometry {
|
|
5282
5281
|
/**
|
|
5283
5282
|
* @param {!Array<Array<import("../coordinate.js").Coordinate>>|!Array<number>} coordinates
|
|
5284
5283
|
* Array of linear rings that define the polygon. The first linear ring of the
|
|
@@ -18178,7 +18177,7 @@ function lineStringLength(flatCoordinates, offset2, end3, stride) {
|
|
|
18178
18177
|
}
|
|
18179
18178
|
return length2;
|
|
18180
18179
|
}
|
|
18181
|
-
let LineString$1 = class LineString extends SimpleGeometry
|
|
18180
|
+
let LineString$1 = class LineString extends SimpleGeometry {
|
|
18182
18181
|
/**
|
|
18183
18182
|
* @param {Array<import("../coordinate.js").Coordinate>|Array<number>} coordinates Coordinates.
|
|
18184
18183
|
* For internal use, flat coordinates in combination with `layout` are also accepted.
|
|
@@ -19776,7 +19775,7 @@ function linearRingss(flatCoordinates, offset2, endss, stride) {
|
|
|
19776
19775
|
}
|
|
19777
19776
|
return flatCenters;
|
|
19778
19777
|
}
|
|
19779
|
-
let Circle$6 = class Circle extends SimpleGeometry
|
|
19778
|
+
let Circle$6 = class Circle extends SimpleGeometry {
|
|
19780
19779
|
/**
|
|
19781
19780
|
* @param {!import("../coordinate.js").Coordinate} center Center.
|
|
19782
19781
|
* For internal use, flat coordinates in combination with `layout` and no
|
|
@@ -20288,7 +20287,7 @@ function cloneGeometries(geometries) {
|
|
|
20288
20287
|
return geometries.map((geometry) => geometry.clone());
|
|
20289
20288
|
}
|
|
20290
20289
|
const GeometryCollection$1 = GeometryCollection;
|
|
20291
|
-
let MultiLineString$1 = class MultiLineString extends SimpleGeometry
|
|
20290
|
+
let MultiLineString$1 = class MultiLineString extends SimpleGeometry {
|
|
20292
20291
|
/**
|
|
20293
20292
|
* @param {Array<Array<import("../coordinate.js").Coordinate>|LineString>|Array<number>} coordinates
|
|
20294
20293
|
* Coordinates or LineString geometries. (For internal use, flat coordinates in
|
|
@@ -20604,7 +20603,7 @@ let MultiLineString$1 = class MultiLineString extends SimpleGeometry$1 {
|
|
|
20604
20603
|
}
|
|
20605
20604
|
};
|
|
20606
20605
|
const MultiLineString$2 = MultiLineString$1;
|
|
20607
|
-
let MultiPoint$1 = class MultiPoint extends SimpleGeometry
|
|
20606
|
+
let MultiPoint$1 = class MultiPoint extends SimpleGeometry {
|
|
20608
20607
|
/**
|
|
20609
20608
|
* @param {Array<import("../coordinate.js").Coordinate>|Array<number>} coordinates Coordinates.
|
|
20610
20609
|
* For internal use, flat coordinates in combination with `layout` are also accepted.
|
|
@@ -20779,7 +20778,7 @@ let MultiPoint$1 = class MultiPoint extends SimpleGeometry$1 {
|
|
|
20779
20778
|
}
|
|
20780
20779
|
};
|
|
20781
20780
|
const MultiPoint$2 = MultiPoint$1;
|
|
20782
|
-
let MultiPolygon$1 = class MultiPolygon extends SimpleGeometry
|
|
20781
|
+
let MultiPolygon$1 = class MultiPolygon extends SimpleGeometry {
|
|
20783
20782
|
/**
|
|
20784
20783
|
* @param {Array<Array<Array<import("../coordinate.js").Coordinate>>|Polygon>|Array<number>} coordinates Coordinates.
|
|
20785
20784
|
* For internal use, flat coordinates in combination with `layout` and `endss` are also accepted.
|
|
@@ -54625,7 +54624,6 @@ class FeatureFormat {
|
|
|
54625
54624
|
return abstract();
|
|
54626
54625
|
}
|
|
54627
54626
|
}
|
|
54628
|
-
const FeatureFormat$1 = FeatureFormat;
|
|
54629
54627
|
function transformGeometryWithOptions(geometry, write3, options) {
|
|
54630
54628
|
const featureProjection = options ? get$5(options.featureProjection) : null;
|
|
54631
54629
|
const dataProjection = options ? get$5(options.dataProjection) : null;
|
|
@@ -54738,7 +54736,7 @@ function createGeometry(object2, options) {
|
|
|
54738
54736
|
options
|
|
54739
54737
|
);
|
|
54740
54738
|
}
|
|
54741
|
-
class JSONFeature extends FeatureFormat
|
|
54739
|
+
class JSONFeature extends FeatureFormat {
|
|
54742
54740
|
constructor() {
|
|
54743
54741
|
super();
|
|
54744
54742
|
}
|
|
@@ -55675,7 +55673,7 @@ function getDocument() {
|
|
|
55675
55673
|
}
|
|
55676
55674
|
return document_;
|
|
55677
55675
|
}
|
|
55678
|
-
class XMLFeature extends FeatureFormat
|
|
55676
|
+
class XMLFeature extends FeatureFormat {
|
|
55679
55677
|
constructor() {
|
|
55680
55678
|
super();
|
|
55681
55679
|
this.xmlSerializer_ = getXMLSerializer();
|
|
@@ -58181,7 +58179,7 @@ const GML = GML3$1;
|
|
|
58181
58179
|
GML.prototype.writeFeatures;
|
|
58182
58180
|
GML.prototype.writeFeaturesNode;
|
|
58183
58181
|
const GML$1 = GML;
|
|
58184
|
-
class TextFeature extends FeatureFormat
|
|
58182
|
+
class TextFeature extends FeatureFormat {
|
|
58185
58183
|
constructor() {
|
|
58186
58184
|
super();
|
|
58187
58185
|
}
|
|
@@ -61492,7 +61490,7 @@ function writeUtf8(buf, str2, pos) {
|
|
|
61492
61490
|
}
|
|
61493
61491
|
return pos;
|
|
61494
61492
|
}
|
|
61495
|
-
class MVT extends FeatureFormat
|
|
61493
|
+
class MVT extends FeatureFormat {
|
|
61496
61494
|
/**
|
|
61497
61495
|
* @param {Options<FeatureType>} [options] Options.
|
|
61498
61496
|
*/
|
|
@@ -334669,24 +334667,24 @@ const _hoisted_7$c = {
|
|
|
334669
334667
|
key: 0,
|
|
334670
334668
|
class: "image-loading"
|
|
334671
334669
|
};
|
|
334672
|
-
const _hoisted_8$
|
|
334670
|
+
const _hoisted_8$c = {
|
|
334673
334671
|
key: 1,
|
|
334674
334672
|
class: "image-error"
|
|
334675
334673
|
};
|
|
334676
|
-
const _hoisted_9$
|
|
334674
|
+
const _hoisted_9$c = {
|
|
334677
334675
|
key: 2,
|
|
334678
334676
|
class: "image-navigation"
|
|
334679
334677
|
};
|
|
334680
|
-
const _hoisted_10$
|
|
334678
|
+
const _hoisted_10$c = {
|
|
334681
334679
|
key: 3,
|
|
334682
334680
|
class: "image-counter"
|
|
334683
334681
|
};
|
|
334684
|
-
const _hoisted_11$
|
|
334682
|
+
const _hoisted_11$a = {
|
|
334685
334683
|
key: 2,
|
|
334686
334684
|
class: "image-thumbnails"
|
|
334687
334685
|
};
|
|
334688
|
-
const _hoisted_12$
|
|
334689
|
-
const _hoisted_13$
|
|
334686
|
+
const _hoisted_12$8 = ["onClick"];
|
|
334687
|
+
const _hoisted_13$8 = ["src", "alt"];
|
|
334690
334688
|
const _hoisted_14$5 = {
|
|
334691
334689
|
key: 3,
|
|
334692
334690
|
class: "slideshow-controls"
|
|
@@ -334857,10 +334855,10 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
334857
334855
|
createElementVNode("div", { class: "loading-spinner" }, null, -1),
|
|
334858
334856
|
createElementVNode("span", null, "加载中...", -1)
|
|
334859
334857
|
])])) : createCommentVNode("", true),
|
|
334860
|
-
imageError.value ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
334858
|
+
imageError.value ? (openBlock(), createElementBlock("div", _hoisted_8$c, [..._cache[5] || (_cache[5] = [
|
|
334861
334859
|
createElementVNode("span", null, "图片加载失败", -1)
|
|
334862
334860
|
])])) : createCommentVNode("", true),
|
|
334863
|
-
imageList.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_9$
|
|
334861
|
+
imageList.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_9$c, [
|
|
334864
334862
|
createVNode$1(unref(ElButton), {
|
|
334865
334863
|
class: "nav-btn prev-btn",
|
|
334866
334864
|
disabled: currentIndex.value === 0,
|
|
@@ -334886,10 +334884,10 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
334886
334884
|
_: 1
|
|
334887
334885
|
}, 8, ["disabled"])
|
|
334888
334886
|
])) : createCommentVNode("", true),
|
|
334889
|
-
imageList.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_10$
|
|
334887
|
+
imageList.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_10$c, toDisplayString(currentIndex.value + 1) + " / " + toDisplayString(imageList.value.length), 1)) : createCommentVNode("", true)
|
|
334890
334888
|
])
|
|
334891
334889
|
]),
|
|
334892
|
-
_ctx.config.showThumbnails && imageList.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_11$
|
|
334890
|
+
_ctx.config.showThumbnails && imageList.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_11$a, [
|
|
334893
334891
|
(openBlock(true), createElementBlock(Fragment, null, renderList(imageList.value, (image2, index2) => {
|
|
334894
334892
|
return openBlock(), createElementBlock("div", {
|
|
334895
334893
|
key: index2,
|
|
@@ -334899,8 +334897,8 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
334899
334897
|
createElementVNode("img", {
|
|
334900
334898
|
src: image2,
|
|
334901
334899
|
alt: `缩略图 ${index2 + 1}`
|
|
334902
|
-
}, null, 8, _hoisted_13$
|
|
334903
|
-
], 10, _hoisted_12$
|
|
334900
|
+
}, null, 8, _hoisted_13$8)
|
|
334901
|
+
], 10, _hoisted_12$8);
|
|
334904
334902
|
}), 128))
|
|
334905
334903
|
])) : createCommentVNode("", true),
|
|
334906
334904
|
_ctx.config.slideshow && imageList.value.length > 1 ? (openBlock(), createElementBlock("div", _hoisted_14$5, [
|
|
@@ -334972,24 +334970,24 @@ const _hoisted_6$c = {
|
|
|
334972
334970
|
class: "data-stats"
|
|
334973
334971
|
};
|
|
334974
334972
|
const _hoisted_7$b = { key: 0 };
|
|
334975
|
-
const _hoisted_8$
|
|
334973
|
+
const _hoisted_8$b = {
|
|
334976
334974
|
key: 5,
|
|
334977
334975
|
class: "table-view"
|
|
334978
334976
|
};
|
|
334979
|
-
const _hoisted_9$
|
|
334980
|
-
const _hoisted_10$
|
|
334981
|
-
const _hoisted_11$
|
|
334982
|
-
const _hoisted_12$
|
|
334977
|
+
const _hoisted_9$b = { class: "table-container" };
|
|
334978
|
+
const _hoisted_10$b = { class: "data-table" };
|
|
334979
|
+
const _hoisted_11$9 = ["onClick"];
|
|
334980
|
+
const _hoisted_12$7 = {
|
|
334983
334981
|
key: 0,
|
|
334984
334982
|
class: "sort-indicator"
|
|
334985
334983
|
};
|
|
334986
|
-
const _hoisted_13$
|
|
334984
|
+
const _hoisted_13$7 = ["onClick"];
|
|
334987
334985
|
const _hoisted_14$4 = { key: 0 };
|
|
334988
334986
|
const _hoisted_15$3 = ["src", "alt"];
|
|
334989
334987
|
const _hoisted_16$3 = { key: 1 };
|
|
334990
334988
|
const _hoisted_17$3 = ["href"];
|
|
334991
334989
|
const _hoisted_18$3 = { key: 2 };
|
|
334992
|
-
const _hoisted_19$
|
|
334990
|
+
const _hoisted_19$3 = { key: 3 };
|
|
334993
334991
|
const _hoisted_20$2 = { key: 4 };
|
|
334994
334992
|
const _hoisted_21$2 = {
|
|
334995
334993
|
key: 6,
|
|
@@ -335240,9 +335238,9 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
|
335240
335238
|
createElementVNode("span", null, "共 " + toDisplayString(filteredData.value.length) + " 条记录", 1),
|
|
335241
335239
|
searchQuery.value ? (openBlock(), createElementBlock("span", _hoisted_7$b, "(已过滤 " + toDisplayString(arrayData.value.length - filteredData.value.length) + " 条)", 1)) : createCommentVNode("", true)
|
|
335242
335240
|
])) : createCommentVNode("", true),
|
|
335243
|
-
currentView.value === "table" ? (openBlock(), createElementBlock("div", _hoisted_8$
|
|
335244
|
-
createElementVNode("div", _hoisted_9$
|
|
335245
|
-
createElementVNode("table", _hoisted_10$
|
|
335241
|
+
currentView.value === "table" ? (openBlock(), createElementBlock("div", _hoisted_8$b, [
|
|
335242
|
+
createElementVNode("div", _hoisted_9$b, [
|
|
335243
|
+
createElementVNode("table", _hoisted_10$b, [
|
|
335246
335244
|
createElementVNode("thead", null, [
|
|
335247
335245
|
createElementVNode("tr", null, [
|
|
335248
335246
|
(openBlock(true), createElementBlock(Fragment, null, renderList(displayFields.value, (field) => {
|
|
@@ -335252,8 +335250,8 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
|
335252
335250
|
onClick: ($event) => handleSort(field.key)
|
|
335253
335251
|
}, [
|
|
335254
335252
|
createTextVNode(toDisplayString(field.label) + " ", 1),
|
|
335255
|
-
field.sortable && sortField.value === field.key ? (openBlock(), createElementBlock("span", _hoisted_12$
|
|
335256
|
-
], 10, _hoisted_11$
|
|
335253
|
+
field.sortable && sortField.value === field.key ? (openBlock(), createElementBlock("span", _hoisted_12$7, toDisplayString(sortOrder.value === "asc" ? "↑" : "↓"), 1)) : createCommentVNode("", true)
|
|
335254
|
+
], 10, _hoisted_11$9);
|
|
335257
335255
|
}), 128))
|
|
335258
335256
|
])
|
|
335259
335257
|
]),
|
|
@@ -335279,10 +335277,10 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
|
|
|
335279
335277
|
target: "_blank",
|
|
335280
335278
|
class: "table-link"
|
|
335281
335279
|
}, toDisplayString(getFieldValue(item, field.key || field.name)), 9, _hoisted_17$3)
|
|
335282
|
-
])) : field.type === "date" ? (openBlock(), createElementBlock("span", _hoisted_18$3, toDisplayString(formatDate(getFieldValue(item, field.key || field.name))), 1)) : field.type === "number" ? (openBlock(), createElementBlock("span", _hoisted_19$
|
|
335280
|
+
])) : field.type === "date" ? (openBlock(), createElementBlock("span", _hoisted_18$3, toDisplayString(formatDate(getFieldValue(item, field.key || field.name))), 1)) : field.type === "number" ? (openBlock(), createElementBlock("span", _hoisted_19$3, toDisplayString(formatNumber2(getFieldValue(item, field.key || field.name))), 1)) : (openBlock(), createElementBlock("span", _hoisted_20$2, toDisplayString(getFieldValue(item, field.key || field.name)), 1))
|
|
335283
335281
|
]);
|
|
335284
335282
|
}), 128))
|
|
335285
|
-
], 8, _hoisted_13$
|
|
335283
|
+
], 8, _hoisted_13$7);
|
|
335286
335284
|
}), 128))
|
|
335287
335285
|
])
|
|
335288
335286
|
])
|
|
@@ -337397,19 +337395,19 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
|
|
|
337397
337395
|
}
|
|
337398
337396
|
});
|
|
337399
337397
|
const defaultComponents = {
|
|
337400
|
-
measurement: () => import("./MeasurementDialog-
|
|
337401
|
-
basemap: () => import("./BasemapPanel-
|
|
337402
|
-
print: () => import("./MapPrintDialog-
|
|
337403
|
-
"layer-panel": () => import("./LayerPanel-
|
|
337404
|
-
coordinate: () => import("./CoordinateLocationDialog-
|
|
337405
|
-
"region-navigation": () => import("./RegionNavigationDialog-
|
|
337406
|
-
"my-markers": () => import("./MyMarkersDialog-
|
|
337407
|
-
"view-bookmarks": () => import("./ViewBookmarksDialog-
|
|
337408
|
-
"map-drawing": () => import("./index-
|
|
337409
|
-
"filter-panel": () => import("./FilterPanel-
|
|
337410
|
-
"swipe-compare": () => import("./SwipeCompareDialog-
|
|
337411
|
-
"split-compare": () => import("./SplitCompareDialog-
|
|
337412
|
-
"quad-compare": () => import("./QuadCompareDialog-
|
|
337398
|
+
measurement: () => import("./MeasurementDialog-ebda57e6.mjs"),
|
|
337399
|
+
basemap: () => import("./BasemapPanel-aa284bf3.mjs"),
|
|
337400
|
+
print: () => import("./MapPrintDialog-2e5a22e7.mjs"),
|
|
337401
|
+
"layer-panel": () => import("./LayerPanel-88983648.mjs"),
|
|
337402
|
+
coordinate: () => import("./CoordinateLocationDialog-6c0a6b23.mjs"),
|
|
337403
|
+
"region-navigation": () => import("./RegionNavigationDialog-549597e1.mjs"),
|
|
337404
|
+
"my-markers": () => import("./MyMarkersDialog-1f851036.mjs"),
|
|
337405
|
+
"view-bookmarks": () => import("./ViewBookmarksDialog-10b5fe14.mjs"),
|
|
337406
|
+
"map-drawing": () => import("./index-b9d6884a.mjs"),
|
|
337407
|
+
"filter-panel": () => import("./FilterPanel-b91325ac.mjs"),
|
|
337408
|
+
"swipe-compare": () => import("./SwipeCompareDialog-374b9865.mjs"),
|
|
337409
|
+
"split-compare": () => import("./SplitCompareDialog-9bcce145.mjs"),
|
|
337410
|
+
"quad-compare": () => import("./QuadCompareDialog-8f624242.mjs")
|
|
337413
337411
|
};
|
|
337414
337412
|
const _DialogRegistry = class _DialogRegistry {
|
|
337415
337413
|
constructor() {
|
|
@@ -337880,6 +337878,7 @@ class TiandituSearchApi {
|
|
|
337880
337878
|
* @param options 搜索选项
|
|
337881
337879
|
*/
|
|
337882
337880
|
async search(query, options = {}) {
|
|
337881
|
+
var _a2;
|
|
337883
337882
|
try {
|
|
337884
337883
|
const {
|
|
337885
337884
|
maxResults = 10,
|
|
@@ -337907,8 +337906,10 @@ class TiandituSearchApi {
|
|
|
337907
337906
|
throw new Error(`天地图API请求失败: ${response.status}`);
|
|
337908
337907
|
}
|
|
337909
337908
|
const data = await response.json();
|
|
337910
|
-
|
|
337911
|
-
|
|
337909
|
+
const isSuccess = data.status === "200" || data.status === "0" || typeof data.status === "object" && ((_a2 = data.status) == null ? void 0 : _a2.infocode) === 1e3;
|
|
337910
|
+
if (!isSuccess) {
|
|
337911
|
+
const errorMessage = typeof data.status === "object" ? `${data.status.cndesc || "未知错误"} (${data.status.infocode ?? "unknown"})` : data.status;
|
|
337912
|
+
throw new Error(`天地图API返回错误: ${errorMessage}`);
|
|
337912
337913
|
}
|
|
337913
337914
|
return this.transformResults(data, type);
|
|
337914
337915
|
} catch (error2) {
|
|
@@ -338075,6 +338076,20 @@ class TiandituSearchApi {
|
|
|
338075
338076
|
}
|
|
338076
338077
|
}
|
|
338077
338078
|
const tiandituSearchApi = new TiandituSearchApi();
|
|
338079
|
+
class MapSearchError extends Error {
|
|
338080
|
+
constructor(options) {
|
|
338081
|
+
super(options.message);
|
|
338082
|
+
__publicField(this, "code");
|
|
338083
|
+
__publicField(this, "userMessage");
|
|
338084
|
+
__publicField(this, "provider");
|
|
338085
|
+
__publicField(this, "cause");
|
|
338086
|
+
this.name = "MapSearchError";
|
|
338087
|
+
this.code = options.code;
|
|
338088
|
+
this.userMessage = options.userMessage;
|
|
338089
|
+
this.provider = options.provider;
|
|
338090
|
+
this.cause = options.cause;
|
|
338091
|
+
}
|
|
338092
|
+
}
|
|
338078
338093
|
class MapSearchService {
|
|
338079
338094
|
constructor(config, deps) {
|
|
338080
338095
|
__publicField(this, "config");
|
|
@@ -338128,7 +338143,7 @@ class MapSearchService {
|
|
|
338128
338143
|
return results;
|
|
338129
338144
|
} catch (error2) {
|
|
338130
338145
|
console.error("搜索失败:", error2);
|
|
338131
|
-
|
|
338146
|
+
throw this.createSearchError(query, error2);
|
|
338132
338147
|
}
|
|
338133
338148
|
}
|
|
338134
338149
|
/**
|
|
@@ -338243,7 +338258,7 @@ class MapSearchService {
|
|
|
338243
338258
|
async searchTianditu(query) {
|
|
338244
338259
|
try {
|
|
338245
338260
|
const results = await tiandituSearchApi.search(query, {
|
|
338246
|
-
...this.
|
|
338261
|
+
...this.getTiandituSearchOptions(),
|
|
338247
338262
|
maxResults: this.config.maxResults || 10,
|
|
338248
338263
|
type: this.config.type || "all"
|
|
338249
338264
|
});
|
|
@@ -338253,6 +338268,111 @@ class MapSearchService {
|
|
|
338253
338268
|
throw error2;
|
|
338254
338269
|
}
|
|
338255
338270
|
}
|
|
338271
|
+
getTiandituSearchOptions() {
|
|
338272
|
+
const {
|
|
338273
|
+
enabled: _enabled,
|
|
338274
|
+
position: _position,
|
|
338275
|
+
placeholder: _placeholder,
|
|
338276
|
+
provider: _provider,
|
|
338277
|
+
apiKey: _apiKey,
|
|
338278
|
+
customApi: _customApi,
|
|
338279
|
+
layerSearch: _layerSearch,
|
|
338280
|
+
maxResults: _maxResults,
|
|
338281
|
+
showHistory: _showHistory,
|
|
338282
|
+
enableStorage: _enableStorage,
|
|
338283
|
+
searchDelay: _searchDelay,
|
|
338284
|
+
minSearchLength: _minSearchLength,
|
|
338285
|
+
messages: _messages,
|
|
338286
|
+
resultStyle: _resultStyle,
|
|
338287
|
+
onSearch: _onSearch,
|
|
338288
|
+
onSelect: _onSelect,
|
|
338289
|
+
customSearchFn: _customSearchFn,
|
|
338290
|
+
...tiandituOptions
|
|
338291
|
+
} = this.config;
|
|
338292
|
+
return tiandituOptions;
|
|
338293
|
+
}
|
|
338294
|
+
createSearchError(query, error2) {
|
|
338295
|
+
var _a2;
|
|
338296
|
+
if (error2 instanceof MapSearchError) {
|
|
338297
|
+
return error2;
|
|
338298
|
+
}
|
|
338299
|
+
const provider = this.getResolvedProvider();
|
|
338300
|
+
const code = this.inferSearchErrorCode(error2);
|
|
338301
|
+
const technicalMessage = error2 instanceof Error ? error2.message : "搜索服务发生未知错误";
|
|
338302
|
+
const userMessage = this.resolveMessage((_a2 = this.config.messages) == null ? void 0 : _a2.searchFailed, {
|
|
338303
|
+
query,
|
|
338304
|
+
provider,
|
|
338305
|
+
error: error2,
|
|
338306
|
+
code
|
|
338307
|
+
}) || this.getDefaultSearchFailedMessage(provider, code);
|
|
338308
|
+
return new MapSearchError({
|
|
338309
|
+
code,
|
|
338310
|
+
message: technicalMessage,
|
|
338311
|
+
userMessage,
|
|
338312
|
+
provider,
|
|
338313
|
+
cause: error2
|
|
338314
|
+
});
|
|
338315
|
+
}
|
|
338316
|
+
inferSearchErrorCode(error2) {
|
|
338317
|
+
if (error2 instanceof MapSearchError) {
|
|
338318
|
+
return error2.code;
|
|
338319
|
+
}
|
|
338320
|
+
if (error2 instanceof TypeError) {
|
|
338321
|
+
return "network_error";
|
|
338322
|
+
}
|
|
338323
|
+
if (!(error2 instanceof Error)) {
|
|
338324
|
+
return "unknown_error";
|
|
338325
|
+
}
|
|
338326
|
+
const message = error2.message.toLowerCase();
|
|
338327
|
+
if (message.includes("未配置") || message.includes("not configured")) {
|
|
338328
|
+
return "config_error";
|
|
338329
|
+
}
|
|
338330
|
+
if (message.includes("failed to fetch") || message.includes("networkerror") || message.includes("网络")) {
|
|
338331
|
+
return "network_error";
|
|
338332
|
+
}
|
|
338333
|
+
if (message.includes("http error") || message.includes("请求失败") || /^http\s\d+/.test(message)) {
|
|
338334
|
+
return "http_error";
|
|
338335
|
+
}
|
|
338336
|
+
if (message.includes("api错误") || message.includes("返回错误") || message.includes("业务错误")) {
|
|
338337
|
+
return "api_error";
|
|
338338
|
+
}
|
|
338339
|
+
return "unknown_error";
|
|
338340
|
+
}
|
|
338341
|
+
getResolvedProvider() {
|
|
338342
|
+
return this.config.provider || "tianditu";
|
|
338343
|
+
}
|
|
338344
|
+
getDefaultSearchFailedMessage(provider, code) {
|
|
338345
|
+
const providerLabel = this.getProviderLabel(provider);
|
|
338346
|
+
switch (code) {
|
|
338347
|
+
case "config_error":
|
|
338348
|
+
return `${providerLabel}未完成配置,请联系管理员`;
|
|
338349
|
+
case "http_error":
|
|
338350
|
+
return `${providerLabel}服务连接失败,请稍后重试`;
|
|
338351
|
+
case "api_error":
|
|
338352
|
+
return `${providerLabel}返回业务错误,请调整关键词后重试`;
|
|
338353
|
+
case "network_error":
|
|
338354
|
+
return `网络连接异常,无法访问${providerLabel}`;
|
|
338355
|
+
default:
|
|
338356
|
+
return `${providerLabel}搜索暂不可用,请稍后重试`;
|
|
338357
|
+
}
|
|
338358
|
+
}
|
|
338359
|
+
getProviderLabel(provider) {
|
|
338360
|
+
const labelMap = {
|
|
338361
|
+
baidu: "百度地图搜索服务",
|
|
338362
|
+
amap: "高德地图搜索服务",
|
|
338363
|
+
google: "Google 地图搜索服务",
|
|
338364
|
+
tianditu: "天地图搜索服务",
|
|
338365
|
+
custom: "自定义搜索服务",
|
|
338366
|
+
layer: "图层搜索服务"
|
|
338367
|
+
};
|
|
338368
|
+
return labelMap[provider];
|
|
338369
|
+
}
|
|
338370
|
+
resolveMessage(resolver, context) {
|
|
338371
|
+
if (!resolver) {
|
|
338372
|
+
return void 0;
|
|
338373
|
+
}
|
|
338374
|
+
return typeof resolver === "function" ? resolver(context) : resolver;
|
|
338375
|
+
}
|
|
338256
338376
|
/**
|
|
338257
338377
|
* 自定义API搜索
|
|
338258
338378
|
*/
|
|
@@ -338597,6 +338717,11 @@ const defaultSearchConfig = {
|
|
|
338597
338717
|
showHistory: true,
|
|
338598
338718
|
searchDelay: 300,
|
|
338599
338719
|
minSearchLength: 2,
|
|
338720
|
+
messages: {
|
|
338721
|
+
historyTitle: "搜索历史",
|
|
338722
|
+
clearHistory: "清除",
|
|
338723
|
+
resultsTitle: "搜索结果"
|
|
338724
|
+
},
|
|
338600
338725
|
resultStyle: {
|
|
338601
338726
|
markerColor: "#409eff",
|
|
338602
338727
|
markerSize: 20,
|
|
@@ -338606,6 +338731,7 @@ const defaultSearchConfig = {
|
|
|
338606
338731
|
};
|
|
338607
338732
|
const searchService = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
338608
338733
|
__proto__: null,
|
|
338734
|
+
MapSearchError,
|
|
338609
338735
|
MapSearchService,
|
|
338610
338736
|
defaultSearchConfig
|
|
338611
338737
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -338619,18 +338745,18 @@ const _hoisted_4$h = { class: "section-title" };
|
|
|
338619
338745
|
const _hoisted_5$f = ["onClick"];
|
|
338620
338746
|
const _hoisted_6$b = { class: "item-content" };
|
|
338621
338747
|
const _hoisted_7$a = { class: "item-name" };
|
|
338622
|
-
const _hoisted_8$
|
|
338623
|
-
const _hoisted_9$
|
|
338748
|
+
const _hoisted_8$a = { class: "item-address" };
|
|
338749
|
+
const _hoisted_9$a = {
|
|
338624
338750
|
key: 1,
|
|
338625
338751
|
class: "search-section"
|
|
338626
338752
|
};
|
|
338627
|
-
const _hoisted_10$
|
|
338753
|
+
const _hoisted_10$a = {
|
|
338628
338754
|
key: 0,
|
|
338629
338755
|
class: "section-title"
|
|
338630
338756
|
};
|
|
338631
|
-
const _hoisted_11$
|
|
338632
|
-
const _hoisted_12$
|
|
338633
|
-
const _hoisted_13$
|
|
338757
|
+
const _hoisted_11$8 = { class: "result-count" };
|
|
338758
|
+
const _hoisted_12$6 = ["onClick"];
|
|
338759
|
+
const _hoisted_13$6 = { class: "item-content" };
|
|
338634
338760
|
const _hoisted_14$3 = ["innerHTML"];
|
|
338635
338761
|
const _hoisted_15$2 = ["innerHTML"];
|
|
338636
338762
|
const _hoisted_16$2 = {
|
|
@@ -338642,6 +338768,10 @@ const _hoisted_17$2 = {
|
|
|
338642
338768
|
class: "item-confidence"
|
|
338643
338769
|
};
|
|
338644
338770
|
const _hoisted_18$2 = {
|
|
338771
|
+
key: 0,
|
|
338772
|
+
class: "search-error"
|
|
338773
|
+
};
|
|
338774
|
+
const _hoisted_19$2 = {
|
|
338645
338775
|
key: 0,
|
|
338646
338776
|
class: "no-results"
|
|
338647
338777
|
};
|
|
@@ -338658,10 +338788,15 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338658
338788
|
enableStorage: false,
|
|
338659
338789
|
// 默认禁用存储
|
|
338660
338790
|
searchDelay: 300,
|
|
338661
|
-
minSearchLength: 2
|
|
338791
|
+
minSearchLength: 2,
|
|
338792
|
+
messages: {
|
|
338793
|
+
historyTitle: "搜索历史",
|
|
338794
|
+
clearHistory: "清除",
|
|
338795
|
+
resultsTitle: "搜索结果"
|
|
338796
|
+
}
|
|
338662
338797
|
}) }
|
|
338663
338798
|
},
|
|
338664
|
-
emits: ["search", "select", "clear"],
|
|
338799
|
+
emits: ["search", "select", "clear", "search-error"],
|
|
338665
338800
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
338666
338801
|
const props = __props;
|
|
338667
338802
|
const emit = __emit;
|
|
@@ -338677,12 +338812,52 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338677
338812
|
const showResults = ref(false);
|
|
338678
338813
|
const selectedIndex = ref(-1);
|
|
338679
338814
|
const searchTimer = ref(null);
|
|
338815
|
+
const searchErrorMessage = ref("");
|
|
338816
|
+
const searchErrorCode = ref("");
|
|
338680
338817
|
const position2 = computed(() => props.config.position || "top-left");
|
|
338681
338818
|
const placeholder = computed(() => props.config.placeholder || "搜索地点...");
|
|
338682
338819
|
const maxResults = computed(() => props.config.maxResults || 10);
|
|
338683
338820
|
const showHistory = computed(() => props.config.showHistory !== false);
|
|
338684
338821
|
const searchDelay = computed(() => props.config.searchDelay || 300);
|
|
338685
338822
|
const minSearchLength = computed(() => props.config.minSearchLength || 2);
|
|
338823
|
+
const historyTitleText = computed(
|
|
338824
|
+
() => {
|
|
338825
|
+
var _a2;
|
|
338826
|
+
return resolveMessage((_a2 = props.config.messages) == null ? void 0 : _a2.historyTitle, {}, "搜索历史");
|
|
338827
|
+
}
|
|
338828
|
+
);
|
|
338829
|
+
const clearHistoryText = computed(
|
|
338830
|
+
() => {
|
|
338831
|
+
var _a2;
|
|
338832
|
+
return resolveMessage((_a2 = props.config.messages) == null ? void 0 : _a2.clearHistory, {}, "清除");
|
|
338833
|
+
}
|
|
338834
|
+
);
|
|
338835
|
+
const resultsTitleText = computed(
|
|
338836
|
+
() => {
|
|
338837
|
+
var _a2;
|
|
338838
|
+
return resolveMessage(
|
|
338839
|
+
(_a2 = props.config.messages) == null ? void 0 : _a2.resultsTitle,
|
|
338840
|
+
{
|
|
338841
|
+
query: searchQuery.value,
|
|
338842
|
+
count: searchResults.value.length
|
|
338843
|
+
},
|
|
338844
|
+
"搜索结果"
|
|
338845
|
+
);
|
|
338846
|
+
}
|
|
338847
|
+
);
|
|
338848
|
+
const noResultsText = computed(
|
|
338849
|
+
() => {
|
|
338850
|
+
var _a2;
|
|
338851
|
+
return resolveMessage(
|
|
338852
|
+
(_a2 = props.config.messages) == null ? void 0 : _a2.noResults,
|
|
338853
|
+
{
|
|
338854
|
+
query: searchQuery.value,
|
|
338855
|
+
provider: props.config.provider
|
|
338856
|
+
},
|
|
338857
|
+
getDefaultNoResultsMessage(props.config.provider || "tianditu")
|
|
338858
|
+
);
|
|
338859
|
+
}
|
|
338860
|
+
);
|
|
338686
338861
|
const displayResults = computed(() => {
|
|
338687
338862
|
return searchResults.value.slice(0, maxResults.value);
|
|
338688
338863
|
});
|
|
@@ -338696,15 +338871,65 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338696
338871
|
}
|
|
338697
338872
|
return count2;
|
|
338698
338873
|
});
|
|
338874
|
+
const resolveMessage = (resolver, context, fallback) => {
|
|
338875
|
+
if (!resolver) {
|
|
338876
|
+
return fallback;
|
|
338877
|
+
}
|
|
338878
|
+
return typeof resolver === "function" ? resolver(context) : resolver;
|
|
338879
|
+
};
|
|
338880
|
+
const getProviderLabel = (provider) => {
|
|
338881
|
+
const labelMap = {
|
|
338882
|
+
baidu: "百度地图",
|
|
338883
|
+
amap: "高德地图",
|
|
338884
|
+
google: "Google 地图",
|
|
338885
|
+
tianditu: "天地图",
|
|
338886
|
+
custom: "自定义搜索服务",
|
|
338887
|
+
layer: "图层搜索"
|
|
338888
|
+
};
|
|
338889
|
+
return labelMap[provider];
|
|
338890
|
+
};
|
|
338891
|
+
const getDefaultNoResultsMessage = (provider) => {
|
|
338892
|
+
switch (provider) {
|
|
338893
|
+
case "baidu":
|
|
338894
|
+
return "百度地图未找到相关地点,请尝试更换关键词";
|
|
338895
|
+
case "amap":
|
|
338896
|
+
return "高德地图未找到相关地点,请尝试更换关键词";
|
|
338897
|
+
case "google":
|
|
338898
|
+
return "Google 地图未找到相关地点,请尝试更换关键词";
|
|
338899
|
+
case "custom":
|
|
338900
|
+
return "自定义搜索服务未返回结果";
|
|
338901
|
+
case "layer":
|
|
338902
|
+
return "当前图层中未找到匹配结果";
|
|
338903
|
+
default:
|
|
338904
|
+
return "天地图未找到相关地点,请尝试补充行政区或 POI 名称";
|
|
338905
|
+
}
|
|
338906
|
+
};
|
|
338907
|
+
const normalizeSearchError = (error2) => {
|
|
338908
|
+
if (error2 instanceof MapSearchError) {
|
|
338909
|
+
return error2;
|
|
338910
|
+
}
|
|
338911
|
+
const provider = props.config.provider || "tianditu";
|
|
338912
|
+
return new MapSearchError({
|
|
338913
|
+
code: "unknown_error",
|
|
338914
|
+
message: error2 instanceof Error ? error2.message : "搜索服务发生未知错误",
|
|
338915
|
+
userMessage: `${getProviderLabel(provider)}搜索暂不可用,请稍后重试`,
|
|
338916
|
+
provider,
|
|
338917
|
+
cause: error2
|
|
338918
|
+
});
|
|
338919
|
+
};
|
|
338699
338920
|
const handleSearchInput = (value) => {
|
|
338700
338921
|
if (searchTimer.value) {
|
|
338701
338922
|
clearTimeout(searchTimer.value);
|
|
338702
338923
|
}
|
|
338703
338924
|
if (value.length >= minSearchLength.value) {
|
|
338925
|
+
searchErrorMessage.value = "";
|
|
338926
|
+
searchErrorCode.value = "";
|
|
338704
338927
|
searchTimer.value = setTimeout(() => {
|
|
338705
338928
|
performSearch(value);
|
|
338706
338929
|
}, searchDelay.value);
|
|
338707
338930
|
} else {
|
|
338931
|
+
searchErrorMessage.value = "";
|
|
338932
|
+
searchErrorCode.value = "";
|
|
338708
338933
|
searchResults.value = [];
|
|
338709
338934
|
showResults.value = value.length === 0 && showHistory.value;
|
|
338710
338935
|
}
|
|
@@ -338752,6 +338977,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338752
338977
|
selectedIndex.value = -1;
|
|
338753
338978
|
searchQuery.value = "";
|
|
338754
338979
|
searchResults.value = [];
|
|
338980
|
+
searchErrorMessage.value = "";
|
|
338981
|
+
searchErrorCode.value = "";
|
|
338755
338982
|
};
|
|
338756
338983
|
const getSelectableItems = () => {
|
|
338757
338984
|
const items = [];
|
|
@@ -338764,11 +338991,14 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338764
338991
|
return items;
|
|
338765
338992
|
};
|
|
338766
338993
|
const performSearch = async (query) => {
|
|
338994
|
+
var _a2;
|
|
338767
338995
|
if (!query || query.length < minSearchLength.value) {
|
|
338768
338996
|
return;
|
|
338769
338997
|
}
|
|
338770
338998
|
isLoading.value = true;
|
|
338771
338999
|
showResults.value = true;
|
|
339000
|
+
searchErrorMessage.value = "";
|
|
339001
|
+
searchErrorCode.value = "";
|
|
338772
339002
|
try {
|
|
338773
339003
|
const results = await searchService2.search(query);
|
|
338774
339004
|
searchResults.value = results;
|
|
@@ -338776,6 +339006,19 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338776
339006
|
} catch (error2) {
|
|
338777
339007
|
console.error("搜索失败:", error2);
|
|
338778
339008
|
searchResults.value = [];
|
|
339009
|
+
const normalizedError = normalizeSearchError(error2);
|
|
339010
|
+
searchErrorCode.value = normalizedError.code;
|
|
339011
|
+
searchErrorMessage.value = error2 instanceof MapSearchError ? normalizedError.userMessage : resolveMessage(
|
|
339012
|
+
(_a2 = props.config.messages) == null ? void 0 : _a2.searchFailed,
|
|
339013
|
+
{
|
|
339014
|
+
query,
|
|
339015
|
+
provider: normalizedError.provider,
|
|
339016
|
+
error: error2,
|
|
339017
|
+
code: normalizedError.code
|
|
339018
|
+
},
|
|
339019
|
+
normalizedError.userMessage
|
|
339020
|
+
);
|
|
339021
|
+
emit("search-error", normalizedError);
|
|
338779
339022
|
} finally {
|
|
338780
339023
|
isLoading.value = false;
|
|
338781
339024
|
}
|
|
@@ -338785,7 +339028,6 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338785
339028
|
showResults.value = false;
|
|
338786
339029
|
selectedIndex.value = -1;
|
|
338787
339030
|
addToHistory(result);
|
|
338788
|
-
debugger;
|
|
338789
339031
|
emit("select", result);
|
|
338790
339032
|
};
|
|
338791
339033
|
const selectHistoryItem = (item) => {
|
|
@@ -338848,12 +339090,16 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338848
339090
|
const updateResults = (results) => {
|
|
338849
339091
|
searchResults.value = results;
|
|
338850
339092
|
isLoading.value = false;
|
|
339093
|
+
searchErrorMessage.value = "";
|
|
339094
|
+
searchErrorCode.value = "";
|
|
338851
339095
|
};
|
|
338852
339096
|
const clearResults = () => {
|
|
338853
339097
|
searchResults.value = [];
|
|
338854
339098
|
searchQuery.value = "";
|
|
338855
339099
|
showResults.value = false;
|
|
338856
339100
|
selectedIndex.value = -1;
|
|
339101
|
+
searchErrorMessage.value = "";
|
|
339102
|
+
searchErrorCode.value = "";
|
|
338857
339103
|
emit("clear");
|
|
338858
339104
|
};
|
|
338859
339105
|
onMounted(() => {
|
|
@@ -338871,6 +339117,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338871
339117
|
(newConfig) => {
|
|
338872
339118
|
searchService2.updateConfig(newConfig);
|
|
338873
339119
|
searchResults.value = [];
|
|
339120
|
+
searchErrorMessage.value = "";
|
|
339121
|
+
searchErrorCode.value = "";
|
|
338874
339122
|
selectedIndex.value = -1;
|
|
338875
339123
|
console.log("MapSearch配置已更新:", newConfig);
|
|
338876
339124
|
},
|
|
@@ -338965,15 +339213,15 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338965
339213
|
showHistory.value && searchHistory.value.length > 0 && !searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_3$j, [
|
|
338966
339214
|
renderSlot(_ctx.$slots, "history-title", { clearHistory }, () => [
|
|
338967
339215
|
createElementVNode("div", _hoisted_4$h, [
|
|
338968
|
-
|
|
339216
|
+
createElementVNode("span", null, toDisplayString(historyTitleText.value), 1),
|
|
338969
339217
|
createVNode$1(unref(ElButton), {
|
|
338970
339218
|
link: "",
|
|
338971
339219
|
size: "small",
|
|
338972
339220
|
onClick: clearHistory
|
|
338973
339221
|
}, {
|
|
338974
|
-
default: withCtx(() => [
|
|
338975
|
-
createTextVNode(
|
|
338976
|
-
])
|
|
339222
|
+
default: withCtx(() => [
|
|
339223
|
+
createTextVNode(toDisplayString(clearHistoryText.value), 1)
|
|
339224
|
+
]),
|
|
338977
339225
|
_: 1
|
|
338978
339226
|
})
|
|
338979
339227
|
])
|
|
@@ -338998,20 +339246,20 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
338998
339246
|
}),
|
|
338999
339247
|
createElementVNode("div", _hoisted_6$b, [
|
|
339000
339248
|
createElementVNode("div", _hoisted_7$a, toDisplayString(item.name), 1),
|
|
339001
|
-
createElementVNode("div", _hoisted_8$
|
|
339249
|
+
createElementVNode("div", _hoisted_8$a, toDisplayString(item.address), 1)
|
|
339002
339250
|
])
|
|
339003
339251
|
], 10, _hoisted_5$f)
|
|
339004
339252
|
]);
|
|
339005
339253
|
}), 128))
|
|
339006
339254
|
])) : createCommentVNode("", true),
|
|
339007
|
-
searchResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9$
|
|
339255
|
+
searchResults.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_9$a, [
|
|
339008
339256
|
renderSlot(_ctx.$slots, "results-title", {
|
|
339009
339257
|
searchQuery: searchQuery.value,
|
|
339010
339258
|
resultsCount: searchResults.value.length
|
|
339011
339259
|
}, () => [
|
|
339012
|
-
searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_10$
|
|
339013
|
-
|
|
339014
|
-
createElementVNode("span", _hoisted_11$
|
|
339260
|
+
searchQuery.value ? (openBlock(), createElementBlock("div", _hoisted_10$a, [
|
|
339261
|
+
createElementVNode("span", null, toDisplayString(resultsTitleText.value), 1),
|
|
339262
|
+
createElementVNode("span", _hoisted_11$8, "(" + toDisplayString(searchResults.value.length) + ")", 1)
|
|
339015
339263
|
])) : createCommentVNode("", true)
|
|
339016
339264
|
]),
|
|
339017
339265
|
(openBlock(true), createElementBlock(Fragment, null, renderList(displayResults.value, (result, index2) => {
|
|
@@ -339036,7 +339284,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
339036
339284
|
]),
|
|
339037
339285
|
_: 1
|
|
339038
339286
|
}),
|
|
339039
|
-
createElementVNode("div", _hoisted_13$
|
|
339287
|
+
createElementVNode("div", _hoisted_13$6, [
|
|
339040
339288
|
createElementVNode("div", {
|
|
339041
339289
|
class: "item-name",
|
|
339042
339290
|
innerHTML: highlightText(result.name, searchQuery.value)
|
|
@@ -339048,23 +339296,39 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
339048
339296
|
result.type ? (openBlock(), createElementBlock("div", _hoisted_16$2, toDisplayString(result.type), 1)) : createCommentVNode("", true)
|
|
339049
339297
|
]),
|
|
339050
339298
|
result.confidence ? (openBlock(), createElementBlock("div", _hoisted_17$2, toDisplayString(Math.round(result.confidence * 100)) + "% ", 1)) : createCommentVNode("", true)
|
|
339051
|
-
], 10, _hoisted_12$
|
|
339299
|
+
], 10, _hoisted_12$6)
|
|
339052
339300
|
]);
|
|
339053
339301
|
}), 128))
|
|
339054
339302
|
])) : createCommentVNode("", true),
|
|
339303
|
+
renderSlot(_ctx.$slots, "search-error", {
|
|
339304
|
+
searchQuery: searchQuery.value,
|
|
339305
|
+
errorMessage: searchErrorMessage.value,
|
|
339306
|
+
errorCode: searchErrorCode.value,
|
|
339307
|
+
isLoading: isLoading.value
|
|
339308
|
+
}, () => [
|
|
339309
|
+
searchErrorMessage.value && !isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_18$2, [
|
|
339310
|
+
createVNode$1(unref(ElIcon), null, {
|
|
339311
|
+
default: withCtx(() => [
|
|
339312
|
+
createVNode$1(unref(InfoFilled))
|
|
339313
|
+
]),
|
|
339314
|
+
_: 1
|
|
339315
|
+
}),
|
|
339316
|
+
createElementVNode("span", null, toDisplayString(searchErrorMessage.value), 1)
|
|
339317
|
+
])) : createCommentVNode("", true)
|
|
339318
|
+
]),
|
|
339055
339319
|
renderSlot(_ctx.$slots, "no-results", {
|
|
339056
339320
|
searchQuery: searchQuery.value,
|
|
339057
339321
|
searchResults: searchResults.value,
|
|
339058
339322
|
isLoading: isLoading.value
|
|
339059
339323
|
}, () => [
|
|
339060
|
-
searchQuery.value && searchResults.value.length === 0 && !isLoading.value ? (openBlock(), createElementBlock("div",
|
|
339324
|
+
searchQuery.value && searchResults.value.length === 0 && !isLoading.value && !searchErrorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_19$2, [
|
|
339061
339325
|
createVNode$1(unref(ElIcon), null, {
|
|
339062
339326
|
default: withCtx(() => [
|
|
339063
339327
|
createVNode$1(unref(InfoFilled))
|
|
339064
339328
|
]),
|
|
339065
339329
|
_: 1
|
|
339066
339330
|
}),
|
|
339067
|
-
|
|
339331
|
+
createElementVNode("span", null, toDisplayString(noResultsText.value), 1)
|
|
339068
339332
|
])) : createCommentVNode("", true)
|
|
339069
339333
|
])
|
|
339070
339334
|
])
|
|
@@ -339208,6 +339472,24 @@ const _hoisted_7$9 = {
|
|
|
339208
339472
|
key: 6,
|
|
339209
339473
|
class: "control-section"
|
|
339210
339474
|
};
|
|
339475
|
+
const _hoisted_8$9 = { class: "drawing-menu-panel-content" };
|
|
339476
|
+
const _hoisted_9$9 = { class: "drawing-tool-list" };
|
|
339477
|
+
const _hoisted_10$9 = {
|
|
339478
|
+
key: 0,
|
|
339479
|
+
class: "drawing-menu-divider"
|
|
339480
|
+
};
|
|
339481
|
+
const _hoisted_11$7 = {
|
|
339482
|
+
key: 1,
|
|
339483
|
+
class: "drawing-toggle-row"
|
|
339484
|
+
};
|
|
339485
|
+
const _hoisted_12$5 = {
|
|
339486
|
+
key: 7,
|
|
339487
|
+
class: "control-divider"
|
|
339488
|
+
};
|
|
339489
|
+
const _hoisted_13$5 = {
|
|
339490
|
+
key: 8,
|
|
339491
|
+
class: "control-section"
|
|
339492
|
+
};
|
|
339211
339493
|
const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
339212
339494
|
__name: "OlControlPanel",
|
|
339213
339495
|
props: {
|
|
@@ -339220,8 +339502,10 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339220
339502
|
bottomOffset: {},
|
|
339221
339503
|
viewBookmarks: {}
|
|
339222
339504
|
},
|
|
339223
|
-
|
|
339505
|
+
emits: ["drawing-complete"],
|
|
339506
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
339224
339507
|
const props = __props;
|
|
339508
|
+
const emit = __emit;
|
|
339225
339509
|
const map2 = inject("map");
|
|
339226
339510
|
const mapManager = inject("mapManager");
|
|
339227
339511
|
const overviewMapUtil = createOverviewMapUtil();
|
|
@@ -339231,7 +339515,37 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339231
339515
|
const currentZoom = ref(10);
|
|
339232
339516
|
const minZoom = ref(3);
|
|
339233
339517
|
const maxZoom = ref(18);
|
|
339518
|
+
const isDrawingMenuOpen = ref(false);
|
|
339519
|
+
const continuousDrawing = ref(false);
|
|
339520
|
+
const activeDrawingMode = ref("none");
|
|
339521
|
+
const DEFAULT_DRAWING_TOOLS = [
|
|
339522
|
+
"rectangle",
|
|
339523
|
+
"polygon",
|
|
339524
|
+
"circle",
|
|
339525
|
+
"line",
|
|
339526
|
+
"point"
|
|
339527
|
+
];
|
|
339528
|
+
const drawingToolLabels = {
|
|
339529
|
+
point: "绘制点",
|
|
339530
|
+
line: "绘制线",
|
|
339531
|
+
polygon: "绘制多边形",
|
|
339532
|
+
circle: "绘制圆形",
|
|
339533
|
+
rectangle: "绘制矩形"
|
|
339534
|
+
};
|
|
339535
|
+
const geoJsonFormat = new GeoJSON$2();
|
|
339536
|
+
let boundDrawingManager = null;
|
|
339537
|
+
let boundDrawingEndHandler = null;
|
|
339538
|
+
let boundModeChangeHandler = null;
|
|
339234
339539
|
const currentMap = computed(() => map2 == null ? void 0 : map2.value);
|
|
339540
|
+
const popoverPlacement = computed(() => {
|
|
339541
|
+
const isRight = props.position.includes("right");
|
|
339542
|
+
const isBottom = props.position.includes("bottom");
|
|
339543
|
+
if (props.direction === "vertical") {
|
|
339544
|
+
return isRight ? "left" : "right";
|
|
339545
|
+
} else {
|
|
339546
|
+
return isBottom ? "top" : "bottom";
|
|
339547
|
+
}
|
|
339548
|
+
});
|
|
339235
339549
|
const positionClasses = computed(() => {
|
|
339236
339550
|
const basePositions = {
|
|
339237
339551
|
"top-left": "top-4 left-4",
|
|
@@ -339315,10 +339629,55 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339315
339629
|
const tools = props.config.tools;
|
|
339316
339630
|
return !!((tools == null ? void 0 : tools.viewBookmarks) || props.config.viewBookmarks);
|
|
339317
339631
|
});
|
|
339632
|
+
const drawingControlConfig = computed(() => {
|
|
339633
|
+
var _a2;
|
|
339634
|
+
const rawConfig = ((_a2 = props.config.tools) == null ? void 0 : _a2.drawing) ?? props.config.drawing;
|
|
339635
|
+
if (rawConfig === false) {
|
|
339636
|
+
return {
|
|
339637
|
+
enabled: false,
|
|
339638
|
+
trigger: "hover",
|
|
339639
|
+
continuous: false,
|
|
339640
|
+
showContinuousToggle: true,
|
|
339641
|
+
tools: DEFAULT_DRAWING_TOOLS,
|
|
339642
|
+
onDrawEnd: void 0
|
|
339643
|
+
};
|
|
339644
|
+
}
|
|
339645
|
+
if (rawConfig === true || rawConfig === void 0) {
|
|
339646
|
+
return {
|
|
339647
|
+
enabled: rawConfig === true,
|
|
339648
|
+
trigger: "hover",
|
|
339649
|
+
continuous: false,
|
|
339650
|
+
showContinuousToggle: true,
|
|
339651
|
+
tools: DEFAULT_DRAWING_TOOLS,
|
|
339652
|
+
onDrawEnd: void 0
|
|
339653
|
+
};
|
|
339654
|
+
}
|
|
339655
|
+
const config = rawConfig;
|
|
339656
|
+
const tools = (config.tools || DEFAULT_DRAWING_TOOLS).filter(
|
|
339657
|
+
(tool) => DEFAULT_DRAWING_TOOLS.includes(tool)
|
|
339658
|
+
);
|
|
339659
|
+
return {
|
|
339660
|
+
enabled: config.enabled !== false,
|
|
339661
|
+
trigger: config.trigger || "hover",
|
|
339662
|
+
continuous: config.continuous ?? false,
|
|
339663
|
+
showContinuousToggle: config.showContinuousToggle !== false,
|
|
339664
|
+
tools: tools.length > 0 ? Array.from(new Set(tools)) : DEFAULT_DRAWING_TOOLS,
|
|
339665
|
+
onDrawEnd: config.onDrawEnd
|
|
339666
|
+
};
|
|
339667
|
+
});
|
|
339668
|
+
const isDrawingEnabled = computed(() => drawingControlConfig.value.enabled);
|
|
339669
|
+
const isDrawingActive = computed(() => activeDrawingMode.value !== "none");
|
|
339318
339670
|
const hasOtherTools = computed(() => {
|
|
339319
339671
|
const tools = props.config.tools;
|
|
339320
339672
|
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);
|
|
339321
339673
|
});
|
|
339674
|
+
watch(
|
|
339675
|
+
drawingControlConfig,
|
|
339676
|
+
(config) => {
|
|
339677
|
+
continuousDrawing.value = config.continuous;
|
|
339678
|
+
},
|
|
339679
|
+
{ immediate: true }
|
|
339680
|
+
);
|
|
339322
339681
|
const initOverviewMap = () => {
|
|
339323
339682
|
const tools = props.config.tools || {};
|
|
339324
339683
|
const rawConfig = tools.overviewMap ?? props.config.overviewMap;
|
|
@@ -339488,6 +339847,83 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339488
339847
|
mapManager.value.clearAll();
|
|
339489
339848
|
}
|
|
339490
339849
|
};
|
|
339850
|
+
const buildDrawingResult = (drawing) => {
|
|
339851
|
+
const drawingJson = drawing.toJSON();
|
|
339852
|
+
const feature = drawing.getFeature();
|
|
339853
|
+
let geojson = null;
|
|
339854
|
+
if (feature && currentMap.value) {
|
|
339855
|
+
try {
|
|
339856
|
+
geojson = geoJsonFormat.writeFeatureObject(feature, {
|
|
339857
|
+
featureProjection: currentMap.value.getView().getProjection(),
|
|
339858
|
+
dataProjection: "EPSG:4326"
|
|
339859
|
+
});
|
|
339860
|
+
} catch (error2) {
|
|
339861
|
+
console.warn("绘制结果转 GeoJSON 失败:", error2);
|
|
339862
|
+
}
|
|
339863
|
+
}
|
|
339864
|
+
return {
|
|
339865
|
+
id: drawing.getId(),
|
|
339866
|
+
type: drawing.getType(),
|
|
339867
|
+
name: drawing.getName(),
|
|
339868
|
+
coordinates: drawingJson.coordinates,
|
|
339869
|
+
properties: drawingJson.properties || {},
|
|
339870
|
+
style: drawingJson.style || {},
|
|
339871
|
+
config: drawingJson.config || {},
|
|
339872
|
+
geojson,
|
|
339873
|
+
drawing,
|
|
339874
|
+
feature,
|
|
339875
|
+
source: "controls"
|
|
339876
|
+
};
|
|
339877
|
+
};
|
|
339878
|
+
const cleanupDrawingListeners = () => {
|
|
339879
|
+
if (boundDrawingManager && boundDrawingEndHandler && boundModeChangeHandler) {
|
|
339880
|
+
boundDrawingManager.off("drawing-end", boundDrawingEndHandler);
|
|
339881
|
+
boundDrawingManager.off("mode-change", boundModeChangeHandler);
|
|
339882
|
+
}
|
|
339883
|
+
boundDrawingManager = null;
|
|
339884
|
+
boundDrawingEndHandler = null;
|
|
339885
|
+
boundModeChangeHandler = null;
|
|
339886
|
+
activeDrawingMode.value = "none";
|
|
339887
|
+
};
|
|
339888
|
+
const bindDrawingListeners = (drawingManager) => {
|
|
339889
|
+
cleanupDrawingListeners();
|
|
339890
|
+
if (!drawingManager)
|
|
339891
|
+
return;
|
|
339892
|
+
boundDrawingManager = drawingManager;
|
|
339893
|
+
activeDrawingMode.value = drawingManager.getMode();
|
|
339894
|
+
boundDrawingEndHandler = (drawing) => {
|
|
339895
|
+
var _a2, _b2;
|
|
339896
|
+
const result = buildDrawingResult(drawing);
|
|
339897
|
+
(_b2 = (_a2 = drawingControlConfig.value).onDrawEnd) == null ? void 0 : _b2.call(_a2, result);
|
|
339898
|
+
emit("drawing-complete", result);
|
|
339899
|
+
};
|
|
339900
|
+
boundModeChangeHandler = (mode) => {
|
|
339901
|
+
activeDrawingMode.value = mode;
|
|
339902
|
+
};
|
|
339903
|
+
drawingManager.on("drawing-end", boundDrawingEndHandler);
|
|
339904
|
+
drawingManager.on("mode-change", boundModeChangeHandler);
|
|
339905
|
+
};
|
|
339906
|
+
const startQuickDrawing = (tool) => {
|
|
339907
|
+
var _a2;
|
|
339908
|
+
const drawingManager = (_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager();
|
|
339909
|
+
if (!drawingManager) {
|
|
339910
|
+
console.warn("DrawingManager not found");
|
|
339911
|
+
return;
|
|
339912
|
+
}
|
|
339913
|
+
drawingManager.setContinuousDrawing(continuousDrawing.value);
|
|
339914
|
+
drawingManager.setMode(tool, {
|
|
339915
|
+
allowContinuousDrawing: continuousDrawing.value
|
|
339916
|
+
});
|
|
339917
|
+
isDrawingMenuOpen.value = false;
|
|
339918
|
+
};
|
|
339919
|
+
const stopQuickDrawing = () => {
|
|
339920
|
+
var _a2;
|
|
339921
|
+
const drawingManager = (_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager();
|
|
339922
|
+
if (!drawingManager)
|
|
339923
|
+
return;
|
|
339924
|
+
drawingManager.setMode("none");
|
|
339925
|
+
isDrawingMenuOpen.value = false;
|
|
339926
|
+
};
|
|
339491
339927
|
const zoomToExtent = () => {
|
|
339492
339928
|
var _a2;
|
|
339493
339929
|
if (currentMap.value) {
|
|
@@ -339531,6 +339967,16 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339531
339967
|
},
|
|
339532
339968
|
{ immediate: true }
|
|
339533
339969
|
);
|
|
339970
|
+
watch(
|
|
339971
|
+
() => {
|
|
339972
|
+
var _a2;
|
|
339973
|
+
return ((_a2 = mapManager == null ? void 0 : mapManager.value) == null ? void 0 : _a2.getDrawingManager()) || null;
|
|
339974
|
+
},
|
|
339975
|
+
(drawingManager) => {
|
|
339976
|
+
bindDrawingListeners(drawingManager);
|
|
339977
|
+
},
|
|
339978
|
+
{ immediate: true }
|
|
339979
|
+
);
|
|
339534
339980
|
const handleFullscreenChange = () => {
|
|
339535
339981
|
isFullscreen.value = !!document.fullscreenElement;
|
|
339536
339982
|
};
|
|
@@ -339542,6 +339988,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339542
339988
|
var _a2;
|
|
339543
339989
|
document.removeEventListener("fullscreenchange", handleFullscreenChange);
|
|
339544
339990
|
overviewMapUtil.destroy();
|
|
339991
|
+
cleanupDrawingListeners();
|
|
339545
339992
|
if (currentMap.value) {
|
|
339546
339993
|
currentMap.value.un("moveend", updateScale);
|
|
339547
339994
|
(_a2 = currentMap.value.getTargetElement()) == null ? void 0 : _a2.removeEventListener("mousemove", updateMousePosition);
|
|
@@ -339572,7 +340019,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339572
340019
|
isMinZoom
|
|
339573
340020
|
});
|
|
339574
340021
|
return (_ctx, _cache) => {
|
|
339575
|
-
var _a2, _b2, _c2, _d, _e2, _f, _g, _h, _i2, _j, _k, _l, _m, _n2, _o2, _p;
|
|
340022
|
+
var _a2, _b2, _c2, _d, _e2, _f, _g, _h, _i2, _j, _k, _l, _m, _n2, _o2, _p, _q, _r2;
|
|
339576
340023
|
const _component_el_slider = resolveComponent("el-slider");
|
|
339577
340024
|
return openBlock(), createElementBlock("div", {
|
|
339578
340025
|
class: normalizeClass(["mapcontrols absolute z-1 pointer-events-none select-none animate-fade-in", positionClasses.value]),
|
|
@@ -339811,8 +340258,119 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339811
340258
|
_: 1
|
|
339812
340259
|
}, 8, ["title"])) : createCommentVNode("", true)
|
|
339813
340260
|
])) : createCommentVNode("", true),
|
|
339814
|
-
|
|
339815
|
-
|
|
340261
|
+
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) ? (openBlock(), createElementBlock("div", _hoisted_6$a)) : createCommentVNode("", true),
|
|
340262
|
+
isDrawingEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_7$9, [
|
|
340263
|
+
createVNode$1(unref(ElPopover), {
|
|
340264
|
+
placement: popoverPlacement.value,
|
|
340265
|
+
trigger: drawingControlConfig.value.trigger === "hover" ? "hover" : "click",
|
|
340266
|
+
visible: isDrawingMenuOpen.value,
|
|
340267
|
+
"onUpdate:visible": _cache[2] || (_cache[2] = ($event) => isDrawingMenuOpen.value = $event),
|
|
340268
|
+
width: 180,
|
|
340269
|
+
"popper-class": "drawing-menu-popover",
|
|
340270
|
+
disabled: !isDrawingEnabled.value
|
|
340271
|
+
}, {
|
|
340272
|
+
reference: withCtx(() => [
|
|
340273
|
+
createVNode$1(unref(ElButton), {
|
|
340274
|
+
class: normalizeClass(["control-btn", { "is-active": isDrawingMenuOpen.value || isDrawingActive.value }]),
|
|
340275
|
+
title: "快捷绘制",
|
|
340276
|
+
size: "small",
|
|
340277
|
+
text: ""
|
|
340278
|
+
}, {
|
|
340279
|
+
default: withCtx(() => [
|
|
340280
|
+
createVNode$1(unref(ElIcon), null, {
|
|
340281
|
+
default: withCtx(() => [
|
|
340282
|
+
createVNode$1(unref(EditPen))
|
|
340283
|
+
]),
|
|
340284
|
+
_: 1
|
|
340285
|
+
})
|
|
340286
|
+
]),
|
|
340287
|
+
_: 1
|
|
340288
|
+
}, 8, ["class"])
|
|
340289
|
+
]),
|
|
340290
|
+
default: withCtx(() => [
|
|
340291
|
+
createElementVNode("div", _hoisted_8$9, [
|
|
340292
|
+
_cache[5] || (_cache[5] = createElementVNode("div", { class: "drawing-menu-title" }, "快捷绘制", -1)),
|
|
340293
|
+
createElementVNode("div", _hoisted_9$9, [
|
|
340294
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(drawingControlConfig.value.tools, (tool) => {
|
|
340295
|
+
return openBlock(), createBlock(unref(ElTooltip), {
|
|
340296
|
+
key: tool,
|
|
340297
|
+
content: drawingToolLabels[tool],
|
|
340298
|
+
placement: "top",
|
|
340299
|
+
"show-after": 200
|
|
340300
|
+
}, {
|
|
340301
|
+
default: withCtx(() => [
|
|
340302
|
+
createVNode$1(unref(ElButton), {
|
|
340303
|
+
size: "small",
|
|
340304
|
+
text: "",
|
|
340305
|
+
class: normalizeClass(["drawing-tool-btn", { "is-active": activeDrawingMode.value === tool }]),
|
|
340306
|
+
onClick: ($event) => startQuickDrawing(tool)
|
|
340307
|
+
}, {
|
|
340308
|
+
default: withCtx(() => [
|
|
340309
|
+
tool === "point" ? (openBlock(), createBlock(unref(ElIcon), { key: 0 }, {
|
|
340310
|
+
default: withCtx(() => [
|
|
340311
|
+
createVNode$1(unref(Location))
|
|
340312
|
+
]),
|
|
340313
|
+
_: 1
|
|
340314
|
+
})) : tool === "line" ? (openBlock(), createBlock(unref(ElIcon), { key: 1 }, {
|
|
340315
|
+
default: withCtx(() => [
|
|
340316
|
+
createVNode$1(unref(Minus))
|
|
340317
|
+
]),
|
|
340318
|
+
_: 1
|
|
340319
|
+
})) : tool === "polygon" ? (openBlock(), createBlock(unref(ElIcon), { key: 2 }, {
|
|
340320
|
+
default: withCtx(() => [
|
|
340321
|
+
createVNode$1(unref(Share))
|
|
340322
|
+
]),
|
|
340323
|
+
_: 1
|
|
340324
|
+
})) : tool === "circle" ? (openBlock(), createBlock(unref(ElIcon), { key: 3 }, {
|
|
340325
|
+
default: withCtx(() => [
|
|
340326
|
+
createVNode$1(unref(CircleCheck))
|
|
340327
|
+
]),
|
|
340328
|
+
_: 1
|
|
340329
|
+
})) : tool === "rectangle" ? (openBlock(), createBlock(unref(ElIcon), { key: 4 }, {
|
|
340330
|
+
default: withCtx(() => [
|
|
340331
|
+
createVNode$1(unref(FullScreen))
|
|
340332
|
+
]),
|
|
340333
|
+
_: 1
|
|
340334
|
+
})) : createCommentVNode("", true)
|
|
340335
|
+
]),
|
|
340336
|
+
_: 2
|
|
340337
|
+
}, 1032, ["class", "onClick"])
|
|
340338
|
+
]),
|
|
340339
|
+
_: 2
|
|
340340
|
+
}, 1032, ["content"]);
|
|
340341
|
+
}), 128))
|
|
340342
|
+
]),
|
|
340343
|
+
drawingControlConfig.value.showContinuousToggle || isDrawingActive.value ? (openBlock(), createElementBlock("div", _hoisted_10$9)) : createCommentVNode("", true),
|
|
340344
|
+
drawingControlConfig.value.showContinuousToggle ? (openBlock(), createElementBlock("div", _hoisted_11$7, [
|
|
340345
|
+
createVNode$1(unref(ElCheckbox), {
|
|
340346
|
+
modelValue: continuousDrawing.value,
|
|
340347
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => continuousDrawing.value = $event)
|
|
340348
|
+
}, {
|
|
340349
|
+
default: withCtx(() => [..._cache[3] || (_cache[3] = [
|
|
340350
|
+
createTextVNode(" 是否连续绘制 ", -1)
|
|
340351
|
+
])]),
|
|
340352
|
+
_: 1
|
|
340353
|
+
}, 8, ["modelValue"])
|
|
340354
|
+
])) : createCommentVNode("", true),
|
|
340355
|
+
isDrawingActive.value ? (openBlock(), createBlock(unref(ElButton), {
|
|
340356
|
+
key: 2,
|
|
340357
|
+
size: "small",
|
|
340358
|
+
text: "",
|
|
340359
|
+
class: "drawing-stop-btn",
|
|
340360
|
+
onClick: stopQuickDrawing
|
|
340361
|
+
}, {
|
|
340362
|
+
default: withCtx(() => [..._cache[4] || (_cache[4] = [
|
|
340363
|
+
createTextVNode(" 停止绘制 ", -1)
|
|
340364
|
+
])]),
|
|
340365
|
+
_: 1
|
|
340366
|
+
})) : createCommentVNode("", true)
|
|
340367
|
+
])
|
|
340368
|
+
]),
|
|
340369
|
+
_: 1
|
|
340370
|
+
}, 8, ["placement", "trigger", "visible", "disabled"])
|
|
340371
|
+
])) : createCommentVNode("", true),
|
|
340372
|
+
(((_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) ? (openBlock(), createElementBlock("div", _hoisted_12$5)) : createCommentVNode("", true),
|
|
340373
|
+
((_r2 = _ctx.config.tools) == null ? void 0 : _r2.clearAll) || _ctx.config.clearAll ? (openBlock(), createElementBlock("div", _hoisted_13$5, [
|
|
339816
340374
|
createVNode$1(unref(ElButton), {
|
|
339817
340375
|
class: "control-btn",
|
|
339818
340376
|
title: "清空绘制内容",
|
|
@@ -339836,7 +340394,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
|
|
|
339836
340394
|
};
|
|
339837
340395
|
}
|
|
339838
340396
|
});
|
|
339839
|
-
const OlControlPanel = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-
|
|
340397
|
+
const OlControlPanel = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-13e7a909"]]);
|
|
339840
340398
|
const _hoisted_1$i = {
|
|
339841
340399
|
key: 0,
|
|
339842
340400
|
class: "ol-legend-header"
|
|
@@ -352437,7 +352995,7 @@ function(t3) {
|
|
|
352437
352995
|
*/
|
|
352438
352996
|
function(t3) {
|
|
352439
352997
|
function e8() {
|
|
352440
|
-
return (n.canvg ? Promise.resolve(n.canvg) : import("./index.es-
|
|
352998
|
+
return (n.canvg ? Promise.resolve(n.canvg) : import("./index.es-ff0f4147.mjs")).catch(function(t4) {
|
|
352441
352999
|
return Promise.reject(new Error("Could not load canvg: " + t4));
|
|
352442
353000
|
}).then(function(t4) {
|
|
352443
353001
|
return t4.default ? t4.default : t4;
|
|
@@ -365126,7 +365684,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
365126
365684
|
popupConfig: {},
|
|
365127
365685
|
enableGeolocation: { type: Boolean, default: true }
|
|
365128
365686
|
},
|
|
365129
|
-
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"],
|
|
365687
|
+
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"],
|
|
365130
365688
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
365131
365689
|
const currentLegends = ref([]);
|
|
365132
365690
|
const currentLayers = ref([]);
|
|
@@ -365988,6 +366546,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
365988
366546
|
break;
|
|
365989
366547
|
}
|
|
365990
366548
|
};
|
|
366549
|
+
const onDrawingComplete = (result) => {
|
|
366550
|
+
emit("drawing-complete", result);
|
|
366551
|
+
};
|
|
365991
366552
|
const onPrintAction = (data) => {
|
|
365992
366553
|
console.log("打印操作:", data);
|
|
365993
366554
|
switch (data.action) {
|
|
@@ -366674,7 +367235,8 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
366674
367235
|
"right-offset": finalControlsConfig.value.rightOffset,
|
|
366675
367236
|
"top-offset": finalControlsConfig.value.topOffset,
|
|
366676
367237
|
"bottom-offset": finalControlsConfig.value.bottomOffset,
|
|
366677
|
-
"view-bookmarks": props.viewBookmarks
|
|
367238
|
+
"view-bookmarks": props.viewBookmarks,
|
|
367239
|
+
onDrawingComplete
|
|
366678
367240
|
}, {
|
|
366679
367241
|
custom: withCtx(({ controls }) => [
|
|
366680
367242
|
renderSlot(_ctx.$slots, "controls", {
|
|
@@ -366811,7 +367373,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
366811
367373
|
};
|
|
366812
367374
|
}
|
|
366813
367375
|
});
|
|
366814
|
-
const OlMap = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-
|
|
367376
|
+
const OlMap = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-847d5f65"]]);
|
|
366815
367377
|
const Property = {
|
|
366816
367378
|
ACCURACY: "accuracy",
|
|
366817
367379
|
ACCURACY_GEOMETRY: "accuracyGeometry",
|