vue-openlayers-plugin 1.1.16 → 1.2.0
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-d6e4ea88.mjs} +1 -1
- package/lib/{CoordinateLocationDialog-c2d89c1e.mjs → CoordinateLocationDialog-81d00abc.mjs} +1 -1
- package/lib/{MapPrintDialog-eea9e39e.mjs → FilterPanel-7358e3fb.mjs} +1 -1
- package/lib/{FilterPanel-d7cb1c79.mjs → LayerPanel-9bf28955.mjs} +1 -1
- package/lib/{LayerPanel-f411a32b.mjs → MapPrintDialog-64d46412.mjs} +1 -1
- package/lib/{MeasurementDialog-9914f4e9.mjs → MeasurementDialog-4e084192.mjs} +1 -1
- package/lib/{MyMarkersDialog-ef717e8c.mjs → MyMarkersDialog-aa44e5bd.mjs} +1 -1
- package/lib/{QuadCompareDialog-3d6eaf0c.mjs → QuadCompareDialog-84a88cf9.mjs} +1 -1
- package/lib/{RegionNavigationDialog-2843eedd.mjs → RegionNavigationDialog-467ad6c0.mjs} +1 -1
- package/lib/{SplitCompareDialog-1e678e69.mjs → SplitCompareDialog-50410c0b.mjs} +1 -1
- package/lib/{SwipeCompareDialog-547de7ee.mjs → SwipeCompareDialog-c322e2f6.mjs} +1 -1
- package/lib/{ViewBookmarksDialog-d3e38c53.mjs → ViewBookmarksDialog-83cf5ec4.mjs} +1 -1
- package/lib/{index-198a96d2.mjs → index-58704a25.mjs} +296 -30
- package/lib/{index-92020358.mjs → index-ee58f2f8.mjs} +1 -1
- package/lib/{index.es-dd926512.mjs → index.es-320e524d.mjs} +1 -1
- package/lib/index.esm.js +1 -1
- package/lib/index.umd.js +282 -16
- package/lib/style.css +13 -4
- package/package.json +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/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 +24 -0
- package/types/types/map.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -131,6 +131,194 @@ const onFeatureSelected = (feature: any) => {
|
|
|
131
131
|
</style>
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
+
### 视角书签使用
|
|
135
|
+
|
|
136
|
+
视角书签的数据由父组件统一管理,通过 `viewBookmarks` 传给地图组件。地图组件内部只负责展示、应用视角和触发事件,不直接请求后端接口。
|
|
137
|
+
|
|
138
|
+
推荐接入方式:
|
|
139
|
+
|
|
140
|
+
- 父组件初始化时调用查询接口,拿到书签列表后传给 `CustomOpenlayer`
|
|
141
|
+
- 用户在地图中新增、编辑、删除、清空、应用书签时,地图组件通过 `bookmark-action` 向外抛出事件
|
|
142
|
+
- 父组件在 `onBookmarkAction` 中根据 `action` 调用新增、更新、删除、清空等接口
|
|
143
|
+
- 接口成功后重新查询书签列表,或本地同步更新后再回传给 `viewBookmarks`
|
|
144
|
+
|
|
145
|
+
```vue
|
|
146
|
+
<template>
|
|
147
|
+
<CustomOpenlayer
|
|
148
|
+
:map-config="mapConfig"
|
|
149
|
+
:view-bookmarks="viewBookmarks"
|
|
150
|
+
@bookmark-action="onBookmarkAction"
|
|
151
|
+
/>
|
|
152
|
+
</template>
|
|
153
|
+
|
|
154
|
+
<script setup lang="ts">
|
|
155
|
+
import { onMounted, ref } from 'vue'
|
|
156
|
+
import { CustomOpenlayer } from 'vue-openlayers-plugin'
|
|
157
|
+
import type { BookmarkAction, MapConfig, ViewBookmark } from 'vue-openlayers-plugin'
|
|
158
|
+
|
|
159
|
+
const viewBookmarks = ref<ViewBookmark[]>([])
|
|
160
|
+
|
|
161
|
+
const mapConfig: MapConfig = {
|
|
162
|
+
center: [116.397428, 39.90923],
|
|
163
|
+
zoom: 10,
|
|
164
|
+
projection: 'EPSG:4326',
|
|
165
|
+
controls: {
|
|
166
|
+
viewBookmarks: true
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const fetchBookmarks = async () => {
|
|
171
|
+
const list = await bookmarkApi.list()
|
|
172
|
+
viewBookmarks.value = list
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const onBookmarkAction = async (event: BookmarkAction) => {
|
|
176
|
+
const { action, bookmark } = event
|
|
177
|
+
|
|
178
|
+
if (action === 'add' && bookmark) {
|
|
179
|
+
await bookmarkApi.create(bookmark)
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (action === 'update' && bookmark) {
|
|
183
|
+
await bookmarkApi.update(bookmark.id, bookmark)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (action === 'delete' && bookmark) {
|
|
187
|
+
await bookmarkApi.remove(bookmark.id)
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (action === 'clear') {
|
|
191
|
+
await bookmarkApi.clear()
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (action === 'apply' && bookmark) {
|
|
195
|
+
console.log('已应用书签视角', bookmark)
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
await fetchBookmarks()
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
onMounted(() => {
|
|
202
|
+
fetchBookmarks()
|
|
203
|
+
})
|
|
204
|
+
|
|
205
|
+
const bookmarkApi = {
|
|
206
|
+
async list(): Promise<ViewBookmark[]> {
|
|
207
|
+
return []
|
|
208
|
+
},
|
|
209
|
+
async create(bookmark: ViewBookmark) {
|
|
210
|
+
return bookmark
|
|
211
|
+
},
|
|
212
|
+
async update(id: string, bookmark: ViewBookmark) {
|
|
213
|
+
return { id, ...bookmark }
|
|
214
|
+
},
|
|
215
|
+
async remove(id: string) {
|
|
216
|
+
return id
|
|
217
|
+
},
|
|
218
|
+
async clear() {
|
|
219
|
+
return true
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
</script>
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### 数据传递说明
|
|
226
|
+
|
|
227
|
+
- `viewBookmarks`:父组件传入的书签数组,作为地图组件的书签数据源
|
|
228
|
+
- `controls.viewBookmarks: true`:开启视角书签按钮,用户点击后会打开“视角书签”面板
|
|
229
|
+
- 地图组件不会自动持久化书签;是否存本地、是否调后端接口,都由父组件决定
|
|
230
|
+
|
|
231
|
+
#### 视角书签数据结构
|
|
232
|
+
|
|
233
|
+
`viewBookmarks` 的元素类型为 `ViewBookmark`,结构如下:
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
interface ViewBookmark {
|
|
237
|
+
id: string
|
|
238
|
+
name: string
|
|
239
|
+
category: string
|
|
240
|
+
description: string
|
|
241
|
+
center: [number, number]
|
|
242
|
+
zoom: number
|
|
243
|
+
rotation: number
|
|
244
|
+
createTime: string | Date
|
|
245
|
+
creator?: string
|
|
246
|
+
thumbnail?: string
|
|
247
|
+
layerStates?: {
|
|
248
|
+
id: string
|
|
249
|
+
visible: boolean
|
|
250
|
+
opacity: number
|
|
251
|
+
title?: string
|
|
252
|
+
}[]
|
|
253
|
+
}
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
字段说明:
|
|
257
|
+
|
|
258
|
+
- `id`:书签唯一标识,通常对应后端主键
|
|
259
|
+
- `name`:书签名称
|
|
260
|
+
- `category`:书签分类,便于筛选和分组
|
|
261
|
+
- `description`:书签描述信息
|
|
262
|
+
- `center`:视角中心点坐标,格式为 `[经度, 纬度]`
|
|
263
|
+
- `zoom`:缩放级别
|
|
264
|
+
- `rotation`:旋转角度,单位为度
|
|
265
|
+
- `createTime`:创建时间,支持字符串或 `Date`
|
|
266
|
+
- `creator`:创建人,可选
|
|
267
|
+
- `thumbnail`:视角缩略图,可选,通常为图片 URL 或 Base64
|
|
268
|
+
- `layerStates`:保存书签时记录的图层状态,可选,用于恢复图层显隐和透明度
|
|
269
|
+
|
|
270
|
+
示例数据:
|
|
271
|
+
|
|
272
|
+
```typescript
|
|
273
|
+
const viewBookmarks: ViewBookmark[] = [
|
|
274
|
+
{
|
|
275
|
+
id: 'bk-1',
|
|
276
|
+
name: '北京中心',
|
|
277
|
+
category: '城市',
|
|
278
|
+
description: '北京中心视角',
|
|
279
|
+
center: [116.407526, 39.90403],
|
|
280
|
+
zoom: 12,
|
|
281
|
+
rotation: 0,
|
|
282
|
+
createTime: '2026-05-05 10:00:00',
|
|
283
|
+
creator: 'admin',
|
|
284
|
+
thumbnail: 'https://example.com/bookmarks/bk-1.jpg',
|
|
285
|
+
layerStates: [
|
|
286
|
+
{
|
|
287
|
+
id: 'osm',
|
|
288
|
+
visible: true,
|
|
289
|
+
opacity: 1,
|
|
290
|
+
title: 'OpenStreetMap'
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
id: 'land_acquisition',
|
|
294
|
+
visible: false,
|
|
295
|
+
opacity: 0.8,
|
|
296
|
+
title: '征地图层'
|
|
297
|
+
}
|
|
298
|
+
]
|
|
299
|
+
}
|
|
300
|
+
]
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
#### 事件说明
|
|
304
|
+
|
|
305
|
+
地图组件会抛出 `bookmark-action` 事件,事件参数类型如下:
|
|
306
|
+
|
|
307
|
+
```typescript
|
|
308
|
+
type BookmarkAction = {
|
|
309
|
+
action: 'add' | 'update' | 'delete' | 'apply' | 'clear'
|
|
310
|
+
bookmark?: ViewBookmark
|
|
311
|
+
}
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
不同 `action` 的含义如下:
|
|
315
|
+
|
|
316
|
+
- `add`:用户保存了一个新书签
|
|
317
|
+
- `update`:用户修改了已有书签
|
|
318
|
+
- `delete`:用户删除了某个书签
|
|
319
|
+
- `clear`:用户清空了全部书签
|
|
320
|
+
- `apply`:用户点击应用书签,地图已切换到对应视角
|
|
321
|
+
|
|
134
322
|
### 移动端使用(MobileMap)
|
|
135
323
|
|
|
136
324
|
`MobileMap` 内置了移动端常用 UI(搜索、图层面板、图例入口等),通过 Props 控制显示:
|
|
@@ -229,6 +417,13 @@ const onMapReady = (map: unknown) => {
|
|
|
229
417
|
| showLayerPanel | `boolean` | `false` | 是否显示图层面板 |
|
|
230
418
|
| showMeasurementTools | `boolean` | `false` | 是否显示测量工具 |
|
|
231
419
|
| showDrawingTools | `boolean` | `false` | 是否显示标绘工具 |
|
|
420
|
+
| viewBookmarks | `ViewBookmark[]` | `[]` | 视角书签列表,由父组件传入 |
|
|
421
|
+
|
|
422
|
+
#### Events
|
|
423
|
+
|
|
424
|
+
| 事件名 | 参数 | 描述 |
|
|
425
|
+
|------|------|------|
|
|
426
|
+
| bookmark-action | `BookmarkAction` | 视角书签新增、编辑、删除、清空、应用时触发 |
|
|
232
427
|
|
|
233
428
|
### CustomDialog
|
|
234
429
|
|
|
@@ -336,6 +531,152 @@ layerManager.addLayer({
|
|
|
336
531
|
})
|
|
337
532
|
```
|
|
338
533
|
|
|
534
|
+
#### GeoJSON 请求图层配置
|
|
535
|
+
|
|
536
|
+
GeoJSON 图层除了支持直接传入 `data`,也支持通过 `geojsonConfig.request` 发起远程请求,适合按行政区、业务类型、时间范围等条件动态加载矢量数据。
|
|
537
|
+
|
|
538
|
+
```typescript
|
|
539
|
+
const mapConfig = {
|
|
540
|
+
center: [121.473, 31.23],
|
|
541
|
+
zoom: 12,
|
|
542
|
+
projection: 'EPSG:4326',
|
|
543
|
+
vectorLayers: [
|
|
544
|
+
{
|
|
545
|
+
id: 'land_acquisition',
|
|
546
|
+
name: '征地',
|
|
547
|
+
type: 'GeoJSON',
|
|
548
|
+
visible: true,
|
|
549
|
+
opacity: 80,
|
|
550
|
+
geojsonLandType: '征地未结案',
|
|
551
|
+
geojsonConfig: {
|
|
552
|
+
request: {
|
|
553
|
+
url: '/zzd/parcel/geojson/by-user-land-type',
|
|
554
|
+
method: 'GET',
|
|
555
|
+
headers: {
|
|
556
|
+
Authorization: 'Bearer <token>',
|
|
557
|
+
'X-Tenant-Id': 'demo'
|
|
558
|
+
},
|
|
559
|
+
params: {
|
|
560
|
+
landType: '征地未结案'
|
|
561
|
+
},
|
|
562
|
+
managementUnitParamName: 'managementUnit',
|
|
563
|
+
landTypeParamName: 'landType',
|
|
564
|
+
dataPath: 'data.features'
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
style: {
|
|
568
|
+
fill: {
|
|
569
|
+
color: 'rgba(255, 0, 0, 0.2)'
|
|
570
|
+
},
|
|
571
|
+
stroke: {
|
|
572
|
+
color: '#FF0000',
|
|
573
|
+
width: 2
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
]
|
|
578
|
+
}
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
#### GeoJSON 请求配置项
|
|
582
|
+
|
|
583
|
+
| 字段 | 类型 | 说明 |
|
|
584
|
+
|------|------|------|
|
|
585
|
+
| `geojsonConfig.data` | `object \| string` | 直接传入 GeoJSON 数据,适合本地静态数据 |
|
|
586
|
+
| `geojsonConfig.request.url` | `string` | 请求地址 |
|
|
587
|
+
| `geojsonConfig.request.method` | `'GET' \| 'POST' \| 'PUT' \| 'DELETE'` | 请求方法,默认 `GET` |
|
|
588
|
+
| `geojsonConfig.request.headers` | `Record<string, string>` | 自定义请求头,比如 `Authorization` |
|
|
589
|
+
| `geojsonConfig.request.params` | `Record<string, any>` | 查询参数,会自动拼接到 URL 上 |
|
|
590
|
+
| `geojsonConfig.request.body` | `Record<string, any> \| string` | 非 `GET` 请求体 |
|
|
591
|
+
| `geojsonConfig.request.dataPath` | `string` | 返回结果中的 GeoJSON 数据路径,例如 `data.features` |
|
|
592
|
+
| `geojsonConfig.request.managementUnit` | `string` | 管理单位值 |
|
|
593
|
+
| `geojsonConfig.request.managementUnitParamName` | `string` | 管理单位参数名,默认 `managementUnit` |
|
|
594
|
+
| `geojsonConfig.request.landType` | `string` | 地类值 |
|
|
595
|
+
| `geojsonConfig.request.landTypeParamName` | `string` | 地类参数名,默认 `landType` |
|
|
596
|
+
| `geojsonConfig.refresh` | `object` | 刷新配置,支持定时刷新、缩放后刷新、移动后刷新 |
|
|
597
|
+
|
|
598
|
+
#### 请求头设置方式
|
|
599
|
+
|
|
600
|
+
最直接的方式是在 `geojsonConfig.request.headers` 中传入:
|
|
601
|
+
|
|
602
|
+
```typescript
|
|
603
|
+
geojsonConfig: {
|
|
604
|
+
request: {
|
|
605
|
+
url: '/api/parcel/geojson',
|
|
606
|
+
method: 'GET',
|
|
607
|
+
headers: {
|
|
608
|
+
Authorization: `Bearer ${token}`,
|
|
609
|
+
'X-Project-Id': 'project-a'
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
如果不希望把 token 写死在配置中,可以使用请求拦截器动态注入:
|
|
616
|
+
|
|
617
|
+
```typescript
|
|
618
|
+
geojsonConfig: {
|
|
619
|
+
request: {
|
|
620
|
+
url: '/api/parcel/geojson',
|
|
621
|
+
method: 'GET',
|
|
622
|
+
requestInterceptor: async (request) => {
|
|
623
|
+
const token = localStorage.getItem('token') || ''
|
|
624
|
+
|
|
625
|
+
return {
|
|
626
|
+
headers: {
|
|
627
|
+
...request.headers,
|
|
628
|
+
Authorization: `Bearer ${token}`
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
```
|
|
635
|
+
|
|
636
|
+
#### 响应转换与数据解析
|
|
637
|
+
|
|
638
|
+
如果后端返回结构不固定,除了 `dataPath` 之外,还可以使用 `responseInterceptor` 或 `responseParser` 做二次处理:
|
|
639
|
+
|
|
640
|
+
```typescript
|
|
641
|
+
geojsonConfig: {
|
|
642
|
+
request: {
|
|
643
|
+
url: '/api/parcel/geojson',
|
|
644
|
+
method: 'GET',
|
|
645
|
+
responseParser: async (response) => {
|
|
646
|
+
return response.result.list
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
#### 运行时刷新 GeoJSON 图层
|
|
653
|
+
|
|
654
|
+
组件实例暴露了 `refreshLayer` 和 `updateLayerRequestParams`,可以在不重建地图的情况下更新请求参数并重新拉取数据:
|
|
655
|
+
|
|
656
|
+
```vue
|
|
657
|
+
<script setup lang="ts">
|
|
658
|
+
import { ref } from 'vue'
|
|
659
|
+
import { CustomOpenlayer } from 'vue-openlayers-plugin'
|
|
660
|
+
|
|
661
|
+
const mapRef = ref<InstanceType<typeof CustomOpenlayer> | null>(null)
|
|
662
|
+
|
|
663
|
+
const updateLandType = async () => {
|
|
664
|
+
mapRef.value?.updateLayerRequestParams('land_acquisition', {
|
|
665
|
+
landType: '征地已结案'
|
|
666
|
+
})
|
|
667
|
+
|
|
668
|
+
await mapRef.value?.refreshLayer('land_acquisition')
|
|
669
|
+
}
|
|
670
|
+
</script>
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
#### 使用建议
|
|
674
|
+
|
|
675
|
+
- 需要鉴权时,优先使用 `headers` 或 `requestInterceptor`
|
|
676
|
+
- 参数频繁变化时,优先使用 `updateLayerRequestParams`
|
|
677
|
+
- 后端返回结构复杂时,优先使用 `dataPath`,不够再使用 `responseParser`
|
|
678
|
+
- 如果鉴权依赖 Cookie,也可以不传 `headers`,由浏览器自动携带
|
|
679
|
+
|
|
339
680
|
### 标绘工具
|
|
340
681
|
|
|
341
682
|
```typescript
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, inject, computed, ref, watch, onMounted, onUnmounted, openBlock, createBlock, unref, withCtx, createElementVNode, createElementBlock, Fragment, renderList, normalizeClass, toDisplayString } from "vue";
|
|
2
|
-
import { r as resolveBasemapThumbnail, l as layerEventBus, X, b as _export_sfc } from "./index-
|
|
2
|
+
import { r as resolveBasemapThumbnail, l as layerEventBus, X, b as _export_sfc } from "./index-58704a25.mjs";
|
|
3
3
|
import "@element-plus/icons-vue";
|
|
4
4
|
import "ol";
|
|
5
5
|
import "proj4";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, inject, computed, ref, reactive, resolveComponent, openBlock, createBlock, unref, withCtx, createElementVNode, createVNode, createTextVNode } from "vue";
|
|
2
2
|
import { Aim } from "@element-plus/icons-vue";
|
|
3
|
-
import { X, T as TooltipHelper, b as _export_sfc } from "./index-
|
|
3
|
+
import { X, T as TooltipHelper, b as _export_sfc } from "./index-58704a25.mjs";
|
|
4
4
|
import "ol";
|
|
5
5
|
import "proj4";
|
|
6
6
|
import "@supermapgis/iclient-ol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, inject, computed, ref, watch, resolveComponent, openBlock, createBlock, unref, withCtx, createElementVNode, createVNode, createTextVNode, toDisplayString, createElementBlock, Fragment, renderList, normalizeClass } from "vue";
|
|
2
|
-
import { X, f as formatMeasurementResult, b as _export_sfc } from "./index-
|
|
2
|
+
import { X, f as formatMeasurementResult, b as _export_sfc } from "./index-58704a25.mjs";
|
|
3
3
|
import "@element-plus/icons-vue";
|
|
4
4
|
import "ol";
|
|
5
5
|
import "proj4";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, inject, computed, ref, reactive, onUnmounted, watch, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, unref, withCtx, createElementVNode, normalizeClass, createTextVNode, toDisplayString, renderList, createBlock, withModifiers, mergeProps } from "vue";
|
|
2
2
|
import { Plus, FolderOpened, Download, Delete, Search, LocationFilled, Edit } from "@element-plus/icons-vue";
|
|
3
3
|
import { ElMessageBox } from "element-plus";
|
|
4
|
-
import { X, M as MarkerDrawingAdapter, h as fromLonLat, t as toLonLat } from "./index-
|
|
4
|
+
import { X, M as MarkerDrawingAdapter, h as fromLonLat, t as toLonLat } from "./index-58704a25.mjs";
|
|
5
5
|
import "ol";
|
|
6
6
|
import "proj4";
|
|
7
7
|
import "@supermapgis/iclient-ol";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, ref, inject, computed, shallowRef, reactive, watch, nextTick, onMounted, onUnmounted, resolveComponent, openBlock, createElementBlock, createVNode, unref, withCtx, createElementVNode, Fragment, renderList, createBlock, createCommentVNode } from "vue";
|
|
2
|
-
import { k as layerFactory, i as getUid, m as defaults, X, n as TileLayer, I as ImageLayer, V as VectorTileLayer, H as HeatmapLayer, o as VectorLayer, L as LayerGroup, b as _export_sfc } from "./index-
|
|
2
|
+
import { k as layerFactory, i as getUid, m as defaults, X, n as TileLayer, I as ImageLayer, V as VectorTileLayer, H as HeatmapLayer, o as VectorLayer, L as LayerGroup, b as _export_sfc } from "./index-58704a25.mjs";
|
|
3
3
|
import { u as useMap } from "./useMap-8e3a2de5.mjs";
|
|
4
4
|
import { View, Map } from "ol";
|
|
5
5
|
import "@element-plus/icons-vue";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, ref, reactive, resolveComponent, openBlock, createBlock, unref, withCtx, createElementVNode, createVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, normalizeClass } from "vue";
|
|
2
|
-
import { X } from "./index-
|
|
2
|
+
import { X } from "./index-58704a25.mjs";
|
|
3
3
|
import "@element-plus/icons-vue";
|
|
4
4
|
import "ol";
|
|
5
5
|
import "proj4";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, ref, inject, computed, shallowRef, watch, nextTick, onMounted, onUnmounted, resolveComponent, openBlock, createElementBlock, createVNode, unref, withCtx, createElementVNode, Fragment, renderList, createBlock, createCommentVNode } from "vue";
|
|
2
|
-
import { k as layerFactory, i as getUid, m as defaults, X, n as TileLayer, I as ImageLayer, V as VectorTileLayer, H as HeatmapLayer, o as VectorLayer, L as LayerGroup, b as _export_sfc } from "./index-
|
|
2
|
+
import { k as layerFactory, i as getUid, m as defaults, X, n as TileLayer, I as ImageLayer, V as VectorTileLayer, H as HeatmapLayer, o as VectorLayer, L as LayerGroup, b as _export_sfc } from "./index-58704a25.mjs";
|
|
3
3
|
import { u as useMap } from "./useMap-8e3a2de5.mjs";
|
|
4
4
|
import { View, Map } from "ol";
|
|
5
5
|
import "@element-plus/icons-vue";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, ref, inject, computed, shallowRef, watch, nextTick, onMounted, onUnmounted, resolveComponent, openBlock, createElementBlock, createVNode, unref, withCtx, createElementVNode, normalizeClass, normalizeStyle, Fragment, renderList, createBlock, createCommentVNode } from "vue";
|
|
2
|
-
import { k as layerFactory, i as getUid, m as defaults, X, n as TileLayer, I as ImageLayer, V as VectorTileLayer, H as HeatmapLayer, o as VectorLayer, L as LayerGroup, b as _export_sfc } from "./index-
|
|
2
|
+
import { k as layerFactory, i as getUid, m as defaults, X, n as TileLayer, I as ImageLayer, V as VectorTileLayer, H as HeatmapLayer, o as VectorLayer, L as LayerGroup, b as _export_sfc } from "./index-58704a25.mjs";
|
|
3
3
|
import { u as useMap } from "./useMap-8e3a2de5.mjs";
|
|
4
4
|
import { View, Map } from "ol";
|
|
5
5
|
import { DCaret } from "@element-plus/icons-vue";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, inject, computed, ref, watch, reactive, resolveComponent, openBlock, createBlock, unref, withCtx, createElementVNode, createVNode, createTextVNode, createElementBlock, Fragment, renderList, withModifiers, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { Plus, Delete, Search, Camera, View, Edit, Location, ZoomIn } from "@element-plus/icons-vue";
|
|
3
3
|
import { ElMessage, ElMessageBox } from "element-plus";
|
|
4
|
-
import { X, t as toLonLat, h as fromLonLat, i as getUid } from "./index-
|
|
4
|
+
import { X, t as toLonLat, h as fromLonLat, i as getUid } from "./index-58704a25.mjs";
|
|
5
5
|
import "ol";
|
|
6
6
|
import "proj4";
|
|
7
7
|
import "@supermapgis/iclient-ol";
|