From 5e5f9801348e283fe293cf040c748ec1c0c8a9e8 Mon Sep 17 00:00:00 2001
From: jxdnsong <592566207@qq.com>
Date: Fri, 13 Nov 2020 17:11:37 +0800
Subject: [PATCH] 新增庐陵倾斜数据以及修改底图顺序

---
 config.json               |   54 +++++-----
 widgets/Basemap/Widget.js |  189 +++++++++++++++++++++++--------------
 jimu.js/MapManager.js     |    2 
 3 files changed, 145 insertions(+), 100 deletions(-)

diff --git a/config.json b/config.json
index 10aebb3..e5fbde3 100644
--- a/config.json
+++ b/config.json
@@ -267,33 +267,6 @@
     },
     "imageryProviderViewModels": [
       {
-        "name": "天地图影像",
-        "tooltip": "天地图全球影像地图服务(国家测绘局)",
-        "iconUrl": "images/basemaps/tiandituimage.png",
-        "layers": [
-          {
-            "label": "天地图影像",
-            "type": "wmts",
-            "url": "http://t0.tianditu.gov.cn/img_w/wmts?tk=e9533f5acb2ac470b07f406a4d24b4f0",
-            "layer": "img",
-            "style": "default",
-            "format": "tiles",
-            "tileMatrixSetID": "w",
-            "maximumLevel": 17
-          },
-          {
-            "label": "天地图影像标注",
-            "type": "wmts",
-            "url": "http://t0.tianditu.gov.cn/cia_w/wmts?tk=e9533f5acb2ac470b07f406a4d24b4f0",
-            "layer": "cia",
-            "style": "default",
-            "format": "tiles",
-            "tileMatrixSetID": "w",
-            "maximumLevel": 17
-          }
-        ]
-      },
-      {
         "name": "天地图矢量",
         "tooltip": "天地图矢量",
         "iconUrl": "images/basemaps/tianditushiliang.png",
@@ -321,6 +294,33 @@
         ]
       },
       {
+        "name": "天地图影像",
+        "tooltip": "天地图全球影像地图服务(国家测绘局)",
+        "iconUrl": "images/basemaps/tiandituimage.png",
+        "layers": [
+          {
+            "label": "天地图影像",
+            "type": "wmts",
+            "url": "http://t0.tianditu.gov.cn/img_w/wmts?tk=e9533f5acb2ac470b07f406a4d24b4f0",
+            "layer": "img",
+            "style": "default",
+            "format": "tiles",
+            "tileMatrixSetID": "w",
+            "maximumLevel": 17
+          },
+          {
+            "label": "天地图影像标注",
+            "type": "wmts",
+            "url": "http://t0.tianditu.gov.cn/cia_w/wmts?tk=e9533f5acb2ac470b07f406a4d24b4f0",
+            "layer": "cia",
+            "style": "default",
+            "format": "tiles",
+            "tileMatrixSetID": "w",
+            "maximumLevel": 17
+          }
+        ]
+      },
+      {
         "name": "离线影像",
         "tooltip": "赣州市离线影像",
         "iconUrl": "images/basemaps/gzyx.png",
diff --git a/jimu.js/MapManager.js b/jimu.js/MapManager.js
index 9efffa4..5e4d9f5 100644
--- a/jimu.js/MapManager.js
+++ b/jimu.js/MapManager.js
@@ -122,7 +122,7 @@
 
 
                 //设置离线地图默认显示
-                this.map.baseLayerPicker.viewModel.selectedImagery = this.map.baseLayerPicker.viewModel.imageryProviderViewModels[2];
+                this.map.baseLayerPicker.viewModel.selectedImagery = this.map.baseLayerPicker.viewModel.imageryProviderViewModels[1];
                 this.map.baseLayerPicker.viewModel.selectedTerrain = this.map.baseLayerPicker.viewModel.terrainProviderViewModels[2];
                 $(".cesium-baseLayerPicker-sectionTitle").eq(0).html("底图");
                 $(".cesium-baseLayerPicker-sectionTitle").eq(1).html("地形");
diff --git a/widgets/Basemap/Widget.js b/widgets/Basemap/Widget.js
index 014cb2b..ee2f129 100644
--- a/widgets/Basemap/Widget.js
+++ b/widgets/Basemap/Widget.js
@@ -3,80 +3,125 @@
 // 模块描述: 底图
 ///////////////////////////////////////////////////////////////////////////
 define([
-		'dojo/_base/declare',
-		'dojo/_base/lang',
-		'dojo/_base/array',
-		'dojo/_base/html',
-		'dojo/topic',
-		'jimu/BaseWidget',
-		'jimu/utils',
-		'jimu/css!libs/zTree_v3/css/zTreeStyle/zTreeStyle.css',
-		'libs/zTree_v3/js/jquery.ztree.all'
-	],
-	function (declare,
-		lang,
-		array,
-		html,
-		topic,
-		BaseWidget,
-		aspect,
-		string,
-		utils
-	) {
-		return declare([BaseWidget], {
-			baseClass: 'jimu-widget-Basemap',
-			name: 'Basemap',
-			layers:{},
-			startup: function () {
-				// 暴露在外的接口
-				topic.subscribe("closeMap", lang.hitch(this, this.closeBaseMap));
-				this.inherited(arguments);
-				$('.jimu-widget-Basemap span').click(function () {
-					topic.publish('closeTool', this.name);
-					topic.publish('closeZtree', this.name);
-					if ($('.cesium-baseLayerPicker-dropDown').hasClass('cesium-baseLayerPicker-dropDown-visible') == true) {
-						$('.cesium-baseLayerPicker-dropDown').removeClass('cesium-baseLayerPicker-dropDown-visible')
-					} else {
-						$('.cesium-baseLayerPicker-dropDown').addClass('cesium-baseLayerPicker-dropDown-visible')
-					}
-				})
-			},
-
-			closeBaseMap: function (item) {
-				if (item != this.name) {
-					if ($('.cesium-baseLayerPicker-dropDown').hasClass('cesium-baseLayerPicker-dropDown-visible') == true) {
-						$('.cesium-baseLayerPicker-dropDown').removeClass('cesium-baseLayerPicker-dropDown-visible')
-					}
+	'dojo/_base/declare',
+	'dojo/_base/lang',
+	'dojo/_base/array',
+	'dojo/_base/html',
+	'dojo/topic',
+	'dojo/on',
+	'jimu/BaseWidget',
+	'jimu/utils',
+	'jimu/css!libs/zTree_v3/css/zTreeStyle/zTreeStyle.css',
+	'libs/zTree_v3/js/jquery.ztree.all'
+],
+function (declare,
+	lang,
+	array,
+	html,
+	topic,
+	on,
+	BaseWidget,
+	aspect,
+	string,
+	utils
+) {
+	return declare([BaseWidget], {
+		baseClass: 'jimu-widget-Basemap',
+		name: 'Basemap',
+		tileset:null,
+		startup: function () {
+			// 暴露在外的接口
+			topic.subscribe("closeMap", lang.hitch(this, this.closeBaseMap));
+			this.inherited(arguments);
+			$(".cesium-baseLayerPicker-sectionTitle").eq(0).html("底图");
+			$(".cesium-baseLayerPicker-sectionTitle").eq(1).html("地形");
+			$('.jimu-widget-Basemap span').click(function () {
+				topic.publish('closeTool', this.name);
+				topic.publish('closeZtree', this.name);
+				if ($('.cesium-baseLayerPicker-dropDown').hasClass('cesium-baseLayerPicker-dropDown-visible') == true) {
+					$('.cesium-baseLayerPicker-dropDown').removeClass('cesium-baseLayerPicker-dropDown-visible')
+				} else {
+					$('.cesium-baseLayerPicker-dropDown').addClass('cesium-baseLayerPicker-dropDown-visible')
 				}
-			},
+			});
 
-			onOpen: function () {
-				//面板打开的时候触发 (when open this panel trigger)
-			},
+			//加载3DTile
+			this.tileset = this.map.scene.primitives.add(
+				new Cesium.Cesium3DTileset({
+				"url": "http://223.83.52.4:81/data/qx1/tileset.json",
+				"maximumScreenSpaceError": 16,
+				"preferLeaves":true,
+				"maximumNumberOfLoadedTiles": 2000,
+				"luminanceAtZenith": 0.8
+			}));
+			
+			function zoomToTileset(tileset) {
+				var cartographic = Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center);
+				var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height);
+				var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height+10);
+				var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
+				tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
+				
 
-			onClose: function () {
-				//面板关闭的时候触发 (when this panel is closed trigger)
-			},
-
-			onMinimize: function () {
-				this.resize();
-			},
-
-			onMaximize: function () {
-				this.resize();
-			},
-
-			resize: function () {
-
-			},
-
-
-			destroy: function () {
-				//销毁的时候触发
-				//todo
-				//do something before this func
-				this.inherited(arguments);
 			}
+			// tileset数据加载好后,便缩放相机视角
+			this.tileset.readyPromise.then(zoomToTileset);
+			var tit = dojo.query(".cesium-baseLayerPicker-sectionTitle")[1];
+			html.create('div', {
+				style:"font-size: 14px;margin-top: 3px;float: right;",
+				innerHTML:"倾斜三维"
+			}, tit);
 
-		});
-	});
\ No newline at end of file
+			var qxNode = html.create('input', {
+				style:"margin-top: 6px;margin-right: 5px;float: right;",
+				type:"checkbox",
+				checked:"checked"
+			}, tit);
+			on(qxNode, "click", lang.hitch(this, this._switchTile))
+		},
+		_switchTile: function () {
+			if(this.tileset.show){
+				this.tileset.show = false;
+			}
+			else{
+				this.tileset.show = true;
+			}
+		},
+		closeBaseMap: function (item) {
+			if (item != this.name) {
+				if ($('.cesium-baseLayerPicker-dropDown').hasClass('cesium-baseLayerPicker-dropDown-visible') == true) {
+					$('.cesium-baseLayerPicker-dropDown').removeClass('cesium-baseLayerPicker-dropDown-visible')
+				}
+			}
+		},
+
+		onOpen: function () {
+			//面板打开的时候触发 (when open this panel trigger)
+		},
+
+		onClose: function () {
+			//面板关闭的时候触发 (when this panel is closed trigger)
+		},
+
+		onMinimize: function () {
+			this.resize();
+		},
+
+		onMaximize: function () {
+			this.resize();
+		},
+
+		resize: function () {
+
+		},
+
+
+		destroy: function () {
+			//销毁的时候触发
+			//todo
+			//do something before this func
+			this.inherited(arguments);
+		}
+
+	});
+});
\ No newline at end of file

--
Gitblit v1.9.3