jgis 1.0.3 → 1.0.5

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 CHANGED
@@ -15,7 +15,7 @@
15
15
  * 按需引入 `jgis/2d` 或 `jgis/3d`。
16
16
  * 使用 2D 功能时绝不会打包 Cesium 代码,保持体积轻量。
17
17
  * **🚀 函数式编程 (Functional)**:
18
- * 摒弃复杂的类继承,使用 Hooks 风格(如 `useSelect`, `useMap`)。
18
+ * 摒弃复杂的类继承,使用 Hooks 风格(如 `createSelect`, `useMap`)。
19
19
  * 支持**隐式上下文**:初始化地图后,功能函数自动绑定当前地图实例,无需重复传参。
20
20
  * **⚡️ 全能拾取器 (Universal Picker)**:
21
21
  * **Hybrid Select**:一套 API 同时支持本地 Vector 图层和远程 WMS 服务(自动解析 GetFeatureInfo)。
@@ -23,7 +23,11 @@
23
23
  * **🎨 灵活的样式系统**:
24
24
  * 支持根据图层、属性动态渲染高亮样式,完全控制权交给用户。
25
25
  * **🗺️ 二三维API风格一致**:
26
- * 二三维API风格一致,方便会一种框架的开发者快速理解和上手开发。
26
+ * 二三维API风格一致,方便会一种框架的开发者快速理解和上手开发另一种框架。
27
+ * **🗺️ 完全兼容openlayers/cesium**:
28
+ * 导出`instance`地图实例,可自己操作原生API。
29
+ * 如果有特殊需求,完全可以自己用原生实现,没有任何违和感。
30
+
27
31
 
28
32
  ---
29
33
 
@@ -60,7 +64,7 @@ import { useMap } from 'jgis/2d';
60
64
 
