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