jgis 1.0.2 → 1.0.4
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 +164 -18
- package/dist/2d/index.d.ts +1 -1
- package/dist/2d/index.js +1 -1
- package/dist/2d/index.mjs +157 -151
- package/dist/2d/interaction.d.ts +2 -2
- package/dist/2d/types.d.ts +9 -8
- package/dist/2d/utils.d.ts +4 -1
- package/dist/3d/core.d.ts +39 -8
- package/dist/3d/index.d.ts +20 -4
- package/dist/3d/index.js +1 -1
- package/dist/3d/index.mjs +321 -78
- package/dist/3d/interaction.d.ts +47 -0
- package/dist/3d/layer.d.ts +71 -0
- package/dist/3d/store.d.ts +16 -0
- package/dist/3d/types.d.ts +68 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +7 -3
- package/dist/utils/index.d.ts +7 -0
- package/package.json +70 -70
- package/dist/2d/index2.d.ts +0 -23
package/README.md
CHANGED
|
@@ -22,6 +22,12 @@
|
|
|
22
22
|
* **Unified Styling**:WMS 图层也能像 Vector 一样拥有动态高亮样式。
|
|
23
23
|
* **🎨 灵活的样式系统**:
|
|
24
24
|
* 支持根据图层、属性动态渲染高亮样式,完全控制权交给用户。
|
|
25
|
+
* **🗺️ 二三维API风格一致**:
|
|
26
|
+
* 二三维API风格一致,方便会一种框架的开发者快速理解和上手开发。
|
|
27
|
+
* **🗺️ 完全兼容openlayers/cesium**:
|
|
28
|
+
* 导出`instance`地图实例,可自己操作原生API。
|
|
29
|
+
* 如果有特殊需求,完全可以自己用原生实现,没有任何违和感。
|
|
30
|
+
|
|
25
31
|
|
|
26
32
|
---
|
|
27
33
|
|
|
@@ -38,6 +44,7 @@ npm install ol
|
|
|
38
44
|
npm install cesium
|
|
39
45
|
```
|
|
40
46
|
|
|
47
|
+
|
|
41
48
|
---
|
|
42
49
|
|
|
43
50
|
## 🗺️ 快速开始 (2D)
|
|
@@ -53,15 +60,26 @@ npm install cesium
|
|
|
53
60
|
<script setup>
|
|
54
61
|
import { onMounted } from 'vue';
|
|
55
62
|
import 'ol/ol.css'; // ⚠️ 别忘了引入 OpenLayers 样式
|
|
56
|
-
import {
|
|
63
|
+
import { useMap } from 'jgis/2d';
|
|
57
64
|
|
|
58
65
|
onMounted(() => {
|
|
59
66
|
// 初始化地图,会自动注册为全局激活实例
|
|
60
|
-
|
|
61
|
-
target: 'map-container',
|
|
67
|
+
const { instance, addMarker, createLayer } = useMap('map-container', {
|
|
62
68
|
center: [116.4, 39.9],
|
|
63
69
|
zoom: 10
|
|
64
70
|
});
|
|
71
|
+
|
|
72
|
+
addMarker('创建点位图层', [{ lon: 104.064839, lat: 30.548857 }], {
|
|
73
|
+
style: new Style({
|
|
74
|
+
image: new CircleStyle({
|
|
75
|
+
radius: 5,
|
|
76
|
+
fill: new Fill({ color: 'blue' })
|
|
77
|
+
})
|
|
78
|
+
})
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
createLayer('创建wms服务图层', { url: 'https://ahocevar.com/geoserver/wms', type: 'Wms', layers: 'topp:states' })
|
|
82
|
+
|
|
65
83
|
});
|
|
66
84
|
</script>
|
|
67
85
|
```
|
|
@@ -71,15 +89,14 @@ onMounted(() => {
|
|
|
71
89
|
JGIS 的核心优势在于**同时处理 Vector 和 WMS 图层**,并提供统一的样式回调。
|
|
72
90
|
|
|
73
91
|
```javascript
|
|
74
|
-
|
|
75
|
-
import { Style, Stroke, Fill } from 'ol/style'; // 或从 jgis 导出
|
|
92
|
+
const { createSelect, createHover } = useMap('map-container');
|
|
76
93
|
|
|
77
94
|
// 假设你有两个图层:一个是本地 Vector,一个是 Geoserver WMS
|
|
78
95
|
const vectorLayer = ...;
|
|
79
96
|
const wmsLayer = ...;
|
|
80
97
|
|
|
81
98
|
// 开启选择交互 (无需传入 map 实例)
|
|
82
|
-
const select =
|
|
99
|
+
const select = createSelect({
|
|
83
100
|
// 监听这些图层 (不传则监听所有)
|
|
84
101
|
layers: [vectorLayer, wmsLayer],
|
|
85
102
|
|
|
@@ -87,14 +104,14 @@ const select = useSelect({
|
|
|
87
104
|
multi: false,
|
|
88
105
|
|
|
89
106
|
// 自定义高亮样式 (支持函数或对象)
|
|
90
|
-
style: (feature) => {
|
|
107
|
+
style: (layerName, feature) => {
|
|
91
108
|
// 自动识别数据来源
|
|
92
|
-
const layer = feature.get('
|
|
109
|
+
const layer = feature.get('wms_layer_source'); // WMS 注入的标记
|
|
93
110
|
const type = feature.get('type');
|
|
94
111
|
|
|
95
112
|
// 根据业务逻辑返回不同样式
|
|
96
113
|
if (layer === wmsLayer) {
|
|
97
|
-
return new Style({
|
|
114
|
+
return new Style({
|
|
98
115
|
stroke: new Stroke({ color: 'red', width: 3 }),
|
|
99
116
|
fill: new Fill({ color: 'rgba(255,0,0,0.1)' })
|
|
100
117
|
});
|
|
@@ -116,30 +133,159 @@ select.onSelect((res) => {
|
|
|
116
133
|
}
|
|
117
134
|
});
|
|
118
135
|
|
|
136
|
+
|
|
137
|
+
// 监听回调
|
|
138
|
+
select.onSelect((res) => {
|
|
139
|
+
if (res && res.length > 0) {
|
|
140
|
+
// res 是一个数组,包含 feature, layer 和 properties
|
|
141
|
+
const item = res[0];
|
|
142
|
+
console.log('选中要素属性:', item.properties);
|
|
143
|
+
console.log('所属图层:', item.layer);
|
|
144
|
+
} else {
|
|
145
|
+
console.log('取消选中');
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
const { onHover } = createHover({
|
|
150
|
+
style: new Style({
|
|
151
|
+
stroke: new Stroke({ color: 'blue', width: 3 }),
|
|
152
|
+
fill: new Fill({ color: 'rgba(0,0,255,0.1)' })
|
|
153
|
+
})
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
onHover(data => {
|
|
157
|
+
console.log('鼠标悬浮获取的数据:', data);
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
119
162
|
// 页面销毁时可调用
|
|
120
163
|
// select.destroy();
|
|
121
164
|
```
|
|
122
165
|
|
|
166
|
+
|
|
167
|
+
### 3. 异步调用
|
|
168
|
+
|
|
169
|
+
如果创建地图的`useMap`在一个文件,而选择交互在另一个文件,可以使用异步调用。在文件中使用`onMapReady`和`getMapContext`方法来获取地图方法,而不需要传递跟地图相关的任何参数,但是必须指定地图容器的 id。例如:
|
|
170
|
+
|
|
171
|
+
```js
|
|
172
|
+
import { onMapReady, getMapContext } from 'jgis/2d';
|
|
173
|
+
|
|
174
|
+
// 'map-container' 是地图容器的 id
|
|
175
|
+
onMapReady('map-container', ({ createLayer, flyTo }) => {
|
|
176
|
+
|
|
177
|
+
})
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
getMapContext('map-container').then(({ createLayer, flyTo }) => {
|
|
181
|
+
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
|
|
123
187
|
---
|
|
124
188
|
|
|
125
189
|
## 🌍 快速开始 (3D)
|
|
126
190
|
|
|
127
191
|
三维模块完全隔离,不会污染二维项目。
|
|
128
192
|
|
|
129
|
-
|
|
130
|
-
|
|
193
|
+
### 1. 初始化地图
|
|
194
|
+
|
|
195
|
+
```vue
|
|
196
|
+
<template>
|
|
197
|
+
<!-- ⚠️ 注意:必须给容器设置高度,否则地图无法显示 -->
|
|
198
|
+
<div id="map-container" style="height: 100vh; width: 100%;"></div>
|
|
199
|
+
</template>
|
|
200
|
+
|
|
201
|
+
<script setup>
|
|
202
|
+
import { onMounted } from 'vue';
|
|
203
|
+
import { useMap } from 'jgis/3d';
|
|
204
|
+
|
|
205
|
+
onMounted(() => {
|
|
206
|
+
// 初始化地图,会自动注册为全局激活实例
|
|
207
|
+
const { instance, flyTo, addMarker } = useMap('map-container', {
|
|
208
|
+
center: [116.4, 39.9],
|
|
209
|
+
zoom: 10
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
addMarker(
|
|
213
|
+
'创建点位图层',
|
|
214
|
+
[
|
|
215
|
+
{ lon: 104.397428, lat: 30.90923 },
|
|
216
|
+
{ lon: 104.45343, lat: 30.83233 }
|
|
217
|
+
],
|
|
218
|
+
{
|
|
219
|
+
getImage: (item) => new URL('./img.png', import.meta.url).href,
|
|
220
|
+
scale: 0.4,
|
|
221
|
+
// color: Cesium.Color.YELLOW,
|
|
222
|
+
disableDepthTestDistance: Number.POSITIVE_INFINITY,
|
|
223
|
+
scaleByDistance: new Cesium.NearFarScalar(1, 1, 100000, 0.2)
|
|
224
|
+
}
|
|
225
|
+
)
|
|
131
226
|
|
|
132
|
-
|
|
133
|
-
const viewer = createMap3D('cesium-container');
|
|
227
|
+
flyTo([104.397428, 30.90923, 10000], { duration: 1, pitch: -Math.PI / 2 })
|
|
134
228
|
|
|
135
|
-
// 使用工具函数
|
|
136
|
-
flyTo(viewer, {
|
|
137
|
-
lng: 116.4,
|
|
138
|
-
lat: 39.9,
|
|
139
|
-
height: 2000
|
|
140
229
|
});
|
|
230
|
+
</script>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### 2. 使用交互功能 (Select / Hover)
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
```javascript
|
|
237
|
+
import { useMap } from 'jgis/3d';
|
|
238
|
+
const { createSelect, createHover } = useMap('map-container');
|
|
239
|
+
|
|
240
|
+
// click事件
|
|
241
|
+
const { onSelect } = createSelect({
|
|
242
|
+
style: {
|
|
243
|
+
color: Cesium.Color.YELLOW,
|
|
244
|
+
scale: 0.5
|
|
245
|
+
}
|
|
246
|
+
})
|
|
247
|
+
|
|
248
|
+
onSelect((data) => {
|
|
249
|
+
console.log('onSelect获取的数据', data)
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
// hover事件
|
|
254
|
+
const { onHover } = createHover({
|
|
255
|
+
style: {
|
|
256
|
+
color: Cesium.Color.YELLOW,
|
|
257
|
+
scale: 0.5
|
|
258
|
+
}
|
|
259
|
+
})
|
|
260
|
+
|
|
261
|
+
onHover((data) => {
|
|
262
|
+
console.log('onHover获取的数据', data)
|
|
263
|
+
})
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
### 3. 异步调用
|
|
270
|
+
|
|
271
|
+
如果创建地图的`useMap`在一个文件,而选择交互在另一个文件,可以使用异步调用。在文件中使用`onMapReady`和`getMapContext`方法来获取地图方法,而不需要传递跟地图相关的任何参数,但是必须指定地图容器的 id。例如:
|
|
272
|
+
|
|
273
|
+
```js
|
|
274
|
+
import { onMapReady, getMapContext } from 'jgis/3d';
|
|
275
|
+
|
|
276
|
+
// 'map-container' 是地图容器的 id
|
|
277
|
+
onMapReady('map-container', ({ createLayer, flyTo }) => {
|
|
278
|
+
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
getMapContext('map-container').then(({ createLayer, flyTo }) => {
|
|
283
|
+
|
|
284
|
+
})
|
|
285
|
+
|
|
141
286
|
```
|
|
142
287
|
|
|
288
|
+
|
|
143
289
|
---
|
|
144
290
|
|
|
145
291
|
## 🛠️ 项目配置指南 (Vite & TS)
|
package/dist/2d/index.d.ts
CHANGED
package/dist/2d/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var oe=Object.defineProperty,se=Object.defineProperties;var ae=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var ce=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var C=(e,t,r)=>t in e?oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,N=(e,t)=>{for(var r in t||(t={}))ce.call(t,r)&&C(e,r,t[r]);if(V)for(var r of V(t))ie.call(t,r)&&C(e,r,t[r]);return e},p=(e,t)=>se(e,ae(t));var I=(e,t,r)=>new Promise((o,n)=>{var s=i=>{try{c(r.next(i))}catch(l){n(l)}},a=i=>{try{c(r.throw(i))}catch(l){n(l)}},c=i=>i.done?o(i.value):Promise.resolve(i.value).then(s,a);c((r=r.apply(e,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("ol"),L=require("ol/layer"),w=require("ol/source"),A=require("ol/format"),le=require("ol/Overlay"),T=require("ol/geom"),ue=require("ol/Feature");require("ol/extent");const j=require("ol/style"),ye=require("ol/events/condition.js"),fe=require("ol/interaction/Select");var g=63710088e-1,ge={centimeters:g*100,centimetres:g*100,degrees:360/(2*Math.PI),feet:g*3.28084,inches:g*39.37,kilometers:g/1e3,kilometres:g/1e3,meters:g,metres:g,miles:g/1609.344,millimeters:g*1e3,millimetres:g*1e3,nauticalmiles:g/1852,radians:1,yards:g*1.0936};function D(e,t,r={}){const o={type:"Feature"};return(r.id===0||r.id)&&(o.id=r.id),r.bbox&&(o.bbox=r.bbox),o.properties=t||{},o.geometry=e,o}function B(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!W(e[0])||!W(e[1]))throw new Error("coordinates must contain numbers");return D({type:"Point",coordinates:e},t,r)}function de(e,t,r={}){for(const n of e){if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(n[n.length-1].length!==n[0].length)throw new Error("First and last Position are not equivalent.");for(let s=0;s<n[n.length-1].length;s++)if(n[n.length-1][s]!==n[0][s])throw new Error("First and last Position are not equivalent.")}return D({type:"Polygon",coordinates:e},t,r)}function me(e,t="kilometers"){const r=ge[t];if(!r)throw new Error(t+" units is invalid");return e/r}function G(e){return e%(2*Math.PI)*180/Math.PI}function z(e){return e%360*Math.PI/180}function W(e){return!isNaN(e)&&e!==null&&!Array.isArray(e)}function we(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if(e.type==="Feature"&&e.geometry!==null&&e.geometry.type==="Point")return[...e.geometry.coordinates];if(e.type==="Point")return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function he(e,t,r,o={}){const n=we(e),s=z(n[0]),a=z(n[1]),c=z(r),i=me(t,o.units),l=Math.asin(Math.sin(a)*Math.cos(i)+Math.cos(a)*Math.sin(i)*Math.cos(c)),d=s+Math.atan2(Math.sin(c)*Math.sin(i)*Math.cos(a),Math.cos(i)-Math.sin(a)*Math.sin(l)),P=G(d),u=G(l);return n[2]!==void 0?B([P,u,n[2]],o.properties):B([P,u],o.properties)}function be(e,t,r={}){const o=r.steps||64,n=r.properties?r.properties:!Array.isArray(e)&&e.type==="Feature"&&e.properties?e.properties:{},s=[];for(let a=0;a<o;a++)s.push(he(e,t,a*-360/o,r).geometry.coordinates);return s.push(s[0]),de([s],n)}function k(e){return e.lttd&&e.lgtd?[Number(e.lgtd),Number(e.lttd)]:e.jd&&e.wd?[Number(e.jd),Number(e.wd)]:e.latitude&&e.longitude?[Number(e.longitude),Number(e.latitude)]:e.lon&&e.lat?[Number(e.lon),Number(e.lat)]:[0,0]}function J(e,t){e.getLayers().getArray().forEach(o=>{o.get("name")==t&&("setSource"in o&&o.setSource(null),"dispose"in o&&o.dispose(),e.removeLayer(o))})}function U(e,t,r,o=!1){const n=o?r.style||r.getStyle(e,t):void 0,s=o?999:-1;n&&typeof n.setZIndex=="function"&&n.setZIndex(s),t.setStyle(n)}function Se(e,t,r){if(!t)return;const o=r.time||300;let n=Date.now(),s=!1,a=0;t.running=!0;function c(){if(!t.running)return;const i=Date.now();i-n>=o&&(s=!s,n=i,U(e,t,r,s),t.changed()),a=requestAnimationFrame(c)}c(),t.clearFlash=()=>{t.running=!1,cancelAnimationFrame(a),t.setStyle(void 0)}}function Le(e,t,r){var a,c;if(!r)return;let o=k(r);const n=(c=(a=H(e,t))==null?void 0:a.getFeatures)==null?void 0:c.call(a);return n?n.find(function(i){const l=i.getGeometry();return l&&l instanceof T.Geometry&&typeof l.intersectsCoordinate=="function"?l.intersectsCoordinate(o):!1}):void 0}function Fe(e,t,r){const o=[];let n;const s=r.type||"Point";t.forEach(c=>{switch(s){case"Point":n=xe(c);break;case"LineString":n=Pe(c);break;case"MultiLineString":n=ve(c);break;case"MultiPolygon":n=Ee(c);break;case"Polygon":n=Te(c);break}if(!n)return;const i=new ue({geometry:n,data:c});i.set("layerName",e),o.push(i)});const a=new w.Vector;return o.length>0&&a.addFeatures(o),a}function Me(e,t){return t.cqlFilter&&(t.cqlFilter?t.CQL_FILTER+=` and ${t.cqlFilter}`:t.CQL_FILTER=t.cqlFilter),new w.TileWMS({url:t.url,params:{LAYERS:t.layers,CQL_FILTER:t.CQL_FILTER},serverType:"geoserver",crossOrigin:"anonymous"})}function H(e,t){const r=Z(e,t);return r==null?void 0:r.getSource()}function xe(e){const t=k(e);if(t)return new T.Point(t)}function Pe(e){return new T.LineString(e.coordinates)}function ve(e){return new T.MultiLineString(e.coordinates)}function Ee(e){return new T.MultiPolygon(e.coordinates)}function Te(e){return new T.Polygon(e.coordinates)}function O(e,t){let r=null;return t.style?r=t.style:t.getStyle?r=(o,n)=>t.getStyle(e,o,n):r=Ie(),r}function Ie(){return(t,r)=>new j.Style({image:new j.Circle({radius:5,fill:new j.Fill({color:"red"})})})}function Ae(e,t={}){const r=t.token||"dadcbbdb5206b626a29ca739686b3087",o=t.baseType||"img",n=t.noteType||"cia",s=new L.Tile({className:"tdt-base-layer",source:new w.XYZ({url:`http://t0.tianditu.com/DataServer?T=${o}_w&x={x}&y={y}&l={z}&tk=${r}`,maxZoom:t.maxZoom||18,minZoom:t.minZoom||2}),zIndex:t.zIndex||1});s.set("name","tdt-base-layer");const a=new L.Tile({className:"tdt-base-layer",source:new w.XYZ({url:`http://t0.tianditu.com/DataServer?T=${n}_w&x={x}&y={y}&l={z}&tk=${r}`,maxZoom:t.maxZoom||18,minZoom:t.minZoom||2}),zIndex:t.zIndex?t.zIndex+1:2});return a.set("name","tdt-baseNote-layer"),e.addLayer(s),e.addLayer(a),s}function Q(e,t,r,o){(!o||!o.type)&&(o=Object.assign({},r,o));const n=o.type||"Point";let s;switch(n){case"GeoJSON":s=Oe(t,r,e,o);break;case"Wms":s=Re(t,e,o);break;case"Point":case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":s=Ne(t,r,e,o);break;case"Circle":s=pe(t,r,e,o);break;case"Overlay":s=je(t,e,o);break}return s}function ke(e,t){Array.isArray(t)?t.forEach(r=>{J(e,r)}):J(e,t)}function Oe(e,t,r,o){console.log(typeof t,t);const n=new A.GeoJSON().readFeatures(t,{dataProjection:"EPSG:4326",featureProjection:"EPSG:4326"}),s=new w.Vector;s.addFeatures(n);const a=new L.Vector({source:s,style:O(e,o),zIndex:o.zIndex||10});return a.set("name",e),a.set("type","webgl"),r.addLayer(a),a}function Re(e,t,r){const o=new L.Tile({opacity:r.opacity||1,source:Me(e,r),zIndex:r.zIndex||10});return o.set("name",e),t.addLayer(o),o}function Ne(e,t,r,o){if(!t||t.length===0)return null;const n=new L.Vector({source:Fe(e,t,o),style:O(e,o),zIndex:o.zIndex||10});return n.set("name",e),n.set("type","webgl"),r.addLayer(n),n}function pe(e,t,r,o){const n=k(t),s=be(n,o.radius,{steps:300,units:"meters"}),a=new A.GeoJSON().readFeature(s,{dataProjection:"EPSG:4326",featureProjection:"EPSG:4490"}),c=new w.Vector({wrapX:!1});c.addFeature(a);const i=new L.Vector({source:c,style:O(e,o),zIndex:o.zIndex?o.zIndex:10});return i.set("name",e),i.set("type","webgl"),r.addLayer(i),i}function je(e,t,r){const o=document.createElement("div"),n=new le({element:o,stopEvent:!1,positioning:r.positioning||"bottom-center"});return n.set("name",e),n.set("type","webgl"),t.addOverlay(n),{overlayer:n,content:o}}function ze(e,t,r){const o=new L.Vector({source:new w.Vector({wrapX:!1}),zIndex:r.zIndex?r.zIndex:10,style:O(t,r)});return o.set("name",t),o.set("type","webgl"),e.addLayer(o),o}function Z(e,t){return e.getAllLayers().find(n=>n.get("name")===t)}function Ze(e,t,r){const o=Z(e,t);return o.setVisible(r),o}const E=new Map,x={},v={},_e=(e,t)=>{E.has(e)&&console.warn(`Map with target '${e}' already exists. Overwriting...`),E.set(e,t),x[e]&&(x[e].forEach(r=>r(t)),delete x[e]),v[e]&&(v[e].forEach(r=>r(t)),delete v[e])};function X(e){const t=E.get(e);return t?Promise.resolve(t):(console.warn(`Map '${e}' not found. Make sure useMap() is called first.`),new Promise(r=>{v[e]=v[e]||[],v[e].push(r)}))}const qe=e=>{E.has(e)&&(E.delete(e),delete x[e])},Y=(e,t)=>{const r=E.get(e);if(r){t(r);return}x[e]||(x[e]=[]),x[e].push(t)};function Ve(e,t={}){if(!e&&!e.target)throw new Error("请传入地图容器");arguments.length===1&&typeof e=="object"&&(t=e,e=t.target);const o=Object.assign({zoom:10,center:[104.064839,30.548857],minZoom:2,maxZoom:19,projection:"EPSG:4326"},t),n=new $.Map({target:e,layers:[],view:new $.View({projection:o.projection,center:o.center,zoom:o.zoom,minZoom:o.minZoom,maxZoom:o.maxZoom})});return n.targetId=e,n}function Ce(e,t,r,o){Q(e,t,r,p(N({},o),{type:"Point"}))}function K(e,t,r){return new Promise((o,n)=>{e.getView().animate({center:t,duration:r.duration||1e3,zoom:r.zoom||te(e),rotation:r.rotation||0,easing:r.easing},o)})}function ee(e,t){const r=(t.extend[0]+t.extend[2])/2,o=(t.extend[1]+t.extend[3])/2;return K(e,[r,o],t)}function $e(e,t,r){const o=t.getGeometry().getExtent();return ee(e,p(N({},r),{extend:o}))}function Be(e){return e.getView().getProjection()}function te(e){return e.getView().getZoom()}function Ge(e,t){e.getView().setZoom(t)}function We(e,t){e.un("click",()=>{}),e.un("pointermove",()=>{}),qe(t)}let M=null;function Je(e,t={}){const r=new A.GeoJSON;M=new fe({condition:ye.click,multi:t.multi||!1,style:c=>{if(typeof t.getStyle=="function"){const i=c.get("layerName");return t.getStyle(i,c)}else return t.style},layers:t.layers?c=>t.layers.includes(c):void 0}),e.addInteraction(M);const o=M.getFeatures(),n=c=>I(null,null,function*(){const i=(t.layers||e.getLayers().getArray()).filter(h=>{const b=h.getSource();return h.getVisible()&&(b instanceof w.TileWMS||b instanceof w.ImageWMS)});if(i.length===0)return;const l=e.getView(),d=i.map(h=>I(null,null,function*(){const y=h.getSource().getFeatureInfoUrl(c.coordinate,l.getResolution(),l.getProjection(),{INFO_FORMAT:"application/json",FEATURE_COUNT:1});if(y)try{const S=yield(yield fetch(y)).json();if(S.features&&S.features.length>0){const m=r.readFeatures(S);return m.forEach(f=>{f.set("wms_layer_source",h),f.set("wms_event_source",c),f.set("layerName",h.get("name"))}),m}}catch(F){console.warn(F)}return[]})),u=(yield Promise.all(d)).flat();u.length>0&&(t.multi,o.extend(u),M.dispatchEvent({type:"select",selected:u,deselected:[],mapBrowserEvent:c}))});e.on("singleclick",n);const s=new Set;M.on("select",c=>{const i=o.getArray();if(i.length>0){const l=i.map(d=>({feature:d,properties:d.getProperties(),layer:d.get("wms_layer_source")||M.getLayer(d),event:d.get("wms_event_source")||c}));a(l)}else a(null)});const a=c=>s.forEach(i=>i(c));return{onSelect:c=>(s.add(c),()=>s.delete(c)),clear:()=>{s.clear(),o.clear()},destroy:()=>{e.removeInteraction(M),e.un("singleclick",n),s.clear()}}}function De(e,t={}){var P;const r=new A.GeoJSON,o=(P=t.debounceTime)!=null?P:200,n=new w.Vector,s=new L.Vector({source:n,map:e,style:t.style,zIndex:1e4,properties:{title:"JG_HOVER_LAYER"}});let a=null,c=null;const i=new Set,l=(u,h,b)=>{const y=u[0];if(a!==y)if(a=y,n.clear(),y?(n.addFeature(y),t.cursor!==!1&&(e.getTargetElement().style.cursor="pointer")):t.cursor!==!1&&(e.getTargetElement().style.cursor=""),y){const F={feature:y,layer:h,properties:y.getProperties(),coordinate:b};i.forEach(S=>S([F]))}else i.forEach(F=>F(null))},d=u=>{if(u.dragging)return;const h=u.pixel,b=u.coordinate;let y=!1;if(e.forEachFeatureAtPixel(h,(m,f)=>{y||f!==s&&(t.layers&&!t.layers.includes(f)||(y=!0,c&&clearTimeout(c),l([m],f,b)))}),y)return;a&&(a=null,n.clear(),e.getTargetElement().style.cursor="",i.forEach(m=>m(null))),c&&clearTimeout(c);const S=(t.layers||e.getLayers().getArray()).filter(m=>{const f=m.getSource();return m.getVisible()&&(f instanceof w.TileWMS||f instanceof w.ImageWMS)});S.length!==0&&(c=setTimeout(()=>I(null,null,function*(){const m=e.getView();for(const f of S){const _=f.getSource().getFeatureInfoUrl(b,m.getResolution(),m.getProjection(),{INFO_FORMAT:"application/json",FEATURE_COUNT:1});if(_)try{const R=yield(yield fetch(_)).json();if(R.features&&R.features.length>0){const q=r.readFeatures(R);q.forEach(ne=>ne.set("wms_layer_source",f)),l(q,f,b);return}}catch(re){}}}),o))};return e.on("pointermove",d),{onHover:u=>(i.add(u),()=>i.delete(u)),clear:()=>{n.clear(),a=null},destroy:()=>{e.un("pointermove",d),e.removeLayer(s),i.clear(),c&&clearTimeout(c)}}}const Ue=(e,t)=>{const r=Ve(e,t);Ae(r,t.baseLayers);const o={targetId:e,instance:r,addMarker:(n,s,a)=>Ce(r,n,s,a),createLayer:(n,s,a)=>Q(r,n,s,a),createBlankLayer:(n,s)=>ze(r,n,s),visibleLayer:(n,s)=>Ze(r,n,s),removeLayer:n=>ke(r,n),getLonLat:n=>k(n),getLayerByName:n=>Z(r,n),getSourceByName:n=>H(r,n),useSelect:n=>Je(r,n),useHover:n=>De(r,n),queryFeature:(n,s)=>Le(r,n,s),lightFeature:(n,s,a,c)=>U(n,s,a,c),flashFeature:(n,s,a)=>Se(n,s,a),flyTo:(n,s)=>K(r,n,s),flyToByExtent:n=>ee(r,n),flyToByFeature:(n,s)=>$e(r,n,s),getProjection:()=>Be(r),getZoom:()=>te(r),setZoom:n=>Ge(r,n),getMapContext:n=>X(n),onMapReady:(n,s)=>Y(n,s),destroyMap:()=>We(r,e)};return _e(e,o),o};function He(e,t){Y(e,t)}function Qe(e){return X(e)}exports.getMapContext=Qe;exports.onMapReady=He;exports.useMap=Ue;
|
|
1
|
+
"use strict";var oe=Object.defineProperty,se=Object.defineProperties;var ae=Object.getOwnPropertyDescriptors;var V=Object.getOwnPropertySymbols;var ce=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable;var C=(e,t,r)=>t in e?oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,N=(e,t)=>{for(var r in t||(t={}))ce.call(t,r)&&C(e,r,t[r]);if(V)for(var r of V(t))ie.call(t,r)&&C(e,r,t[r]);return e},j=(e,t)=>se(e,ae(t));var I=(e,t,r)=>new Promise((o,n)=>{var s=i=>{try{c(r.next(i))}catch(l){n(l)}},a=i=>{try{c(r.throw(i))}catch(l){n(l)}},c=i=>i.done?o(i.value):Promise.resolve(i.value).then(s,a);c((r=r.apply(e,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("ol"),L=require("ol/layer"),w=require("ol/source"),A=require("ol/format"),le=require("ol/Overlay"),T=require("ol/geom"),ue=require("ol/Feature");require("ol/extent");const p=require("ol/style"),fe=require("ol/control"),ye=require("ol/events/condition.js"),ge=require("ol/interaction/Select");var g=63710088e-1,de={centimeters:g*100,centimetres:g*100,degrees:360/(2*Math.PI),feet:g*3.28084,inches:g*39.37,kilometers:g/1e3,kilometres:g/1e3,meters:g,metres:g,miles:g/1609.344,millimeters:g*1e3,millimetres:g*1e3,nauticalmiles:g/1852,radians:1,yards:g*1.0936};function D(e,t,r={}){const o={type:"Feature"};return(r.id===0||r.id)&&(o.id=r.id),r.bbox&&(o.bbox=r.bbox),o.properties=t||{},o.geometry=e,o}function B(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!W(e[0])||!W(e[1]))throw new Error("coordinates must contain numbers");return D({type:"Point",coordinates:e},t,r)}function me(e,t,r={}){for(const n of e){if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(n[n.length-1].length!==n[0].length)throw new Error("First and last Position are not equivalent.");for(let s=0;s<n[n.length-1].length;s++)if(n[n.length-1][s]!==n[0][s])throw new Error("First and last Position are not equivalent.")}return D({type:"Polygon",coordinates:e},t,r)}function we(e,t="kilometers"){const r=de[t];if(!r)throw new Error(t+" units is invalid");return e/r}function G(e){return e%(2*Math.PI)*180/Math.PI}function z(e){return e%360*Math.PI/180}function W(e){return!isNaN(e)&&e!==null&&!Array.isArray(e)}function he(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if(e.type==="Feature"&&e.geometry!==null&&e.geometry.type==="Point")return[...e.geometry.coordinates];if(e.type==="Point")return[...e.coordinates]}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[...e];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function be(e,t,r,o={}){const n=he(e),s=z(n[0]),a=z(n[1]),c=z(r),i=we(t,o.units),l=Math.asin(Math.sin(a)*Math.cos(i)+Math.cos(a)*Math.sin(i)*Math.cos(c)),d=s+Math.atan2(Math.sin(c)*Math.sin(i)*Math.cos(a),Math.cos(i)-Math.sin(a)*Math.sin(l)),P=G(d),u=G(l);return n[2]!==void 0?B([P,u,n[2]],o.properties):B([P,u],o.properties)}function Se(e,t,r={}){const o=r.steps||64,n=r.properties?r.properties:!Array.isArray(e)&&e.type==="Feature"&&e.properties?e.properties:{},s=[];for(let a=0;a<o;a++)s.push(be(e,t,a*-360/o,r).geometry.coordinates);return s.push(s[0]),me([s],n)}function k(e,t){return typeof e!="object"||e===null?null:e.lttd&&e.lgtd?[Number(e.lgtd),Number(e.lttd)]:e.jd&&e.wd?[Number(e.jd),Number(e.wd)]:e.latitude&&e.longitude?[Number(e.longitude),Number(e.latitude)]:e.lon&&e.lat?[Number(e.lon),Number(e.lat)]:null}function J(e,t){e.getLayers().getArray().forEach(o=>{o.get("name")==t&&("setSource"in o&&o.setSource(null),"dispose"in o&&o.dispose(),e.removeLayer(o))})}function U(e,t,r,o=!1){const n=o?r.style||r.getStyle(e,t):void 0,s=o?999:-1;n&&typeof n.setZIndex=="function"&&n.setZIndex(s),t.setStyle(n)}function Le(e,t,r){if(!t)return;const o=r.time||300;let n=Date.now(),s=!1,a=0;t.running=!0;function c(){if(!t.running)return;const i=Date.now();i-n>=o&&(s=!s,n=i,U(e,t,r,s),t.changed()),a=requestAnimationFrame(c)}c(),t.clearFlash=()=>{t.running=!1,cancelAnimationFrame(a),t.setStyle(void 0)}}function Fe(e,t,r){var a,c;if(!r)return;let o=k(r);const n=(c=(a=H(e,t))==null?void 0:a.getFeatures)==null?void 0:c.call(a);return n?n.find(function(i){const l=i.getGeometry();return l&&l instanceof T.Geometry&&typeof l.intersectsCoordinate=="function"?l.intersectsCoordinate(o):!1}):void 0}function Me(e,t,r){const o=[];let n;const s=r.type||"Point";t.forEach(c=>{switch(s){case"Point":n=Pe(c);break;case"LineString":n=ve(c);break;case"MultiLineString":n=Ee(c);break;case"MultiPolygon":n=Te(c);break;case"Polygon":n=Ie(c);break}if(!n)return;const i=new ue({geometry:n,data:c});i.set("layerName",e),o.push(i)});const a=new w.Vector;return o.length>0&&a.addFeatures(o),a}function xe(e,t){return t.cqlFilter&&(t.cqlFilter?t.CQL_FILTER+=` and ${t.cqlFilter}`:t.CQL_FILTER=t.cqlFilter),new w.TileWMS({url:t.url,params:{LAYERS:t.layers,CQL_FILTER:t.CQL_FILTER},serverType:"geoserver",crossOrigin:"anonymous"})}function H(e,t){const r=Z(e,t);return r==null?void 0:r.getSource()}function Pe(e){const t=k(e);if(t)return new T.Point(t)}function ve(e){return new T.LineString(e.coordinates)}function Ee(e){return new T.MultiLineString(e.coordinates)}function Te(e){return new T.MultiPolygon(e.coordinates)}function Ie(e){return new T.Polygon(e.coordinates)}function O(e,t){let r=null;return t.style?r=t.style:t.getStyle?r=(o,n)=>t.getStyle(e,o,n):r=Ae(),r}function Ae(){return(t,r)=>new p.Style({image:new p.Circle({radius:5,fill:new p.Fill({color:"red"})})})}function ke(e,t={}){const r=t.token||"dadcbbdb5206b626a29ca739686b3087",o=t.baseType||"img",n=t.noteType||"cia",s=new L.Tile({className:"tdt-base-layer",source:new w.XYZ({url:`http://t0.tianditu.com/DataServer?T=${o}_w&x={x}&y={y}&l={z}&tk=${r}`,maxZoom:t.maxZoom||18,minZoom:t.minZoom||2}),zIndex:t.zIndex||1});s.set("name","tdt-base-layer");const a=new L.Tile({className:"tdt-base-layer",source:new w.XYZ({url:`http://t0.tianditu.com/DataServer?T=${n}_w&x={x}&y={y}&l={z}&tk=${r}`,maxZoom:t.maxZoom||18,minZoom:t.minZoom||2}),zIndex:t.zIndex?t.zIndex+1:2});return a.set("name","tdt-baseNote-layer"),e.addLayer(s),e.addLayer(a),s}function Q(e,t,r,o){(!o||!o.type)&&(o=Object.assign({},r,o));const n=o.type||"Point";let s;switch(n){case"GeoJSON":s=Re(t,r,e,o);break;case"Wms":s=Ne(t,e,o);break;case"Point":case"LineString":case"MultiLineString":case"Polygon":case"MultiPolygon":s=je(t,r,e,o);break;case"Circle":s=pe(t,r,e,o);break;case"Overlay":s=ze(t,e,o);break}return s}function Oe(e,t){Array.isArray(t)?t.forEach(r=>{J(e,r)}):J(e,t)}function Re(e,t,r,o){console.log(typeof t,t);const n=new A.GeoJSON().readFeatures(t,{dataProjection:"EPSG:4326",featureProjection:"EPSG:4326"}),s=new w.Vector;s.addFeatures(n);const a=new L.Vector({source:s,style:O(e,o),zIndex:o.zIndex||10});return a.set("name",e),a.set("type","webgl"),r.addLayer(a),a}function Ne(e,t,r){const o=new L.Tile({opacity:r.opacity||1,source:xe(e,r),zIndex:r.zIndex||10});return o.set("name",e),t.addLayer(o),o}function je(e,t,r,o){if(!t||t.length===0)return null;const n=new L.Vector({source:Me(e,t,o),style:O(e,o),zIndex:o.zIndex||10});return n.set("name",e),n.set("type","webgl"),r.addLayer(n),n}function pe(e,t,r,o){const n=k(t),s=Se(n,o.radius,{steps:300,units:"meters"}),a=new A.GeoJSON().readFeature(s,{dataProjection:"EPSG:4326",featureProjection:"EPSG:4490"}),c=new w.Vector({wrapX:!1});c.addFeature(a);const i=new L.Vector({source:c,style:O(e,o),zIndex:o.zIndex?o.zIndex:10});return i.set("name",e),i.set("type","webgl"),r.addLayer(i),i}function ze(e,t,r){const o=document.createElement("div"),n=new le({element:o,stopEvent:!1,positioning:r.positioning||"bottom-center"});return n.set("name",e),n.set("type","webgl"),t.addOverlay(n),{overlayer:n,content:o}}function Ze(e,t,r){const o=new L.Vector({source:new w.Vector({wrapX:!1}),zIndex:r.zIndex?r.zIndex:10,style:O(t,r)});return o.set("name",t),o.set("type","webgl"),e.addLayer(o),o}function Z(e,t){return e.getAllLayers().find(n=>n.get("name")===t)}function qe(e,t,r){const o=Z(e,t);return o.setVisible(r),o}const E=new Map,x={},v={},_e=(e,t)=>{E.has(e)&&console.warn(`Map with target '${e}' already exists. Overwriting...`),E.set(e,t),x[e]&&(x[e].forEach(r=>r(t)),delete x[e]),v[e]&&(v[e].forEach(r=>r(t)),delete v[e])};function X(e){const t=E.get(e);return t?Promise.resolve(t):new Promise(r=>{v[e]=v[e]||[],v[e].push(r)})}const Ve=e=>{E.has(e)&&(E.delete(e),delete x[e])},Y=(e,t)=>{const r=E.get(e);if(r){t(r);return}x[e]||(x[e]=[]),x[e].push(t)};function Ce(e,t={}){if(!e&&!e.target)throw new Error("is not a valid element");arguments.length===1&&typeof e=="object"&&(t=e,e=t.target);const o=Object.assign({zoom:10,center:[104.064839,30.548857],minZoom:2,maxZoom:19,projection:"EPSG:4326"},t),n=new $.Map({target:e,layers:[],view:new $.View({projection:o.projection,center:o.center,zoom:o.zoom,minZoom:o.minZoom,maxZoom:o.maxZoom}),controls:fe.defaults({zoom:!1,rotate:!1,attribution:!1})});return n.targetId=e,n}function $e(e,t,r,o){Q(e,t,r,j(N({},o),{type:"Point"}))}function K(e,t,r){return new Promise((o,n)=>{e.getView().animate({center:t,duration:r.duration||1e3,zoom:r.zoom||te(e),rotation:r.rotation||0,easing:r.easing},o)})}function ee(e,t){const r=(t.extend[0]+t.extend[2])/2,o=(t.extend[1]+t.extend[3])/2;return K(e,[r,o],t)}function Be(e,t,r){const o=t.getGeometry().getExtent();return ee(e,j(N({},r),{extend:o}))}function Ge(e){return e.getView().getProjection()}function te(e){return e.getView().getZoom()}function We(e,t){e.getView().setZoom(t)}function Je(e,t){e.un("click",()=>{}),e.un("pointermove",()=>{}),Ve(t)}let M=null;function De(e,t={}){const r=new A.GeoJSON;M=new ge({condition:ye.click,multi:t.multi||!1,style:c=>{if(typeof t.getStyle=="function"){const i=c.get("layerName");return t.getStyle(i,c)}else return t.style},layers:t.layers?c=>t.layers.includes(c):void 0}),e.addInteraction(M);const o=M.getFeatures(),n=c=>I(null,null,function*(){const i=(t.layers||e.getLayers().getArray()).filter(h=>{const b=h.getSource();return h.getVisible()&&(b instanceof w.TileWMS||b instanceof w.ImageWMS)});if(i.length===0)return;const l=e.getView(),d=i.map(h=>I(null,null,function*(){const f=h.getSource().getFeatureInfoUrl(c.coordinate,l.getResolution(),l.getProjection(),{INFO_FORMAT:"application/json",FEATURE_COUNT:1});if(f)try{const S=yield(yield fetch(f)).json();if(S.features&&S.features.length>0){const m=r.readFeatures(S);return m.forEach(y=>{y.set("wms_layer_source",h),y.set("wms_event_source",c),y.set("layerName",h.get("name"))}),m}}catch(F){console.warn(F)}return[]})),u=(yield Promise.all(d)).flat();u.length>0&&(t.multi,o.extend(u),M.dispatchEvent({type:"select",selected:u,deselected:[],mapBrowserEvent:c}))});e.on("singleclick",n);const s=new Set;M.on("select",c=>{const i=o.getArray();if(i.length>0){const l=i.map(d=>({feature:d,properties:d.getProperties(),layer:d.get("wms_layer_source")||M.getLayer(d),event:d.get("wms_event_source")||c}));a(l)}else a(null)});const a=c=>s.forEach(i=>i(c));return{onSelect:c=>(s.add(c),()=>s.delete(c)),clear:()=>{s.clear(),o.clear()},destroy:()=>{e.removeInteraction(M),e.un("singleclick",n),s.clear()}}}function Ue(e,t={}){var P;const r=new A.GeoJSON,o=(P=t.debounceTime)!=null?P:200,n=new w.Vector,s=new L.Vector({source:n,map:e,style:t.style,zIndex:1e4,properties:{title:"JG_HOVER_LAYER"}});let a=null,c=null;const i=new Set,l=(u,h,b)=>{const f=u[0];if(a!==f)if(a=f,n.clear(),f?(n.addFeature(f),t.cursor!==!1&&(e.getTargetElement().style.cursor="pointer")):t.cursor!==!1&&(e.getTargetElement().style.cursor=""),f){const F={feature:f,layer:h,properties:f.getProperties(),coordinate:b};i.forEach(S=>S([F]))}else i.forEach(F=>F(null))},d=u=>{if(u.dragging)return;const h=u.pixel,b=u.coordinate;let f=!1;if(e.forEachFeatureAtPixel(h,(m,y)=>{f||y!==s&&(t.layers&&!t.layers.includes(y)||(f=!0,c&&clearTimeout(c),l([m],y,b)))}),f)return;a&&(a=null,n.clear(),e.getTargetElement().style.cursor="",i.forEach(m=>m(null))),c&&clearTimeout(c);const S=(t.layers||e.getLayers().getArray()).filter(m=>{const y=m.getSource();return m.getVisible()&&(y instanceof w.TileWMS||y instanceof w.ImageWMS)});S.length!==0&&(c=setTimeout(()=>I(null,null,function*(){const m=e.getView();for(const y of S){const q=y.getSource().getFeatureInfoUrl(b,m.getResolution(),m.getProjection(),{INFO_FORMAT:"application/json",FEATURE_COUNT:1});if(q)try{const R=yield(yield fetch(q)).json();if(R.features&&R.features.length>0){const _=r.readFeatures(R);_.forEach(ne=>ne.set("wms_layer_source",y)),l(_,y,b);return}}catch(re){}}}),o))};return e.on("pointermove",d),{onHover:u=>(i.add(u),()=>i.delete(u)),clear:()=>{n.clear(),a=null},destroy:()=>{e.un("pointermove",d),e.removeLayer(s),i.clear(),c&&clearTimeout(c)}}}const He=(e,t)=>{const r=Ce(e,t);ke(r,t.baseLayers);const o={targetId:e,instance:r,addMarker:(n,s,a)=>$e(r,n,s,a),createLayer:(n,s,a)=>Q(r,n,s,a),createBlankLayer:(n,s)=>Ze(r,n,s),visibleLayer:(n,s)=>qe(r,n,s),removeLayer:n=>Oe(r,n),getLonLat:n=>k(n),getLayerByName:n=>Z(r,n),getSourceByName:n=>H(r,n),createSelect:n=>De(r,n),createHover:n=>Ue(r,n),queryFeature:(n,s)=>Fe(r,n,s),lightFeature:(n,s,a,c)=>U(n,s,a,c),flashFeature:(n,s,a)=>Le(n,s,a),flyTo:(n,s)=>K(r,n,s),flyToByExtent:n=>ee(r,n),flyToByFeature:(n,s)=>Be(r,n,s),getProjection:()=>Ge(r),getZoom:()=>te(r),setZoom:n=>We(r,n),getMapContext:n=>X(n),onMapReady:(n,s)=>Y(n,s),destroyMap:()=>Je(r,e)};return _e(e,o),o};function Qe(e,t){Y(e,t)}function Xe(e){return X(e)}exports.getMapContext=Xe;exports.onMapReady=Qe;exports.useMap=He;
|