61
65
  onMounted(() => {
62
66
  // 初始化地图,会自动注册为全局激活实例
63
- const { addMarker } = useMap('map-container', {
67
+ const { instance, addMarker, createLayer } = useMap('map-container', {
64
68
  center: [116.4, 39.9],
65
69
  zoom: 10
66
70
  });
@@ -85,14 +89,14 @@ onMounted(() => {
85
89
  JGIS 的核心优势在于**同时处理 Vector 和 WMS 图层**,并提供统一的样式回调。
86
90
 
87
91
  ```javascript
88
- const { useSelect } = useMap('map-container');
92
+ const { createSelect, createHover } = useMap('map-container');
89
93
 
90
94
  // 假设你有两个图层:一个是本地 Vector,一个是 Geoserver WMS
91
95
  const vectorLayer = ...;
92
96
  const wmsLayer = ...;
93
97
 
94
98
  // 开启选择交互 (无需传入 map 实例)
95
- const select = useSelect({
99
+ const select = createSelect({
96
100
  // 监听这些图层 (不传则监听所有)
97
101
  layers: [vectorLayer, wmsLayer],
98
102
 
@@ -107,7 +111,7 @@ const select = useSelect({
107
111
 
108
112
  // 根据业务逻辑返回不同样式
109
113
  if (layer === wmsLayer) {
110
- return new Style({
114
+ return new Style({
111
115
  stroke: new Stroke({ color: 'red', width: 3 }),
112
116
  fill: new Fill({ color: 'rgba(255,0,0,0.1)' })
113
117
  });
@@ -129,6 +133,32 @@ select.onSelect((res) => {
129
133
  }
130
134
  });
131
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
+
132
162
  // 页面销毁时可调用
133
163
  // select.destroy();
134
164
  ```
@@ -174,7 +204,7 @@ import { useMap } from 'jgis/3d';
174
204
 
175
205
  onMounted(() => {
176
206
  // 初始化地图,会自动注册为全局激活实例
177
- const { flyTo, addMarker } = useMap('map-container', {
207
+ const { instance, flyTo, addMarker } = useMap('map-container', {
178
208
  center: [116.4, 39.9],
179
209
  zoom: 10
180
210
  });
@@ -186,7 +216,7 @@ onMounted(() => {
186
216
  { lon: 104.45343, lat: 30.83233 }
187
217
  ],
188
218
  {
189
- style: (item) => new URL('./img.png', import.meta.url).href,
219
+ getImage: (item) => new URL('./img.png', import.meta.url).href,
190
220
  scale: 0.4,
191
221
  // color: Cesium.Color.YELLOW,
192
222
  disableDepthTestDistance: Number.POSITIVE_INFINITY,
@@ -205,10 +235,10 @@ onMounted(() => {
205
235
 
206
236
  ```javascript
207
237
  import { useMap } from 'jgis/3d';
208
- const { useSelect } = useMap('map-container');
209
-
238
+ const { createSelect, createHover } = useMap('map-container');
210
239
 
211
- const { onSelect } = useSelect({
240
+ // click事件
241
+ const { onSelect } = createSelect({
212
242
  style: {
213
243
  color: Cesium.Color.YELLOW,
214
244
  scale: 0.5
@@ -216,7 +246,20 @@ const { onSelect } = useSelect({
216
246
  })
217
247
 
218
248
  onSelect((data) => {
219
- console.log('获取的数据', 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)
220
263
  })
221
264
 
222
265
  ```
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},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),useSelect:n=>De(r,n),useHover: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;
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;
package/dist/2d/index.mjs CHANGED
@@ -1,29 +1,29 @@
1
- var se = Object.defineProperty, ae = Object.defineProperties;
1
+ var ae = Object.defineProperty, se = Object.defineProperties;
2
2
  var ce = Object.getOwnPropertyDescriptors;
3
3
  var B = Object.getOwnPropertySymbols;
4
4
  var ie = Object.prototype.hasOwnProperty, le = Object.prototype.propertyIsEnumerable;
5
- var V = (e, t, r) => t in e ? se(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, R = (e, t) => {
5
+ var V = (e, t, r) => t in e ? ae(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, R = (e, t) => {
6
6
  for (var r in t || (t = {}))
7
7
  ie.call(t, r) && V(e, r, t[r]);
8
8
  if (B)
9
9
  for (var r of B(t))
10
10
  le.call(t, r) && V(e, r, t[r]);
11
11
  return e;
12
- }, O = (e, t) => ae(e, ce(t));
12
+ }, O = (e, t) => se(e, ce(t));
13
13
  var T = (e, t, r) => new Promise((o, n) => {
14
- var s = (i) => {
14
+ var a = (i) => {
15
15
  try {
16
16
  c(r.next(i));
17
17
  } catch (l) {
18
18
  n(l);
19
19
  }
20
- }, a = (i) => {
20
+ }, s = (i) => {
21
21
  try {
22
22
  c(r.throw(i));
23
23
  } catch (l) {
24
24
  n(l);
25
25
  }
26
- }, c = (i) => i.done ? o(i.value) : Promise.resolve(i.value).then(s, a);
26
+ }, c = (i) => i.done ? o(i.value) : Promise.resolve(i.value).then(a, s);
27
27
  c((r = r.apply(e, t)).next());
28
28
  });
29
29
  import { Map as ue, View as fe } from "ol";
@@ -81,8 +81,8 @@ function Te(e, t, r = {}) {
81
81
  );
82
82
  if (n[n.length - 1].length !== n[0].length)
83
83
  throw new Error("First and last Position are not equivalent.");
84
- for (let s = 0; s < n[n.length - 1].length; s++)
85
- if (n[n.length - 1][s] !== n[0][s])
84
+ for (let a = 0; a < n[n.length - 1].length; a++)
85
+ if (n[n.length - 1][a] !== n[0][a])
86
86
  throw new Error("First and last Position are not equivalent.");
87
87
  }
88
88
  return H({
@@ -119,21 +119,21 @@ function pe(e) {
119
119
  throw new Error("coord must be GeoJSON Point or an Array of numbers");
120
120
  }
121
121
  function Ae(e, t, r, o = {}) {
122
- const n = pe(e), s = z(n[0]), a = z(n[1]), c = z(r), i = Ie(t, o.units), l = Math.asin(
123
- Math.sin(a) * Math.cos(i) + Math.cos(a) * Math.sin(i) * Math.cos(c)
124
- ), m = s + Math.atan2(
125
- Math.sin(c) * Math.sin(i) * Math.cos(a),
126
- Math.cos(i) - Math.sin(a) * Math.sin(l)
122
+ const n = pe(e), a = z(n[0]), s = z(n[1]), c = z(r), i = Ie(t, o.units), l = Math.asin(
123
+ Math.sin(s) * Math.cos(i) + Math.cos(s) * Math.sin(i) * Math.cos(c)
124
+ ), m = a + Math.atan2(
125
+ Math.sin(c) * Math.sin(i) * Math.cos(s),
126
+ Math.cos(i) - Math.sin(s) * Math.sin(l)
127
127
  ), x = $(m), u = $(l);
128
128
  return n[2] !== void 0 ? q([x, u, n[2]], o.properties) : q([x, u], o.properties);
129
129
  }
130
130
  function ke(e, t, r = {}) {
131
- const o = r.steps || 64, n = r.properties ? r.properties : !Array.isArray(e) && e.type === "Feature" && e.properties ? e.properties : {}, s = [];
132
- for (let a = 0; a < o; a++)
133
- s.push(
134
- Ae(e, t, a * -360 / o, r).geometry.coordinates
131
+ const o = r.steps || 64, n = r.properties ? r.properties : !Array.isArray(e) && e.type === "Feature" && e.properties ? e.properties : {}, a = [];
132
+ for (let s = 0; s < o; s++)
133
+ a.push(
134
+ Ae(e, t, s * -360 / o, r).geometry.coordinates
135
135
  );
136
- return s.push(s[0]), Te([s], n);
136
+ return a.push(a[0]), Te([a], n);
137
137
  }
138
138
  function p(e, t) {
139
139
  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;
@@ -144,28 +144,28 @@ function U(e, t) {
144
144
  });
145
145
  }
146
146
  function J(e, t, r, o = !1) {
147
- const n = o ? r.style || r.getStyle(e, t) : void 0, s = o ? 999 : -1;
148
- n && typeof n.setZIndex == "function" && n.setZIndex(s), t.setStyle(n);
147
+ const n = o ? r.style || r.getStyle(e, t) : void 0, a = o ? 999 : -1;
148
+ n && typeof n.setZIndex == "function" && n.setZIndex(a), t.setStyle(n);
149
149
  }
150
150
  function Re(e, t, r) {
151
151
  if (!t) return;
152
152
  const o = r.time || 300;
153
- let n = Date.now(), s = !1, a = 0;
153
+ let n = Date.now(), a = !1, s = 0;
154
154
  t.running = !0;
155
155
  function c() {
156
156
  if (!t.running) return;
157
157
  const i = Date.now();
158
- i - n >= o && (s = !s, n = i, J(e, t, r, s), t.changed()), a = requestAnimationFrame(c);
158
+ i - n >= o && (a = !a, n = i, J(e, t, r, a), t.changed()), s = requestAnimationFrame(c);
159
159
  }
160
160
  c(), t.clearFlash = () => {
161
- t.running = !1, cancelAnimationFrame(a), t.setStyle(void 0);
161
+ t.running = !1, cancelAnimationFrame(s), t.setStyle(void 0);
162
162
  };
163
163
  }
164
164
  function Oe(e, t, r) {
165
- var a, c;
165
+ var s, c;
166
166
  if (!r) return;
167
167
  let o = p(r);
168
- const n = (c = (a = Q(e, t)) == null ? void 0 : a.getFeatures) == null ? void 0 : c.call(a);
168
+ const n = (c = (s = Q(e, t)) == null ? void 0 : s.getFeatures) == null ? void 0 : c.call(s);
169
169
  return n ? n.find(function(i) {
170
170
  const l = i.getGeometry();
171
171
  return l && l instanceof ge && typeof l.intersectsCoordinate == "function" ? l.intersectsCoordinate(o) : !1;
@@ -174,9 +174,9 @@ function Oe(e, t, r) {
174
174
  function ze(e, t, r) {
175
175
  const o = [];
176
176
  let n;
177
- const s = r.type || "Point";
177
+ const a = r.type || "Point";
178
178
  t.forEach((c) => {
179
- switch (s) {
179
+ switch (a) {
180
180
  case "Point":
181
181
  n = Ne(c);
182
182
  break;
@@ -200,8 +200,8 @@ function ze(e, t, r) {
200
200
  });
201
201
  i.set("layerName", e), o.push(i);
202
202
  });
203
- const a = new M();
204
- return o.length > 0 && a.addFeatures(o), a;
203
+ const s = new M();
204
+ return o.length > 0 && s.addFeatures(o), s;
205
205
  }
206
206
  function je(e, t) {
207
207
  return t.cqlFilter && (t.cqlFilter ? t.CQL_FILTER += ` and ${t.cqlFilter}` : t.CQL_FILTER = t.cqlFilter), new N({
@@ -248,7 +248,7 @@ function Ve() {
248
248
  });
249
249
  }
250
250
  function Ge(e, t = {}) {
251
- const r = t.token || "dadcbbdb5206b626a29ca739686b3087", o = t.baseType || "img", n = t.noteType || "cia", s = new j({
251
+ const r = t.token || "dadcbbdb5206b626a29ca739686b3087", o = t.baseType || "img", n = t.noteType || "cia", a = new j({
252
252
  className: "tdt-base-layer",
253
253
  source: new G({
254
254
  url: `http://t0.tianditu.com/DataServer?T=${o}_w&x={x}&y={y}&l={z}&tk=${r}`,
@@ -257,8 +257,8 @@ function Ge(e, t = {}) {
257
257
  }),
258
258
  zIndex: t.zIndex || 1
259
259
  });
260
- s.set("name", "tdt-base-layer");
261
- const a = new j({
260
+ a.set("name", "tdt-base-layer");
261
+ const s = new j({
262
262
  className: "tdt-base-layer",
263
263
  source: new G({
264
264
  url: `http://t0.tianditu.com/DataServer?T=${n}_w&x={x}&y={y}&l={z}&tk=${r}`,
@@ -267,34 +267,34 @@ function Ge(e, t = {}) {
267
267
  }),
268
268
  zIndex: t.zIndex ? t.zIndex + 1 : 2
269
269
  });
270
- return a.set("name", "tdt-baseNote-layer"), e.addLayer(s), e.addLayer(a), s;
270
+ return s.set("name", "tdt-baseNote-layer"), e.addLayer(a), e.addLayer(s), a;
271
271
  }
272
272
  function X(e, t, r, o) {
273
273
  (!o || !o.type) && (o = Object.assign({}, r, o));
274
274
  const n = o.type || "Point";
275
- let s;
275
+ let a;
276
276
  switch (n) {
277
277
  case "GeoJSON":
278
- s = $e(t, r, e, o);
278
+ a = $e(t, r, e, o);
279
279
  break;
280
280
  case "Wms":
281
- s = De(t, e, o);
281
+ a = De(t, e, o);
282
282
  break;
283
283
  case "Point":
284
284
  case "LineString":
285
285
  case "MultiLineString":
286
286
  case "Polygon":
287
287
  case "MultiPolygon":
288
- s = Ue(t, r, e, o);
288
+ a = Ue(t, r, e, o);
289
289
  break;
290
290
  case "Circle":
291
- s = We(t, r, e, o);
291
+ a = We(t, r, e, o);
292
292
  break;
293
293
  case "Overlay":
294
- s = He(t, e, o);
294
+ a = He(t, e, o);
295
295
  break;
296
296
  }
297
- return s;
297
+ return a;
298
298
  }
299
299
  function qe(e, t) {
300
300
  Array.isArray(t) ? t.forEach((r) => {
@@ -307,14 +307,14 @@ function $e(e, t, r, o) {
307
307
  dataProjection: "EPSG:4326",
308
308
  featureProjection: "EPSG:4326"
309
309
  // 或 'EPSG:3857',看你的地图
310
- }), s = new M();
311
- s.addFeatures(n);
312
- const a = new E({
313
- source: s,
310
+ }), a = new M();
311
+ a.addFeatures(n);
312
+ const s = new E({
313
+ source: a,
314
314
  style: A(e, o),
315
315
  zIndex: o.zIndex || 10
316
316
  });
317
- return a.set("name", e), a.set("type", "webgl"), r.addLayer(a), a;
317
+ return s.set("name", e), s.set("type", "webgl"), r.addLayer(s), s;
318
318
  }
319
319
  function De(e, t, r) {
320
320
  const o = new j({
@@ -334,11 +334,11 @@ function Ue(e, t, r, o) {
334
334
  return n.set("name", e), n.set("type", "webgl"), r.addLayer(n), n;
335
335
  }
336
336
  function We(e, t, r, o) {
337
- const n = p(t), s = ke(n, o.radius, { steps: 300, units: "meters" }), a = new I().readFeature(s, {
337
+ const n = p(t), a = ke(n, o.radius, { steps: 300, units: "meters" }), s = new I().readFeature(a, {
338
338
  dataProjection: "EPSG:4326",
339
339
  featureProjection: "EPSG:4490"
340
340
  }), c = new M({ wrapX: !1 });
341
- c.addFeature(a);
341
+ c.addFeature(s);
342
342
  const i = new E({
343
343
  source: c,
344
344
  style: A(e, o),
@@ -463,7 +463,7 @@ function ot(e, t) {
463
463
  }), Ye(t);
464
464
  }
465
465
  let F = null;
466
- function st(e, t = {}) {
466
+ function at(e, t = {}) {
467
467
  const r = new I();
468
468
  F = new Ee({
469
469
  condition: ve,
@@ -513,7 +513,7 @@ function st(e, t = {}) {
513
513
  }));
514
514
  });
515
515
  e.on("singleclick", n);
516
- const s = /* @__PURE__ */ new Set();
516
+ const a = /* @__PURE__ */ new Set();
517
517
  F.on("select", (c) => {
518
518
  const i = o.getArray();
519
519
  if (i.length > 0) {
@@ -524,24 +524,24 @@ function st(e, t = {}) {
524
524
  layer: m.get("wms_layer_source") || F.getLayer(m),
525
525
  event: m.get("wms_event_source") || c
526
526
  }));
527
- a(l);
527
+ s(l);
528
528
  } else
529
- a(null);
529
+ s(null);
530
530
  });
531
- const a = (c) => s.forEach((i) => i(c));
531
+ const s = (c) => a.forEach((i) => i(c));
532
532
  return {
533
- onSelect: (c) => (s.add(c), () => s.delete(c)),
533
+ onSelect: (c) => (a.add(c), () => a.delete(c)),
534
534
  clear: () => {
535
- s.clear(), o.clear();
535
+ a.clear(), o.clear();
536
536
  },
537
537
  destroy: () => {
538
- e.removeInteraction(F), e.un("singleclick", n), s.clear();
538
+ e.removeInteraction(F), e.un("singleclick", n), a.clear();
539
539
  }
540
540
  };
541
541
  }
542
- function at(e, t = {}) {
542
+ function st(e, t = {}) {
543
543
  var x;
544
- const r = new I(), o = (x = t.debounceTime) != null ? x : 200, n = new M(), s = new E({
544
+ const r = new I(), o = (x = t.debounceTime) != null ? x : 200, n = new M(), a = new E({
545
545
  source: n,
546
546
  map: e,
547
547
  style: t.style,
@@ -551,11 +551,11 @@ function at(e, t = {}) {
551
551
  properties: { title: "JG_HOVER_LAYER" }
552
552
  // 标记一下,防止自己拾取自己
553
553
  });
554
- let a = null, c = null;
554
+ let s = null, c = null;
555
555
  const i = /* @__PURE__ */ new Set(), l = (u, w, h) => {
556
556
  const f = u[0];
557
- if (a !== f)
558
- 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) {
557
+ if (s !== f)
558
+ if (s = f, n.clear(), f ? (n.addFeature(f), t.cursor !== !1 && (e.getTargetElement().style.cursor = "pointer")) : t.cursor !== !1 && (e.getTargetElement().style.cursor = ""), f) {
559
559
  const L = {
560
560
  feature: f,
561
561
  layer: w,
@@ -570,9 +570,9 @@ function at(e, t = {}) {
570
570
  const w = u.pixel, h = u.coordinate;
571
571
  let f = !1;
572
572
  if (e.forEachFeatureAtPixel(w, (d, y) => {
573
- f || y !== s && (t.layers && !t.layers.includes(y) || (f = !0, c && clearTimeout(c), l([d], y, h)));
573
+ f || y !== a && (t.layers && !t.layers.includes(y) || (f = !0, c && clearTimeout(c), l([d], y, h)));
574
574
  }), f) return;
575
- a && (a = null, n.clear(), e.getTargetElement().style.cursor = "", i.forEach((d) => d(null))), c && clearTimeout(c);
575
+ s && (s = null, n.clear(), e.getTargetElement().style.cursor = "", i.forEach((d) => d(null))), c && clearTimeout(c);
576
576
  const b = (t.layers || e.getLayers().getArray()).filter((d) => {
577
577
  const y = d.getSource();
578
578
  return d.getVisible() && (y instanceof N || y instanceof W);
@@ -600,10 +600,10 @@ function at(e, t = {}) {
600
600
  return e.on("pointermove", m), {
601
601
  onHover: (u) => (i.add(u), () => i.delete(u)),
602
602
  clear: () => {
603
- n.clear(), a = null;
603
+ n.clear(), s = null;
604
604
  },
605
605
  destroy: () => {
606
- e.un("pointermove", m), e.removeLayer(s), i.clear(), c && clearTimeout(c);
606
+ e.un("pointermove", m), e.removeLayer(a), i.clear(), c && clearTimeout(c);
607
607
  }
608
608
  };
609
609
  }
@@ -614,27 +614,27 @@ const St = (e, t) => {
614
614
  targetId: e,
615
615
  instance: r,
616
616
  // 暴露原始实例以备不时之需
617
- addMarker: (n, s, a) => et(r, n, s, a),
618
- createLayer: (n, s, a) => X(r, n, s, a),
619
- createBlankLayer: (n, s) => Je(r, n, s),
620
- visibleLayer: (n, s) => Qe(r, n, s),
617
+ addMarker: (n, a, s) => et(r, n, a, s),
618
+ createLayer: (n, a, s) => X(r, n, a, s),
619
+ createBlankLayer: (n, a) => Je(r, n, a),
620
+ visibleLayer: (n, a) => Qe(r, n, a),
621
621
  removeLayer: (n) => qe(r, n),
622
622
  getLonLat: (n) => p(n),
623
623
  getLayerByName: (n) => Z(r, n),
624
624
  getSourceByName: (n) => Q(r, n),
625
- useSelect: (n) => st(r, n),
626
- useHover: (n) => at(r, n),
627
- queryFeature: (n, s) => Oe(r, n, s),
628
- lightFeature: (n, s, a, c) => J(n, s, a, c),
629
- flashFeature: (n, s, a) => Re(n, s, a),
630
- flyTo: (n, s) => ee(r, n, s),
625
+ createSelect: (n) => at(r, n),
626
+ createHover: (n) => st(r, n),
627
+ queryFeature: (n, a) => Oe(r, n, a),
628
+ lightFeature: (n, a, s, c) => J(n, a, s, c),
629
+ flashFeature: (n, a, s) => Re(n, a, s),
630
+ flyTo: (n, a) => ee(r, n, a),
631
631
  flyToByExtent: (n) => te(r, n),
632
- flyToByFeature: (n, s) => tt(r, n, s),
632
+ flyToByFeature: (n, a) => tt(r, n, a),
633
633
  getProjection: () => rt(r),
634
634
  getZoom: () => re(r),
635
635
  setZoom: (n) => nt(r, n),
636
636
  getMapContext: (n) => Y(n),
637
- onMapReady: (n, s) => K(n, s),
637
+ onMapReady: (n, a) => K(n, a),
638
638
  destroyMap: () => ot(r, e)
639
639
  };
640
640
  return Xe(e, o), o;
@@ -27,7 +27,7 @@ export interface UseHoverResult {
27
27
  clear: () => void;
28
28
  destroy: () => void;
29
29
  }
30
- export declare function useSelect(map: Map, options?: SelectOptions): UseSelectResult;
30
+ export declare function createSelect(map: Map, options?: SelectOptions): UseSelectResult;
31
31
  export interface HoverOptions {
32
32
  /** 监听图层 */
33
33
  layers?: Layer<any, any>[];
@@ -48,7 +48,7 @@ export interface HoverEvent {
48
48
  properties: any;
49
49
  coordinate: [number, number];
50
50
  }
51
- export declare function useHover(map: Map, options?: HoverOptions): {
51
+ export declare function createHover(map: Map, options?: HoverOptions): {
52
52
  onHover: (cb: (res: HoverEvent[] | null) => void) => () => boolean;
53
53
  clear: () => void;
54
54
  destroy: () => void;
@@ -76,8 +76,8 @@ export interface MapContext {
76
76
  lightFeature: (layerName: string, feature: FeatureLike, options: HighLightOptions, zoomFlag: boolean) => void;
77
77
  flashFeature: (layerName: string, feature: FeatureLike & customFeature, options: FlashOptions) => void;
78
78
  queryFeature: (layerName: string, properties: any) => FeatureLike;
79
- useSelect: (options: SelectOptions) => UseSelectResult;
80
- useHover: (options: HoverOptions) => UseHoverResult;
79
+ createSelect: (options: SelectOptions) => UseSelectResult;
80
+ createHover: (options: HoverOptions) => UseHoverResult;
81
81
  flyTo: (coordinate: [number, number], options: flyOptions) => Promise<boolean>;
82
82
  flyToByExtent: (options: flyOptions) => Promise<boolean>;
83
83
  flyToByFeature: (feature: Feature, options: flyOptions) => Promise<boolean>;
package/dist/3d/core.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Coordinates, flyOptions } from './types';
1
+ import { Coordinates, flyOptions, optionsMap } from './types';
2
2
  import * as Cesium from 'cesium';
3
3
  /**
4
4
  * 创建Viewer
@@ -14,7 +14,7 @@ export declare function createViewer(el: string, options?: any): Cesium.Viewer;
14
14
  * @param points 数据
15
15
  * @returns {void}
16
16
  */
17
- export declare function addMarker(viewer: Cesium.Viewer, layerName: string, points: any[], options: any): void;
17
+ export declare function addMarker(viewer: Cesium.Viewer, layerName: string, points: any[], options: optionsMap['Point']): void;
18
18
  /**
19
19
  * 定位
20
20
  * @param map 地图实例