gisviewer-vue3-arcgis
Version:
在应用中引入私服的包, 项目根目录下 新建文件 .npmrc 在 .npmrc 中对包源进行配置:
2 lines (1 loc) • 1.82 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("ol/Feature"),h=require("ol/geom"),S=require("ol/layer/Vector"),g=require("ol/source/Vector"),c=require("ol/style");class y{constructor(e){this.map=e,this.roadSource=new g,this.roadLayer=new S({source:this.roadSource}),this.roadLayer.set("id","sub-district-road-layer"),this.map.addLayer(this.roadLayer)}async addSubDistricts(e){this.roadSource.clear();const i=[];e.forEach(r=>{i.push(...r.roadConnections),r.subDistricts.forEach(o=>{i.push(...o.roadConnections)})}),i.forEach(r=>{const o=r.color||[111,100,255],n=`rgb(${o[0]}, ${o[1]}, ${o[2]})`,t=new u({geometry:new h.LineString(r.coordinates)});t.setStyle(new c.Style({stroke:new c.Stroke({color:n,width:2})})),t.setId(r.id),t.set("type","sub-district-road"),t.set("subDistrictId",r.subDistrictId),t.set("districtId",r.districtId),t.set("originalColor",n),this.roadSource.addFeature(t)})}setVisible(e){this.roadLayer.setVisible(e)}clear(){this.roadSource.clear()}highlight(e){var n;const i=e.id,r=e.type==="district"?"districtId":"subDistrictId",o=[];if(this.roadSource.getFeatures().forEach(t=>{if(t.get(r)===i){const d=t.get("originalColor");d&&t.setStyle(new c.Style({stroke:new c.Stroke({color:d,width:2})})),o.push(t)}else t.setStyle(new c.Style({}))}),o.length>0){const t=(n=o[0].getGeometry())==null?void 0:n.getExtent();if(t){const s=[...t];return o.slice(1).forEach(d=>{var l;const a=(l=d.getGeometry())==null?void 0:l.getExtent();a&&(s[0]=Math.min(s[0],a[0]),s[1]=Math.min(s[1],a[1]),s[2]=Math.max(s[2],a[2]),s[3]=Math.max(s[3],a[3]))}),s}}return null}clearHighlight(){this.roadSource.getFeatures().forEach(e=>{const i=e.get("originalColor");i&&e.setStyle(new c.Style({stroke:new c.Stroke({color:i,width:2})}))})}}exports.default=y;