|  | @@ -0,0 +1,1136 @@
 | 
											
												
													
														|  | 
 |  | +import {
 | 
											
												
													
														|  | 
 |  | +	Store
 | 
											
												
													
														|  | 
 |  | +} from '@/store/index'
 | 
											
												
													
														|  | 
 |  | +let store = Store();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +import http from '@/utils/http.js'
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +// import * as jt3dSDK from '/public/jt3dSDK/jt3d.es.js';
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +import map_xzqh_zj from '@/assets/dataFile/xz.json';
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +let jtMap3d = undefined; // 地图对象
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 初始化地图业务,生命周期钩子函数(必须)
 | 
											
												
													
														|  | 
 |  | + * 框架在地图初始化完成后自动调用该函数
 | 
											
												
													
														|  | 
 |  | + * @param  mapInstance 地图对象
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function onMounted(mapInstance) {
 | 
											
												
													
														|  | 
 |  | +	jtMap3d = mapInstance // 记录首次创建的map
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	debugger
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +//所有图层
 | 
											
												
													
														|  | 
 |  | +export function getAllLayers() {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	return new Promise((resolve, reject) => {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//获取地图图集id
 | 
											
												
													
														|  | 
 |  | +		let roleId = store.roleId
 | 
											
												
													
														|  | 
 |  | +		let atlasLayersSqlWhere = '"roleId"' + " = " + roleId + " "
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//获取图集
 | 
											
												
													
														|  | 
 |  | +		http.get('/getTableList', {
 | 
											
												
													
														|  | 
 |  | +			tableName: 'sys_map_atlas_layers', //表名
 | 
											
												
													
														|  | 
 |  | +			sqlWhere: atlasLayersSqlWhere, //查询条件
 | 
											
												
													
														|  | 
 |  | +			orderByField: '' //排序字段
 | 
											
												
													
														|  | 
 |  | +		}).then(res => {
 | 
											
												
													
														|  | 
 |  | +			resolve(res.data)
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	});
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +export function getLayers() {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	return new Promise((resolve, reject) => {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//获取地图图集id
 | 
											
												
													
														|  | 
 |  | +		let roleId = store.roleId
 | 
											
												
													
														|  | 
 |  | +		let atlasLayersSqlWhere = '"roleId"' + " = " + roleId + " and " + '"atlasType"' + "='图层'"
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//获取图集
 | 
											
												
													
														|  | 
 |  | +		http.get('/getTableList', {
 | 
											
												
													
														|  | 
 |  | +			tableName: 'sys_map_atlas_layers', //表名
 | 
											
												
													
														|  | 
 |  | +			sqlWhere: atlasLayersSqlWhere, //查询条件
 | 
											
												
													
														|  | 
 |  | +			orderByField: '' //排序字段
 | 
											
												
													
														|  | 
 |  | +		}).then(res => {
 | 
											
												
													
														|  | 
 |  | +			resolve(res.data)
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	});
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +export function getBaseMaps() {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	return new Promise((resolve, reject) => {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//获取地图图集id
 | 
											
												
													
														|  | 
 |  | +		let roleId = store.roleId
 | 
											
												
													
														|  | 
 |  | +		let atlasLayersSqlWhere = '"roleId"' + " = " + roleId + " and " + '"atlasType"' + "='底图'"
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//获取图集
 | 
											
												
													
														|  | 
 |  | +		http.get('/getTableList', {
 | 
											
												
													
														|  | 
 |  | +			tableName: 'sys_map_atlas_layers', //表名
 | 
											
												
													
														|  | 
 |  | +			sqlWhere: atlasLayersSqlWhere, //查询条件
 | 
											
												
													
														|  | 
 |  | +			orderByField: '' //排序字段
 | 
											
												
													
														|  | 
 |  | +		}).then(res => {
 | 
											
												
													
														|  | 
 |  | +			resolve(res.data)
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	});
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 单击事件
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function clickEntity(jt3d) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	if (jt3d.handlerLeftClick) {
 | 
											
												
													
														|  | 
 |  | +		jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); //移除事件
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	jt3d.handlerLeftClick = new Cesium.ScreenSpaceEventHandler(
 | 
											
												
													
														|  | 
 |  | +		jt3d._viewer.scene.canvas
 | 
											
												
													
														|  | 
 |  | +	);
 | 
											
												
													
														|  | 
 |  | +	//注册大球单机事件
 | 
											
												
													
														|  | 
 |  | +	jt3d.handlerLeftClick.setInputAction(function(e) {
 | 
											
												
													
														|  | 
 |  | +		var pick = jt3d._viewer.scene.pick(e.position); //拾取当前的entity对象
 | 
											
												
													
														|  | 
 |  | +		var cartesian = jt3d._viewer.scene.pickPosition(e.position); //获取当前点坐标
 | 
											
												
													
														|  | 
 |  | +		if (Cesium.defined(cartesian)) {
 | 
											
												
													
														|  | 
 |  | +			//将笛卡尔坐标转换为地理坐标
 | 
											
												
													
														|  | 
 |  | +			let cartographic = Cesium.Cartographic.fromCartesian(cartesian);
 | 
											
												
													
														|  | 
 |  | +			//将弧度转为度的十进制度表示
 | 
											
												
													
														|  | 
 |  | +			let lng = Cesium.Math.toDegrees(cartographic.longitude);
 | 
											
												
													
														|  | 
 |  | +			let lat = Cesium.Math.toDegrees(cartographic.latitude);
 | 
											
												
													
														|  | 
 |  | +			let alt = cartographic.height; //高度
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			initQuery({
 | 
											
												
													
														|  | 
 |  | +				spatialType: '点',
 | 
											
												
													
														|  | 
 |  | +				coordinate: lng + " " + lat,
 | 
											
												
													
														|  | 
 |  | +				buffer: ''
 | 
											
												
													
														|  | 
 |  | +			});
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 设置默认视图-初始化中国区域范围视角
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function setView(jt3d) {
 | 
											
												
													
														|  | 
 |  | +	// jt3d.flytoChina();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	//初始化中国区域范围视角
 | 
											
												
													
														|  | 
 |  | +	jt3d.setViewChina();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	// jt3d.setView({
 | 
											
												
													
														|  | 
 |  | +	// 	longitude: 103.84, //经度
 | 
											
												
													
														|  | 
 |  | +	// 	latitude: 31.15, // 维度
 | 
											
												
													
														|  | 
 |  | +	// 	height: 24000000, // 高度
 | 
											
												
													
														|  | 
 |  | +	// 	heading: 0, // 偏航
 | 
											
												
													
														|  | 
 |  | +	// 	pitch: -90, // 俯仰,人如果在赤道上空,俯仰角为0可见地球。如果在北纬,俯仰角为负才能见地球
 | 
											
												
													
														|  | 
 |  | +	// 	roll: 0.0 // 翻滚
 | 
											
												
													
														|  | 
 |  | +	// });
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 全图-飞行到项目区域范围视角
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function fullMap(jt3d) {
 | 
											
												
													
														|  | 
 |  | +	// 初始化项目区域范围视角
 | 
											
												
													
														|  | 
 |  | +	let optionsS = {
 | 
											
												
													
														|  | 
 |  | +		west: 116.883783, //西
 | 
											
												
													
														|  | 
 |  | +		south: 36.573500, //南
 | 
											
												
													
														|  | 
 |  | +		east: 117.326923, //东
 | 
											
												
													
														|  | 
 |  | +		north: 36.329733, //北
 | 
											
												
													
														|  | 
 |  | +		isRemove: false, //定位完成后是否删除
 | 
											
												
													
														|  | 
 |  | +		duration: 3, //飞行时间
 | 
											
												
													
														|  | 
 |  | +		heading: 0,
 | 
											
												
													
														|  | 
 |  | +		pitch: -90,
 | 
											
												
													
														|  | 
 |  | +		range: 60000
 | 
											
												
													
														|  | 
 |  | +	};
 | 
											
												
													
														|  | 
 |  | +	
 | 
											
												
													
														|  | 
 |  | +	let optionsE = {
 | 
											
												
													
														|  | 
 |  | +		west: 116.883783, //西
 | 
											
												
													
														|  | 
 |  | +		south: 36.573500, //南
 | 
											
												
													
														|  | 
 |  | +		east: 117.326923, //东
 | 
											
												
													
														|  | 
 |  | +		north: 36.329733, //北
 | 
											
												
													
														|  | 
 |  | +		isRemove: true, //定位完成后是否删除
 | 
											
												
													
														|  | 
 |  | +		duration: 3, //飞行时间
 | 
											
												
													
														|  | 
 |  | +		heading: 0,
 | 
											
												
													
														|  | 
 |  | +		pitch: -60,
 | 
											
												
													
														|  | 
 |  | +		range: 60000
 | 
											
												
													
														|  | 
 |  | +	};
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	var fullMapPromise = jt3d.fullMap(optionsS);
 | 
											
												
													
														|  | 
 |  | +	fullMapPromise.then(function(flyPromise) {
 | 
											
												
													
														|  | 
 |  | +		jt3d.fullMap(optionsE);
 | 
											
												
													
														|  | 
 |  | +	});
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 设置天空盒子
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function addSkybox(jt3d) {
 | 
											
												
													
														|  | 
 |  | +	//设置天空盒子,默认蓝天
 | 
											
												
													
														|  | 
 |  | +	let SceneEffects = new jt3dSDK.SceneEffects.SkyBox(window.viewer);
 | 
											
												
													
														|  | 
 |  | +	SceneEffects.setGroundSkyBox();
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 添加镇街边界线——精灵线
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function addBoundaryLine(jt3d) {
 | 
											
												
													
														|  | 
 |  | +	let PolylineObject = new jt3dSDK.PolylineObject(jt3d._viewer);
 | 
											
												
													
														|  | 
 |  | +	PolylineObject.drawPolylineByGeoJson(map_xzqh_zj, {
 | 
											
												
													
														|  | 
 |  | +		width: 5,
 | 
											
												
													
														|  | 
 |  | +		color: '#04FFFF',
 | 
											
												
													
														|  | 
 |  | +		isImageAlpha: true, //用图片自带颜色
 | 
											
												
													
														|  | 
 |  | +		duration: 3000,
 | 
											
												
													
														|  | 
 |  | +		imgUrl: "jt3dSDK/imgs/polylinematerial/spriteline1.png"
 | 
											
												
													
														|  | 
 |  | +	});
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 控制地图服务的显示及隐藏
 | 
											
												
													
														|  | 
 |  | + * @param {Object} viewer
 | 
											
												
													
														|  | 
 |  | + * @param {Object} options 
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function setLayersControl(viewer, options, checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	let layer = new jt3dSDK.layer(viewer);
 | 
											
												
													
														|  | 
 |  | +	var imageryLayers = viewer.imageryLayers;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	//参数集
 | 
											
												
													
														|  | 
 |  | +	let parameterset = options.parameterset;
 | 
											
												
													
														|  | 
 |  | +	if (options.parameterset instanceof Object) {
 | 
											
												
													
														|  | 
 |  | +		parameterset = options.parameterset;
 | 
											
												
													
														|  | 
 |  | +	} else if (options.parameterset != "" && options.parameterset != null && options.parameterset != undefined) {
 | 
											
												
													
														|  | 
 |  | +		parameterset = JSON.parse(options.parameterset);
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	return new Promise((resolve, reject) => {
 | 
											
												
													
														|  | 
 |  | +		switch (options.loadtype) {
 | 
											
												
													
														|  | 
 |  | +			case "DEM": //地形服务(DEM)
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.terrainExaggeration) { //地形夸张系数
 | 
											
												
													
														|  | 
 |  | +							_options.terrainExaggeration = parameterset.terrainExaggeration;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					layer.addTerrain(_options);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeTerrain().then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			case "Cesium3DTileset": //加载3DTileset地图服务--实景
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (window[options.serviceId]) {
 | 
											
												
													
														|  | 
 |  | +						window[options.serviceId].show = true;
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						//设置参数
 | 
											
												
													
														|  | 
 |  | +						let _options = {
 | 
											
												
													
														|  | 
 |  | +							id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +							url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.height) {
 | 
											
												
													
														|  | 
 |  | +								_options.height = parameterset.height;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.alpha) {
 | 
											
												
													
														|  | 
 |  | +								_options.alpha = parameterset.alpha;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						//加载实景
 | 
											
												
													
														|  | 
 |  | +						layer.addCesium3DTileset(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +							window[serviceId].show = true;
 | 
											
												
													
														|  | 
 |  | +							resolve(true);
 | 
											
												
													
														|  | 
 |  | +						});
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					if (window[options.serviceId]) {
 | 
											
												
													
														|  | 
 |  | +						//3DTileset数据量比较大,会报很多cesium错误
 | 
											
												
													
														|  | 
 |  | +						// layer.removeScenePrimitives({
 | 
											
												
													
														|  | 
 |  | +						// 	serviceId: options.serviceId
 | 
											
												
													
														|  | 
 |  | +						// }).then(res => {
 | 
											
												
													
														|  | 
 |  | +						// resolve(true);
 | 
											
												
													
														|  | 
 |  | +						// });
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						window[options.serviceId].show = false;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (window[options.serviceId]) {
 | 
											
												
													
														|  | 
 |  | +						window[options.serviceId].show = true;
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						//设置参数
 | 
											
												
													
														|  | 
 |  | +						let _options = {
 | 
											
												
													
														|  | 
 |  | +							id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +							url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.color) {
 | 
											
												
													
														|  | 
 |  | +								_options.color = parameterset.color;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						//加载白膜
 | 
											
												
													
														|  | 
 |  | +						layer.addCesium3DTilesetBm(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +							window[serviceId].show = true;
 | 
											
												
													
														|  | 
 |  | +							resolve(true);
 | 
											
												
													
														|  | 
 |  | +						});
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					if (window[options.serviceId]) {
 | 
											
												
													
														|  | 
 |  | +						// layer.removeScenePrimitives({
 | 
											
												
													
														|  | 
 |  | +						// 	serviceId: options.serviceId
 | 
											
												
													
														|  | 
 |  | +						// }).then(res => {
 | 
											
												
													
														|  | 
 |  | +						// resolve(true);
 | 
											
												
													
														|  | 
 |  | +						// });
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						window[options.serviceId].show = false;
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			case "GeoJsonPoint": //GeoJsonPoint
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.billboard instanceof Object) {
 | 
											
												
													
														|  | 
 |  | +							let billboard = parameterset.billboard;
 | 
											
												
													
														|  | 
 |  | +							_options.billboard = billboard;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.label instanceof Object) {
 | 
											
												
													
														|  | 
 |  | +							let label = parameterset.label;
 | 
											
												
													
														|  | 
 |  | +							_options.label = label;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					layer.addBillboardByJson(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeDataSources({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "GeoJsonPolyline": //GeoJsonPolyline
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.clampToGround) { //是否贴地
 | 
											
												
													
														|  | 
 |  | +							_options.clampToGround = parameterset.clampToGround;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.isImageAlpha) { //是否采用图片颜色
 | 
											
												
													
														|  | 
 |  | +							_options.isImageAlpha = parameterset.isImageAlpha;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.imgUrl) { //精灵线图片
 | 
											
												
													
														|  | 
 |  | +							_options.imgUrl = parameterset.imgUrl;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.color) { //指定线的颜色
 | 
											
												
													
														|  | 
 |  | +							_options.color = parameterset.color;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.width) { //线宽
 | 
											
												
													
														|  | 
 |  | +							_options.width = parameterset.width;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.duration) { //持续时间 毫秒,越小越快
 | 
											
												
													
														|  | 
 |  | +							_options.duration = parameterset.duration;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.count) { //重复次数
 | 
											
												
													
														|  | 
 |  | +							_options.count = parameterset.count;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset
 | 
											
												
													
														|  | 
 |  | +							.direction) { //direction=vertical 纵,order='-'(由下到上) , '+"(由上到下)
 | 
											
												
													
														|  | 
 |  | +							_options.direction = parameterset.direction;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset
 | 
											
												
													
														|  | 
 |  | +							.order) { //direction=horizontal 横,order='-'(顺时针) , '+'(逆时针)
 | 
											
												
													
														|  | 
 |  | +							_options.order = parameterset.order;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					layer.addPolylineByGeoJson(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeDataSources({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "GeoJsonWall": //GeoJson Wall
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.clampToGround) { //是否贴地
 | 
											
												
													
														|  | 
 |  | +							_options.clampToGround = parameterset.clampToGround;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.minimunHeights) { //最低高度
 | 
											
												
													
														|  | 
 |  | +							_options.minimunHeights = parameterset.minimunHeights;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.maximumHeights) { //最高高度
 | 
											
												
													
														|  | 
 |  | +							_options.maximumHeights = parameterset.maximumHeights;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.color) { //指定墙体的颜色
 | 
											
												
													
														|  | 
 |  | +							_options.color = parameterset.color;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.trailImage) { //墙体图片
 | 
											
												
													
														|  | 
 |  | +							_options.trailImage = parameterset.trailImage;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.duration) { //持续时间 毫秒,越小越快
 | 
											
												
													
														|  | 
 |  | +							_options.duration = parameterset.duration;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.count) { //重复次数
 | 
											
												
													
														|  | 
 |  | +							_options.count = parameterset.count;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.direction) { //direction=vertical 纵,order='-'(由下到上) , '+"(由上到下)
 | 
											
												
													
														|  | 
 |  | +							_options.direction = parameterset.direction;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.order) { //direction=horizontal 横,order='-'(顺时针) , '+'(逆时针)
 | 
											
												
													
														|  | 
 |  | +							_options.order = parameterset.order;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					// .json文件需要放到public文件夹下,直接调用,
 | 
											
												
													
														|  | 
 |  | +					layer.addWallByJson(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeDataSources({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "entitiesGltf": //gltf/glb
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						points: [],
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.points) { //模型位置
 | 
											
												
													
														|  | 
 |  | +							_options.points = parameterset.points;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.minimumPixelSize) { //模型最小刻度
 | 
											
												
													
														|  | 
 |  | +								_options.minimumPixelSize = parameterset.minimumPixelSize;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.maximumScale) { //模型的最大比例尺大小,设置模型最大放大大小
 | 
											
												
													
														|  | 
 |  | +								_options.maximumScale = parameterset.maximumScale;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.silhouetteColor) { //模型轮廓颜色
 | 
											
												
													
														|  | 
 |  | +								_options.silhouetteColor = parameterset.silhouetteColor;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.alpha) { //模型透明度
 | 
											
												
													
														|  | 
 |  | +								_options.alpha = parameterset.alpha;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.heading) { //以弧度为单位的航向分量
 | 
											
												
													
														|  | 
 |  | +								_options.heading = parameterset.heading;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.pitch) { //以弧度为单位的航向分量
 | 
											
												
													
														|  | 
 |  | +								_options.pitch = parameterset.pitch;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.roll) { //以弧度为单位的滚动分量
 | 
											
												
													
														|  | 
 |  | +								_options.roll = parameterset.roll;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							layer.addEntitiesGltf(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +								resolve(true);
 | 
											
												
													
														|  | 
 |  | +							});
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						} else {
 | 
											
												
													
														|  | 
 |  | +							resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeEntity({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "scenePrimitivesGltf": //加载gltf/glb
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						points: [],
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.points) { //模型位置
 | 
											
												
													
														|  | 
 |  | +							_options.points = parameterset.points;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.scale) { //放大倍数
 | 
											
												
													
														|  | 
 |  | +								_options.scale = parameterset.scale;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							layer.addScenePrimitivesGltf(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +								resolve(true);
 | 
											
												
													
														|  | 
 |  | +							});
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						} else {
 | 
											
												
													
														|  | 
 |  | +							resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeScenePrimitives({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "PolygonImageMaterial": //图片材质
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.points) {
 | 
											
												
													
														|  | 
 |  | +							layer.addPolygonImageMaterial({
 | 
											
												
													
														|  | 
 |  | +								id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +								points: parameterset.points,
 | 
											
												
													
														|  | 
 |  | +								url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +								alpha: options.opacity
 | 
											
												
													
														|  | 
 |  | +							}, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +								resolve(true);
 | 
											
												
													
														|  | 
 |  | +							});
 | 
											
												
													
														|  | 
 |  | +						} else {
 | 
											
												
													
														|  | 
 |  | +							resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeEntity({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "CrImageServerLayer": //贴地所有地形、模型的规划图、网格地图
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					let floatLayer = new jt3dSDK.CrImageServerLayer({
 | 
											
												
													
														|  | 
 |  | +						viewer: viewer,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						opacity: options.opacity,
 | 
											
												
													
														|  | 
 |  | +						show: true
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +					window[options.serviceId] = floatLayer;
 | 
											
												
													
														|  | 
 |  | +					//添加网格地图
 | 
											
												
													
														|  | 
 |  | +					// window[options.serviceId].show();
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					window[options.serviceId].hide();
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			case "UrlTemplateImageryProvider": //加载URL模板服务
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						alpha: options.opacity
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.CRS) { //坐标系
 | 
											
												
													
														|  | 
 |  | +							_options.CRS = parameterset.CRS;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.minimumLevel) { //最小层级
 | 
											
												
													
														|  | 
 |  | +							_options.minimumLevel = parameterset.minimumLevel;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.maximumLevel) { //最大层级
 | 
											
												
													
														|  | 
 |  | +							_options.maximumLevel = parameterset.maximumLevel;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//加载服务
 | 
											
												
													
														|  | 
 |  | +					layer.addUrlTemplateImagery(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						//重置图层顺序
 | 
											
												
													
														|  | 
 |  | +						setLayerNumber(imageryLayers, {
 | 
											
												
													
														|  | 
 |  | +							serviceId: serviceId,
 | 
											
												
													
														|  | 
 |  | +							layertype: options.layertype
 | 
											
												
													
														|  | 
 |  | +						})
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeImageryProvider({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "WebMapTileServiceImageryProvider": // WMTS地图服务
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						layers: 'cia',
 | 
											
												
													
														|  | 
 |  | +						style: 'default',
 | 
											
												
													
														|  | 
 |  | +						tileMatrixSetID: 'w',
 | 
											
												
													
														|  | 
 |  | +						alpha: options.opacity
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.layers) { //WMTS请求的层名
 | 
											
												
													
														|  | 
 |  | +							_options.layers = parameterset.layers;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.style) { //WMTS请求的样式名
 | 
											
												
													
														|  | 
 |  | +								_options.style = parameterset.style;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +								if (parameterset.tileMatrixSetID) { //用于WMTS请求的TileMatrixSet的标识符
 | 
											
												
													
														|  | 
 |  | +									_options.tileMatrixSetID = parameterset.tileMatrixSetID;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +									if (parameterset.minimumLevel) { //最小层级
 | 
											
												
													
														|  | 
 |  | +										_options.minimumLevel = parameterset.minimumLevel;
 | 
											
												
													
														|  | 
 |  | +									}
 | 
											
												
													
														|  | 
 |  | +									if (parameterset.maximumLevel) { //最大层级
 | 
											
												
													
														|  | 
 |  | +										_options.maximumLevel = parameterset.maximumLevel;
 | 
											
												
													
														|  | 
 |  | +									}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +									layer.addWebMapTileService(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +										//重置图层顺序
 | 
											
												
													
														|  | 
 |  | +										setLayerNumber(imageryLayers, {
 | 
											
												
													
														|  | 
 |  | +											serviceId: serviceId,
 | 
											
												
													
														|  | 
 |  | +											layertype: options.layertype
 | 
											
												
													
														|  | 
 |  | +										})
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +										resolve(true);
 | 
											
												
													
														|  | 
 |  | +									});
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +								} else {
 | 
											
												
													
														|  | 
 |  | +									resolve("请检测图层表parameterset字段是否设置tileMatrixSetID");
 | 
											
												
													
														|  | 
 |  | +								}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							} else {
 | 
											
												
													
														|  | 
 |  | +								resolve("请检测图层表parameterset字段是否设置style");
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						} else {
 | 
											
												
													
														|  | 
 |  | +							resolve("请检测图层表parameterset字段是否设置layers");
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						resolve("请检测图层表parameterset字段是否设置layers,style,tileMatrixSetID");
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeImageryProvider({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "WebMapServiceImageryProvider": //WMS地图服务
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						alpha: options.opacity
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.layers) { //WMTS请求的层名
 | 
											
												
													
														|  | 
 |  | +							_options.layers = parameterset.layers;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.minimumLevel) { //最小层级
 | 
											
												
													
														|  | 
 |  | +								_options.minimumLevel = parameterset.minimumLevel;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +							if (parameterset.maximumLevel) { //最大层级
 | 
											
												
													
														|  | 
 |  | +								_options.maximumLevel = parameterset.maximumLevel;
 | 
											
												
													
														|  | 
 |  | +							}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							layer.addWebMapService(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +								//重置图层顺序
 | 
											
												
													
														|  | 
 |  | +								setLayerNumber(imageryLayers, {
 | 
											
												
													
														|  | 
 |  | +									serviceId: serviceId,
 | 
											
												
													
														|  | 
 |  | +									layertype: options.layertype
 | 
											
												
													
														|  | 
 |  | +								})
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +								resolve(true);
 | 
											
												
													
														|  | 
 |  | +							});
 | 
											
												
													
														|  | 
 |  | +						} else {
 | 
											
												
													
														|  | 
 |  | +							resolve("请检测图层表parameterset字段是否设置layers");
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						resolve("请检测图层表parameterset字段是否设置layers");
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeImageryProvider({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						alpha: options.opacity
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.layers) {
 | 
											
												
													
														|  | 
 |  | +							_options.layers = parameterset.layers;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//加载服务
 | 
											
												
													
														|  | 
 |  | +					layer.addArcGisMapServer(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						//重置图层顺序
 | 
											
												
													
														|  | 
 |  | +						setLayerNumber(imageryLayers, {
 | 
											
												
													
														|  | 
 |  | +							serviceId: serviceId,
 | 
											
												
													
														|  | 
 |  | +							layertype: options.layertype
 | 
											
												
													
														|  | 
 |  | +						})
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					})
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeImageryProvider({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +			case "TileMapServiceImageryProvider": // 2.5维度地图
 | 
											
												
													
														|  | 
 |  | +				if (checked) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					//设置参数
 | 
											
												
													
														|  | 
 |  | +					let _options = {
 | 
											
												
													
														|  | 
 |  | +						id: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +						url: options.datasource,
 | 
											
												
													
														|  | 
 |  | +						alpha: options.opacity
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.minimumLevel) { //最小层级
 | 
											
												
													
														|  | 
 |  | +							_options.minimumLevel = parameterset.minimumLevel;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.maximumLevel) { //最大层级
 | 
											
												
													
														|  | 
 |  | +							_options.maximumLevel = parameterset.maximumLevel;
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					layer.addTileMapServiceImagery(_options, function(serviceId) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						//重置图层顺序
 | 
											
												
													
														|  | 
 |  | +						setLayerNumber(imageryLayers, {
 | 
											
												
													
														|  | 
 |  | +							serviceId: serviceId,
 | 
											
												
													
														|  | 
 |  | +							layertype: options.layertype
 | 
											
												
													
														|  | 
 |  | +						})
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					layer.removeImageryProvider({
 | 
											
												
													
														|  | 
 |  | +						serviceId: options.serviceId
 | 
											
												
													
														|  | 
 |  | +					}).then(res => {
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					});
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			default:
 | 
											
												
													
														|  | 
 |  | +				break;
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	})
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 服务定位
 | 
											
												
													
														|  | 
 |  | + * @param {Object} viewer
 | 
											
												
													
														|  | 
 |  | + * @param {Object} options
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function setLayersLocation(viewer, options) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	//参数集
 | 
											
												
													
														|  | 
 |  | +	let parameterset = options.parameterset;
 | 
											
												
													
														|  | 
 |  | +	if (options.parameterset instanceof Object) {
 | 
											
												
													
														|  | 
 |  | +		parameterset = options.parameterset;
 | 
											
												
													
														|  | 
 |  | +	} else if (options.parameterset != "" && options.parameterset != null && options.parameterset != undefined) {
 | 
											
												
													
														|  | 
 |  | +		parameterset = JSON.parse(options.parameterset);
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	if (options.isinit === '1') {
 | 
											
												
													
														|  | 
 |  | +		return new Promise((resolve, reject) => {
 | 
											
												
													
														|  | 
 |  | +			switch (options.loadtype) {
 | 
											
												
													
														|  | 
 |  | +				case "GeoJsonPolyline": //GeoJsonPolyline
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "GeoJsonWall": //GeoJsonWall
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "entitiesGltf": //gltf/glb
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.points) { //模型位置
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							// let LocateUtil = new jt3dSDK.LocateUtil(viewer);
 | 
											
												
													
														|  | 
 |  | +							// let flyToEntity = LocateUtil.flyToEntityByPoints([
 | 
											
												
													
														|  | 
 |  | +							// 	parameterset.points,
 | 
											
												
													
														|  | 
 |  | +							// ], 'point', {
 | 
											
												
													
														|  | 
 |  | +							// 	heading: '0',
 | 
											
												
													
														|  | 
 |  | +							// 	pitch: -90,
 | 
											
												
													
														|  | 
 |  | +							// 	range: 8880
 | 
											
												
													
														|  | 
 |  | +							// });
 | 
											
												
													
														|  | 
 |  | +							viewer.scene.camera.flyTo({
 | 
											
												
													
														|  | 
 |  | +								//定位坐标点
 | 
											
												
													
														|  | 
 |  | +								destination: Cesium.Cartesian3.fromDegrees(parameterset.points[0], parameterset.points[1], parameterset.points[2] || 0),
 | 
											
												
													
														|  | 
 |  | +								duration: 2, //定位的时间间隔
 | 
											
												
													
														|  | 
 |  | +								orientation: {
 | 
											
												
													
														|  | 
 |  | +									heading: Cesium.Math.toRadians(56), //方向
 | 
											
												
													
														|  | 
 |  | +									pitch: Cesium.Math.toRadians(-11), //倾斜角度
 | 
											
												
													
														|  | 
 |  | +									roll: 0
 | 
											
												
													
														|  | 
 |  | +								}
 | 
											
												
													
														|  | 
 |  | +							});
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							resolve(true);
 | 
											
												
													
														|  | 
 |  | +						} else {
 | 
											
												
													
														|  | 
 |  | +							resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "scenePrimitivesGltf": //gltf/glb
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (parameterset) {
 | 
											
												
													
														|  | 
 |  | +						if (parameterset.points) { //模型位置
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							viewer.scene.camera.flyTo({
 | 
											
												
													
														|  | 
 |  | +								//定位坐标点
 | 
											
												
													
														|  | 
 |  | +								destination: Cesium.Cartesian3.fromDegrees(parameterset.points[0], parameterset.points[1], parameterset.points[2] || 0),
 | 
											
												
													
														|  | 
 |  | +								duration: 2, //定位的时间间隔
 | 
											
												
													
														|  | 
 |  | +								orientation: {
 | 
											
												
													
														|  | 
 |  | +									// heading: Cesium.Math.toRadians(56), //方向
 | 
											
												
													
														|  | 
 |  | +									// pitch: Cesium.Math.toRadians(-11), //倾斜角度
 | 
											
												
													
														|  | 
 |  | +									// roll: 0
 | 
											
												
													
														|  | 
 |  | +								}
 | 
											
												
													
														|  | 
 |  | +							});
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							resolve(true);
 | 
											
												
													
														|  | 
 |  | +						} else {
 | 
											
												
													
														|  | 
 |  | +							resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +						}
 | 
											
												
													
														|  | 
 |  | +					} else {
 | 
											
												
													
														|  | 
 |  | +						resolve("请检测图层表parameterset字段是否设置points");
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "PolygonImageMaterial": //图片材质
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "CrImageServerLayer": //地形服务(DEM)
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "DEM": //地形服务(DEM)
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "UrlTemplateImageryProvider": //加载URL模板服务
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "WebMapTileServiceImageryProvider": // WMTS地图服务
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "WebMapServiceImageryProvider": //WMS地图服务
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "ArcGisMapServerImageryProvider": // ArcGIS Online和Server的相关服务
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "TileMapServiceImageryProvider": // 2.5维度地图
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "Cesium3DTileset": //加载3DTileset地图服务--实景
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					if (window[options.serviceId]) {
 | 
											
												
													
														|  | 
 |  | +						viewer.flyTo(window[options.serviceId]);
 | 
											
												
													
														|  | 
 |  | +						resolve(true);
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				case "Cesium3DTileset_BM": //加载3DTileset地图服务--白膜
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +				default:
 | 
											
												
													
														|  | 
 |  | +					resolve(true);
 | 
											
												
													
														|  | 
 |  | +					break;
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		})
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 设置服务透明度
 | 
											
												
													
														|  | 
 |  | + * @param {Object} viewer
 | 
											
												
													
														|  | 
 |  | + * @param {Object} options
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function setLayersAlpha(viewer, options) {
 | 
											
												
													
														|  | 
 |  | +	let layer = new jt3dSDK.layer(viewer);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	if (options.loadtype === "Cesium3DTileset") {
 | 
											
												
													
														|  | 
 |  | +		//设置实景透明度
 | 
											
												
													
														|  | 
 |  | +		layer.set3DTileStyle({
 | 
											
												
													
														|  | 
 |  | +			serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +			alpha: options.alpha,
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	} else if (options.loadtype === "CrImageServerLayer") {
 | 
											
												
													
														|  | 
 |  | +		let floatLayer = window[options.serviceId];
 | 
											
												
													
														|  | 
 |  | +		floatLayer.setOpacity(options.alpha)
 | 
											
												
													
														|  | 
 |  | +	} else if (options.loadtype === "PolygonImageMaterial") {
 | 
											
												
													
														|  | 
 |  | +		//设置透明度
 | 
											
												
													
														|  | 
 |  | +		layer.setPolygonImageMaterial({
 | 
											
												
													
														|  | 
 |  | +			serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +			alpha: options.alpha,
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	} else if (options.loadtype === "entitiesGltf") {
 | 
											
												
													
														|  | 
 |  | +		//设置透明度
 | 
											
												
													
														|  | 
 |  | +		layer.setModelStyle({
 | 
											
												
													
														|  | 
 |  | +			serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +			alpha: options.alpha,
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	} else {
 | 
											
												
													
														|  | 
 |  | +		layer.setLayersStyle({
 | 
											
												
													
														|  | 
 |  | +			serviceId: options.serviceId,
 | 
											
												
													
														|  | 
 |  | +			alpha: options.alpha,
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 设置图层顺序
 | 
											
												
													
														|  | 
 |  | + * @param {Object} imageryLayers
 | 
											
												
													
														|  | 
 |  | + * @param {Object} options
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function setLayerNumber(imageryLayers, options) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	// var imageryLayers = viewer.imageryLayers;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	//设置图层初始顺序
 | 
											
												
													
														|  | 
 |  | +	imageryLayers.lowerToBottom(window[options.serviceId]);
 | 
											
												
													
														|  | 
 |  | +	imageryLayers.raise(window[options.serviceId]);
 | 
											
												
													
														|  | 
 |  | +	imageryLayers.raise(window[options.serviceId]);
 | 
											
												
													
														|  | 
 |  | +	
 | 
											
												
													
														|  | 
 |  | +	let serviceMark=options.serviceId.split('_')[0]
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	getAllLayers().then(layers => {
 | 
											
												
													
														|  | 
 |  | +		layers.map((item) => {
 | 
											
												
													
														|  | 
 |  | +			if (item.layercode && item.layerorder) {
 | 
											
												
													
														|  | 
 |  | +				let id = serviceMark + "_" + item.layercode + item.layerorder
 | 
											
												
													
														|  | 
 |  | +				let startid = Number(item.layercode + item.layerorder)
 | 
											
												
													
														|  | 
 |  | +				let strid = Number(options.serviceId.replace(serviceMark + "_", ""))
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				if (imageryLayers.contains(window[id])) {
 | 
											
												
													
														|  | 
 |  | +					if (startid <= strid) {
 | 
											
												
													
														|  | 
 |  | +						imageryLayers.raise(window[options.serviceId])
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		})
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//底图置底
 | 
											
												
													
														|  | 
 |  | +		if (options.layertype === "底图影像") {
 | 
											
												
													
														|  | 
 |  | +			imageryLayers.lowerToBottom(window[options.serviceId]);
 | 
											
												
													
														|  | 
 |  | +			imageryLayers.raise(window[options.serviceId]);
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		//标注置顶
 | 
											
												
													
														|  | 
 |  | +		if (options.layertype === '标注') {
 | 
											
												
													
														|  | 
 |  | +			imageryLayers.raiseToTop(window[options.serviceId]);
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	});
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 移除分屏对比
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function removeSplitScreen(viewer) {
 | 
											
												
													
														|  | 
 |  | +	let mapView1 = document.getElementById("cesiumContainer");
 | 
											
												
													
														|  | 
 |  | +	let mapView2 = document.getElementById("cesiumContainer2");
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	mapView1.className = "jt-map";
 | 
											
												
													
														|  | 
 |  | +	mapView2.style.display = "none";
 | 
											
												
													
														|  | 
 |  | +	mapView2.innerHTML = "";
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	if (viewer) {
 | 
											
												
													
														|  | 
 |  | +		viewer.entities.removeAll(); // 删除全部
 | 
											
												
													
														|  | 
 |  | +		viewer.imageryLayers.removeAll();
 | 
											
												
													
														|  | 
 |  | +		viewer.scene.primitives.removeAll(); //谨慎使用,可能删除不必要的primitive
 | 
											
												
													
														|  | 
 |  | +		viewer.destroy();
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 地图绕点自旋
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function setMapSpin(jt3d) {
 | 
											
												
													
														|  | 
 |  | +	//移除左键单击事件
 | 
											
												
													
														|  | 
 |  | +	if (jt3d.handlerLeftClick) {
 | 
											
												
													
														|  | 
 |  | +		jt3d.handlerLeftClick.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	let SketchViewModel = new jt3dSDK.SketchViewModel(window.viewer, {
 | 
											
												
													
														|  | 
 |  | +		isClear: true,
 | 
											
												
													
														|  | 
 |  | +		isDrawPoint: false, //是否标记参考点
 | 
											
												
													
														|  | 
 |  | +		isRetainDrawPoint: false, //绘制完成是否保留绘制点
 | 
											
												
													
														|  | 
 |  | +		iconType: 'blue',
 | 
											
												
													
														|  | 
 |  | +	}, );
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	SketchViewModel.sketchTools('point', {
 | 
											
												
													
														|  | 
 |  | +		onComplete(cPoint, gPoint) {
 | 
											
												
													
														|  | 
 |  | +			jt3d.setMapSpinByPoint(cPoint, {
 | 
											
												
													
														|  | 
 |  | +				// height: 100000
 | 
											
												
													
														|  | 
 |  | +			});
 | 
											
												
													
														|  | 
 |  | +		},
 | 
											
												
													
														|  | 
 |  | +		onError(message) {}
 | 
											
												
													
														|  | 
 |  | +	});
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 地图指北
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function setMapNorth(jt3d) {
 | 
											
												
													
														|  | 
 |  | +	jt3d.setMapNorth();
 | 
											
												
													
														|  | 
 |  | +	jt3d.isSpan = false;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 移除卷帘
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function removeSplitLayer(viewer, earthAtLeft, earthAtRight) {
 | 
											
												
													
														|  | 
 |  | +	let sliderDiv = document.getElementById("image_slider");
 | 
											
												
													
														|  | 
 |  | +	if (sliderDiv) {
 | 
											
												
													
														|  | 
 |  | +		document.body.removeChild(sliderDiv);
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +	removeSplitLayerLeft(viewer, earthAtLeft);
 | 
											
												
													
														|  | 
 |  | +	removeSplitLayerRight(viewer, earthAtRight);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	if (earthAtLeft) {
 | 
											
												
													
														|  | 
 |  | +		earthAtLeft.splitDirection = Cesium.SplitDirection.NONE;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	if (earthAtRight) {
 | 
											
												
													
														|  | 
 |  | +		earthAtRight.splitDirection = Cesium.SplitDirection.NONE;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 移除左侧图层
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function removeSplitLayerLeft(viewer, leftValue) {
 | 
											
												
													
														|  | 
 |  | +	setLayersControl(viewer, leftValue, false);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	// if (earthAtLeft) {
 | 
											
												
													
														|  | 
 |  | +	// 	if (earthAtLeft instanceof Cesium.ImageryLayer) {
 | 
											
												
													
														|  | 
 |  | +	// 		viewer.imageryLayers.remove(earthAtLeft);
 | 
											
												
													
														|  | 
 |  | +	// 	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	// 	if (earthAtLeft instanceof Cesium.Cesium3DTileset) {
 | 
											
												
													
														|  | 
 |  | +	// 		viewer.scene.primitives.remove(earthAtLeft);
 | 
											
												
													
														|  | 
 |  | +	// 	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	// 	if (earthAtLeft instanceof Array) {
 | 
											
												
													
														|  | 
 |  | +	// 		earthAtLeft.forEach((res, index) => {
 | 
											
												
													
														|  | 
 |  | +	// 			viewer.scene.primitives.remove(res);
 | 
											
												
													
														|  | 
 |  | +	// 		})
 | 
											
												
													
														|  | 
 |  | +	// 	}
 | 
											
												
													
														|  | 
 |  | +	// }
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +/**
 | 
											
												
													
														|  | 
 |  | + * 移除右侧图层
 | 
											
												
													
														|  | 
 |  | + */
 | 
											
												
													
														|  | 
 |  | +export function removeSplitLayerRight(viewer, rightValue) {
 | 
											
												
													
														|  | 
 |  | +	setLayersControl(viewer, rightValue, false);
 | 
											
												
													
														|  | 
 |  | +	// if (earthAtRight) {
 | 
											
												
													
														|  | 
 |  | +	// 	if (earthAtRight instanceof Cesium.ImageryLayer) {
 | 
											
												
													
														|  | 
 |  | +	// 		viewer.imageryLayers.remove(earthAtRight);
 | 
											
												
													
														|  | 
 |  | +	// 	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	// 	if (earthAtRight instanceof Cesium.Cesium3DTileset) {
 | 
											
												
													
														|  | 
 |  | +	// 		viewer.scene.primitives.remove(earthAtRight);
 | 
											
												
													
														|  | 
 |  | +	// 	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	// 	if (earthAtRight instanceof Array) {
 | 
											
												
													
														|  | 
 |  | +	// 		earthAtRight.forEach((res, index) => {
 | 
											
												
													
														|  | 
 |  | +	// 			viewer.scene.primitives.remove(res);
 | 
											
												
													
														|  | 
 |  | +	// 		});
 | 
											
												
													
														|  | 
 |  | +	// 	}
 | 
											
												
													
														|  | 
 |  | +	// }
 | 
											
												
													
														|  | 
 |  | +}
 |