UNPKG

gisviewer-vue3-arcgis

Version:

在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:

2 lines (1 loc) 4.21 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("@arcgis/core/geometry"),d=require("@arcgis/core/geometry/geometryEngine"),u=require("@arcgis/core/Graphic"),v=require("@arcgis/core/layers/GraphicsLayer");function f(a){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const t in a)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(a,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>a[t]})}}return e.default=a,Object.freeze(e)}const h=f(d);class g{constructor(e,t){this.flashingMap=new Map,this.defaultPointSymbol={type:"simple-marker",style:"circle",color:"yellow",size:10},this.view=e,this.overlayLayer=new v({...t}),this.view.map.layers.add(this.overlayLayer)}addMask(e){this.removeMask();const t=e.maskColor||[100,100,100,.8],r=e.maskSize||100;let i=new c.Polygon({rings:[e.geometry.rings[0]]});const s=i.centroid,o=h.geodesicBuffer(s,r,"kilometers");let l=h.difference(o,i);if(e.geometry.rings.length>1)for(let y=1;y<e.geometry.rings.length;y++)i=new c.Polygon({rings:[e.geometry.rings[y]]}),l=h.difference(l,i);const n=new u({geometry:l,symbol:{type:"simple-fill",color:t,outline:{style:"long-dash",color:"white"}},attributes:{type:"mask"}});this.overlayLayer.add(n)}removeMask(){const e=this.overlayLayer.graphics.find(t=>t.getAttribute("type")==="mask");e&&this.overlayLayer.remove(e)}addOverlays(e){let t=0,r=0;e.defaultVisible==null&&(e.defaultVisible=!0);for(const i of e.overlays){i.properties?(i.properties.type||(i.properties.type=e.type),i.properties.id||(i.properties.id=i.id)):i.properties={type:e.type,id:i.id};const s=i.symbol||e.defaultSymbol||this.defaultPointSymbol,o=i.visible==null?e.defaultVisible:i.visible;this.addOverlay(i,s,i.properties,o).message==="add"?t++:r++}return{status:0,message:`新增${t}, 更新${r}`}}removeOverlaysByType(e){const t=this.overlayLayer.graphics.filter(r=>{const i=r.getAttribute("type");return Array.isArray(e)?e.includes(i):i===e});return t.forEach(r=>this.stopFlash({id:r.getAttribute("id")})),this.overlayLayer.graphics.removeMany(t),{status:0,message:`删除${t.length}`}}removeOverlaysById(e){const t=this.overlayLayer.graphics.filter(r=>{const i=r.getAttribute("id");return Array.isArray(e)?e.includes(i):i===e});return t.forEach(r=>this.stopFlash({id:r.getAttribute("id")})),this.overlayLayer.graphics.removeMany(t),{status:0,message:`删除${t.length}`}}isShowOverlaysByIds(e,t){this.overlayLayer.graphics.map(r=>{const i=r.getAttribute("id");e.includes(i)?r.visible=t:r.visible=!t})}showAllOverlays(){this.overlayLayer.graphics.forEach(e=>{e.visible=!0})}removeAllOverlays(){this.stopFlash();const e=this.overlayLayer.graphics.length;return this.overlayLayer.removeAll(),{status:0,message:`删除${e}`}}destroy(){this.flashingMap.forEach((e,t)=>{this.stopFlash({id:t})}),this.view.map.remove(this.overlayLayer),this.overlayLayer.destroy()}removeGraphics(e){Array.isArray(e)||(e=[e]),this.overlayLayer.graphics.removeMany(e)}hideLayer(){this.overlayLayer.visible=!1}showLayer(){this.overlayLayer.visible=!0}async flashOverlay(e){const t=this.overlayLayer.graphics.find(n=>n.getAttribute("id")===e.id);if(!t)return;this.stopFlash(e);const r=e.duration==null,i=r?0:Math.max(e.duration,.1)*1e3,s=400,o=t.visible,l=()=>{t.visible=!0;const n=setInterval(()=>{t.visible=!t.visible},s),y=r?void 0:setTimeout(()=>{this.stopFlash(e)},i);this.flashingMap.set(e.id,{timer:n,timeout:y,originalVisible:o})};e.needZoom===!0&&await this.view.goTo(t),l()}stopFlash(e){const t=e==null?void 0:e.id;if(t){const r=this.flashingMap.get(t);if(!r)return;clearInterval(r.timer),r.timeout&&clearTimeout(r.timeout);const i=this.overlayLayer.graphics.find(s=>s.getAttribute("id")===t);i&&(i.visible=r.originalVisible),this.flashingMap.delete(t)}else this.flashingMap.forEach((r,i)=>{clearInterval(r.timer),r.timeout&&clearTimeout(r.timeout)}),this.flashingMap.clear()}addOverlay(e,t,r,i){let s,o=!0;return e.id&&(s=this.overlayLayer.graphics.find(l=>l.getAttribute("id")===e.id)),s?s.visible=i:(s=new u({visible:i}),this.overlayLayer.add(s),o=!1),s.geometry=e.geometry,s.symbol=t,s.attributes=r,{status:0,message:o?"add":"update"}}}exports.default=g;