gisviewer-vue3-arcgis
Version:
在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:
2 lines (1 loc) • 5.71 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("@arcgis/core/Graphic"),w=require("@arcgis/core/core/promiseUtils"),f=require("@arcgis/core/geometry"),S=require("@arcgis/core/geometry/SpatialReference"),G=require("@arcgis/core/geometry/geometryEngineAsync"),d=require("@arcgis/core/layers/FeatureLayer"),m=require("@arcgis/core/layers/GraphicsLayer"),R=require("@arcgis/core/layers/support/FeatureEffect"),v=require("@arcgis/core/layers/support/FeatureFilter"),g=require("@arcgis/core/renderers/SimpleRenderer"),q=require("@arcgis/core/rest/support/Query"),y=require("@arcgis/core/symbols"),F=require("@arcgis/core/widgets/Sketch/SketchViewModel"),P=require("../../../stores/index.js"),A=require("../common-utils.js");function b(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const L=b(w),p=b(G);class M{constructor(e){this.geometryUnit="meters",this.view=e,this.pointLayer=new m,this.bufferAreaLayer=new m({blendMode:"color-burn"}),this.view.map.layers.addMany([this.bufferAreaLayer,this.pointLayer]);const t=L.debounce(async r=>{const i=await this.calculateBuffer(r);this.updateLayerFilter(i)});this.sketchViewModel=new F({view:e,layer:this.pointLayer}),this.sketchViewModel.on("update",r=>{var l,o;((o=(l=r.toolEventInfo)==null?void 0:l.mover)==null?void 0:o.attributes.type)==="edge"&&(r.toolEventInfo.type==="move-start"?this.centerGeometryAtStart=this.centerGraphic.geometry:this.centerGraphic.geometry=this.centerGeometryAtStart);const i=this.centerGraphic.geometry,a=this.edgeGraphic.geometry,c=[[i.x,i.y],[a.x,a.y]];t(c).catch(h=>{if(!L.isAbortError(h))throw h})})}async initializeSearch(e){if(this.laneLayer)this.laneLayer.visible=!0,this.stopLineLayer.visible=!0;else{const o=await this.loadLaneAndStopLineLayer();if(o.status!==0)return o}const{crossId:t,crossCenter:r}=e,i=new f.Point({longitude:r[0],latitude:r[1]});this.view.goTo({target:i,zoom:18},{duration:2e3}),this.centerGraphic=new u({geometry:i,symbol:new y.SimpleMarkerSymbol({style:"circle",color:[0,255,255,.5],size:10}),attributes:{crossId:t,type:"center"}});const a=A.default.destinationWithPoint(i,90,e.bufferRadius||70);this.edgeGraphic=new u({geometry:a,symbol:new y.SimpleMarkerSymbol({style:"circle",color:[0,255,255,.5],size:10}),attributes:{crossId:t,type:"edge"}});const c=new f.Polyline({paths:[[[i.x,i.y],[a.x,a.y]]]});this.radiusLineGraphic=new u({geometry:c,symbol:new y.SimpleLineSymbol({color:[0,255,255],width:2})}),this.pointLayer.addMany([this.centerGraphic,this.edgeGraphic,this.radiusLineGraphic]);const l=await p.geodesicBuffer(i,e.bufferRadius||70,this.geometryUnit);return this.bufferGraphic=new u({geometry:l,symbol:new y.SimpleFillSymbol({color:[150,150,150],outline:{color:"#FFEB00",width:"3px"}})}),this.bufferAreaLayer.add(this.bufferGraphic),this.sketchViewModel.update([this.edgeGraphic,this.centerGraphic],{tool:"move"}),{status:0,message:"初始化成功"}}async getCurrentSearchResult(){const e=new q;e.relationParameter="intersects",e.geometry=this.bufferGraphic.geometry,e.returnGeometry=!0,e.outSpatialReference=new S({wkid:4326}),e.outFields=["*"];const t=(await this.laneLayer.queryFeatures(e)).features,r=(await this.stopLineLayer.queryFeatures(e)).features;return{lanes:t,stopLines:r}}clearResult(){this.sketchViewModel.complete(),this.pointLayer.removeAll(),this.bufferAreaLayer.removeAll(),this.laneLayer.visible=!1,this.stopLineLayer.visible=!1}async calculateBuffer(e){this.radiusLineGraphic.geometry=new f.Polyline({paths:[e],spatialReference:this.view.spatialReference});const t=await p.geodesicLength(this.radiusLineGraphic.geometry,this.geometryUnit),r=await p.geodesicBuffer(this.centerGraphic.geometry,t,this.geometryUnit);return this.bufferGraphic.geometry=r,r}async loadLaneAndStopLineLayer(){var o,h;const e=P.default.useAppDataStore,t=JSON.parse(JSON.stringify(e.mapConfig));if(!((o=t.roadConfigTool)!=null&&o.initLanePolygonLayer))return{status:-1,message:"roadConfigTool.initLanePolygonLayer未配置"};if(!((h=t.roadConfigTool)!=null&&h.initStopLineLayer))return{status:-1,message:"roadConfigTool.initStopLineLayer"};const r=`${t.assetsRoot}${t.roadConfigTool.initLanePolygonLayer}`;let i;try{i=await(await fetch(r)).json()}catch(s){return{status:-2,message:`${r}读取失败`,result:s.message}}const a=i.features.filter(s=>s.attributes.RoadSecID!=="").map(s=>u.fromJSON(s));this.laneLayer=new d({objectIdField:"FID",spatialReference:i.spatialReference,geometryType:"polygon",source:a,fields:[{name:"RoadSecID",alias:"RoadSecID",type:"string"}],renderer:new g({symbol:new y.SimpleFillSymbol({color:[255,0,0,.3],outline:{color:"white"}})})}),this.view.map.layers.add(this.laneLayer);const c=`${t.assetsRoot}${t.roadConfigTool.initStopLineLayer}`;try{i=await(await fetch(c)).json()}catch(s){return{status:-2,message:`${c}读取失败`,result:s.message}}const l=i.features.filter(s=>s.attributes.RoadSecID!=="").map(s=>u.fromJSON(s));return this.stopLineLayer=new d({objectIdField:"FID",spatialReference:i.spatialReference,geometryType:"polyline",source:l,fields:[{name:"RoadSecID",alias:"RoadSecID",type:"string"}],renderer:new g({symbol:new y.SimpleLineSymbol({color:"red",width:4,cap:"butt",join:"miter"})})}),this.view.map.layers.add(this.stopLineLayer),{status:0,message:"ok"}}updateLayerFilter(e){const t=new v({geometry:e,spatialRelationship:"intersects"}),r=new R({filter:t,excludedEffect:"opacity(0%)"});this.laneLayer.featureEffect=r,this.stopLineLayer.featureEffect=r}}exports.default=M;