import * as mars3d from 'mars3d' import Vue from 'vue' import {decoration1} from "@jiaminghi/data-view"; /** * 三维管线 * @param index gis图层编号 * @param color 管线颜色 * @param name 图层名称 * @param radius 管径 * @returns {ArcGisWfsLayer} */ export function polylineVolumeC(index, color, name, radius, height='', where='1<>1', minimumLevel) { const wfsLayer3D = new mars3d.layer.ArcGisWfsLayer({ enablePickFeatures: false, id: index, name, where, url: Vue.prototype.baseConfig.arcgisUrl + index, minimumLevel, maximumLevel: 30, // symbol: function(attr, style, feature) { // console.log(attr, style, feature) // feature.geometry.coordinates[0].push(-1.5) // feature.geometry.coordinates[1].push(-1.5) // }, // graphicOptions : { // color: color, // shape: 'pipeline', // radius: radius // }, symbol: { type: 'polylineVolumeC', styleOptions: { color: color, shape: 'pipeline', radius: 0.5, setHeight: 30, }, // callback: function(attr, styleOpt) { // return { setHeight: 20, height: 20 } // } }, popup: 'all' }).bindPopup(function(event) { if(!event.graphic.attr.起始埋深.toString().endsWith('(m)')) { event.graphic.attr.起始埋深 += '(m)' event.graphic.attr.终止埋深 += '(m)' if(event.graphic.attr.hasOwnProperty('起始管顶高')) { event.graphic.attr.起始管顶高 += '(mm)' event.graphic.attr.终止管顶高 += '(mm)' event.graphic.attr.起始地面高 += '(mm)' event.graphic.attr.终止地面高 += '(mm)' } else if(event.graphic.attr.hasOwnProperty('起始管底')) { event.graphic.attr.起始管底 += '(mm)' event.graphic.attr.终止管底 += '(mm)' event.graphic.attr.起始地面 += '(mm)' event.graphic.attr.终止地面 += '(mm)' } } return mars3d.Util.getTemplateHtml({ template: 'all', attr: event.graphic.attr }) }) window.map.addLayer(wfsLayer3D) return wfsLayer3D } // 章丘三维管线 export function polylineVolumeP(index, color, name, radius, height='', where='1<>1') { const wfsLayer3D = new mars3d.layer.ArcGisWfsLayer({ enablePickFeatures: false, name, where, url: Vue.prototype.baseConfig.arcgisUrl + index, symbol: { type: 'polylineVolumeP', styleOptions: { color: color, shape: 'pipeline', radius: radius }, callback: function(attr, styleOpt) { if(height === ''){ var val = { attr }.attr height = -(Number(val.起始埋深) + Number(val.终止埋深)) / 2 } return { setHeight: height, height } } }, popup: 'all' }).bindPopup(function(event) { if(!event.graphic.attr.起始埋深.toString().endsWith('(m)')) { event.graphic.attr.起始埋深 += '(m)' event.graphic.attr.终止埋深 += '(m)' if(event.graphic.attr.hasOwnProperty('起始管顶高')) { event.graphic.attr.起始管顶高 += '(mm)' event.graphic.attr.终止管顶高 += '(mm)' event.graphic.attr.起始地面高 += '(mm)' event.graphic.attr.终止地面高 += '(mm)' } else if(event.graphic.attr.hasOwnProperty('起始管底')) { event.graphic.attr.起始管底 += '(mm)' event.graphic.attr.终止管底 += '(mm)' event.graphic.attr.起始地面 += '(mm)' event.graphic.attr.终止地面 += '(mm)' } } return mars3d.Util.getTemplateHtml({ template: 'all', attr: event.graphic.attr }) }) window.map.addLayer(wfsLayer3D) return wfsLayer3D } /** * 二维管线 * @param index gis图层编号 * @param color 管线颜色 * @param name 图层名称 * @param width 宽度 * @returns {ArcGisWfsLayer} */ export function polylineC(index, color, name, width, where='1<>1') { const wfsLayer = new mars3d.layer.ArcGisWfsLayer({ enablePickFeatures: false, name, where, url: Vue.prototype.baseConfig.arcgisUrl + index, // maximumLevel: 19, symbol: { type: 'polylineC', styleOptions: { color: color, width: width, hasShadows: false } }, popup: 'all' }).bindPopup(function(event) { if(!event.graphic.attr.起始埋深.toString().endsWith('(m)')) { event.graphic.attr.起始埋深 += '(m)' event.graphic.attr.终止埋深 += '(m)' event.graphic.attr.起始管顶高 += '(mm)' event.graphic.attr.终止管顶高 += '(mm)' event.graphic.attr.起始地面高 += '(mm)' event.graphic.attr.终止地面高 += '(mm)' } return mars3d.Util.getTemplateHtml({ template: 'all', attr: event.graphic.attr }) }) window.map.addLayer(wfsLayer) return wfsLayer } /** * 添加三位模型modelP;赣州井 */ export function modelP(index, name, model = '', scale, where) { const wfsLayer3D = new mars3d.layer.ArcGisWfsLayer({ // enablePickFeatures: false, name, where, url: Vue.prototype.baseConfig.arcgisUrl + index, minimumLevel: 19, maximumLevel: 30, symbol: { type: 'modelP', styleOptions: { scale, url: model, setHeight: 10, }, // callback: function(attr, styleOpt) { // return { setHeight: 20, height: 20 } // } // callback: function(attr, styleOpt) { // if(height === ''){ // var val = { attr }.attr // height = -(Number(val.起始埋深) + Number(val.终止埋深)) / 2 // } // return { setHeight: height, height } // } }, popup: 'all' }).bindPopup(function(event) { return mars3d.Util.getTemplateHtml({ template: 'all', attr: event.graphic.attr }) }) window.map.addLayer(wfsLayer3D) return wfsLayer3D } /** * 添加楼宇 */ export function building() { const wfsLayer = new mars3d.layer.ArcGisWfsLayer({ name: '建筑物面矢量图层', url: '', // minimumLevel: changeLevel, symbol: { type: 'polygonC', styleOptions: { color: 'rgb(52,125,246)', outline: false, opacity: 0.8 }, callback: function(attr, styleOpt) { var val = { attr }.attr console.log(attr) } }, buildings: { height: 100 } }) window.map.addLayer(wfsLayer) } /** * 添加原始样式,赣州二维管线加速 */ export function ArcGisLayer(url, index, name) { const arcGisLayer = new mars3d.layer.ArcGisLayer({ name, url, layers: index, popup: "all" }) window.map.addLayer(arcGisLayer) return arcGisLayer }