479c22f1 by unknown

'20191205'

1 parent c2f5681b
...@@ -20,30 +20,20 @@ SuperGlobeVue是基于vue-cli3和supermap cesium 的一款Globe地球视图。 ...@@ -20,30 +20,20 @@ SuperGlobeVue是基于vue-cli3和supermap cesium 的一款Globe地球视图。
20 系统通过vue.config.js进行了eslint的配置。 20 系统通过vue.config.js进行了eslint的配置。
21 21
22 ## 2、设置 22 ## 2、设置
23 ## Project setup 23 ### 项目依赖库安装
24 ``` 24 ```
25 npm install 25 npm install
26 ``` 26 ```
27 27
28 ### Compiles and hot-reloads for development 28 ### 代码编译及热启动
29 ``` 29 ```
30 npm run serve 30 npm run serve
31 ``` 31 ```
32 32
33 ### Compiles and minifies for production 33 ### 代码编译及发布
34 ``` 34 ```
35 npm run build 35 npm run build
36 ``` 36 ```
37 37
38 ### Run your unit tests
39 ```
40 npm run test:unit
41 ```
42
43 ### Lints and fixes files
44 ```
45 npm run lint
46 ```
47
48 ### Customize configuration 38 ### Customize configuration
49 See [Configuration Reference](https://cli.vuejs.org/config/). 39 See [Configuration Reference](https://cli.vuejs.org/config/).
......
This diff could not be displayed because it is too large.
...@@ -13,7 +13,8 @@ ...@@ -13,7 +13,8 @@
13 <meta name="viewport" content="width=device-width,initial-scale=1.0"> 13 <meta name="viewport" content="width=device-width,initial-scale=1.0">
14 <link rel="icon" href="<%= BASE_URL %>favicon.ico"> 14 <link rel="icon" href="<%= BASE_URL %>favicon.ico">
15 <link href="./Build/Cesium/Widgets/widgets.css" rel="stylesheet"> 15 <link href="./Build/Cesium/Widgets/widgets.css" rel="stylesheet">
16 <script type="text/javascript" src="./Build/Cesium/Cesium.js" data-main="js/main"></script> 16 <script type="text/javascript" src="./Build/Cesium/Cesium.js" data-main="js/main"></script>
17 <script type="text/javascript" src="./Build//Cesium/Widgets/CesiumNavigation/viewerCesiumNavigationMixin.js"></script>
17 <script type="text/javascript" src="./Build/Cesium/Workers/zlib.min.js" data-main="js/main"></script> 18 <script type="text/javascript" src="./Build/Cesium/Workers/zlib.min.js" data-main="js/main"></script>
18 <script type="text/javascript" src="./js/jquery.min.js" data-main="js/main"></script> 19 <script type="text/javascript" src="./js/jquery.min.js" data-main="js/main"></script>
19 <link href="./css/bootstrap.min.css" rel="stylesheet"> 20 <link href="./css/bootstrap.min.css" rel="stylesheet">
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 * @Author: jiangbotao 2 * @Author: jiangbotao
3 * @Date: 2019-12-03 22:52:56 3 * @Date: 2019-12-03 22:52:56
4 * @LastEditors: jiangbotao 4 * @LastEditors: jiangbotao
5 * @LastEditTime: 2019-12-04 22:25:49 5 * @LastEditTime: 2019-12-04 23:31:19
6 * @FilePath: \superglobevue\src\components\viewer.vue 6 * @FilePath: \superglobevue\src\components\viewer.vue
7 --> 7 -->
8 <template> 8 <template>
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
33 33
34 <script> 34 <script>
35 import URL_CONFIG from "./../config/urlConfig.vue"; 35 import URL_CONFIG from "./../config/urlConfig.vue";
36 // import CesiumNavigation from "cesium-navigation-es6";
36 const Cesium = window.Cesium; 37 const Cesium = window.Cesium;
37 export default { 38 export default {
38 data: function() { 39 data: function() {
...@@ -40,7 +41,7 @@ export default { ...@@ -40,7 +41,7 @@ export default {
40 styleObject: { 41 styleObject: {
41 width: "100%", 42 width: "100%",
42 height: '100%', 43 height: '100%',
43 // position: "absolute", 44 position: "absolute",
44 top: "0px", 45 top: "0px",
45 bottom: "0px", 46 bottom: "0px",
46 left: "0px", 47 left: "0px",
...@@ -50,15 +51,38 @@ export default { ...@@ -50,15 +51,38 @@ export default {
50 }; 51 };
51 }, 52 },
52 mounted: function() { 53 mounted: function() {
53 this.viewer = new Cesium.Viewer("cesiumContainer", {}); 54 this.viewer = new Cesium.Viewer("cesiumContainer", { navigationInstructionsInitiallyVisible: false });
55 var options = {};
56 options.enableCompass= true;
57 options.enableZoomControls= true;
58 options.enableDistanceLegend= true;
59 options.enableCompassOuterRing= true;
60 this.viewer.extend(Cesium.viewerCesiumNavigationMixin, options);
54 // 隐藏logo 61 // 隐藏logo
55 $(".cesium-widget-credits")[0].style.visibility = "hidden"; 62 $(".cesium-widget-credits")[0].style.visibility = "hidden";
56 // 隐藏导航工具 63 // 隐藏导航工具
57 // $(".cesium-viewer-navigationContainer")[0].style.visibility="hidden"; 64 $(".cesium-viewer-navigationContainer")[0].style.visibility="hidden";
58 65
66 var smviewer = this.viewer;
59 var scene = this.viewer.scene; 67 var scene = this.viewer.scene;
60 var widget = this.viewer.cesiumWidget; 68 var widget = this.viewer.cesiumWidget;
61 var camera = scene.camera; 69 var camera = scene.camera;
70
71 var handler = new Cesium.ScreenSpaceEventHandler(this.viewer.canvas);
72 handler.setInputAction(function(e) {
73 smviewer.entities.removeById('identify-area');
74 var position = scene.pickPosition(e.position);
75 var cartographic = Cesium.Cartographic.fromCartesian(position);
76 var longitude = Cesium.Math.toDegrees(cartographic.longitude);
77 var latitude = Cesium.Math.toDegrees(cartographic.latitude);
78 var queryPoint = { // 查询点对象
79 x: longitude,
80 y: latitude
81 };
82 console.log(queryPoint);
83 queryByPoint(queryPoint);
84 }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
85
62 try { 86 try {
63 var promise2 = scene.addS3MTilesLayerByScp("http://www.supermapol.com/realspace/services/3D-dynamicDTH/rest/realspace/datas/Config%20-%201/config", 87 var promise2 = scene.addS3MTilesLayerByScp("http://www.supermapol.com/realspace/services/3D-dynamicDTH/rest/realspace/datas/Config%20-%201/config",
64 { name: "oblique photography" }); 88 { name: "oblique photography" });
...@@ -71,17 +95,6 @@ export default { ...@@ -71,17 +95,6 @@ export default {
71 roll : 2.0174972803488345e-11 95 roll : 2.0174972803488345e-11
72 } 96 }
73 }); 97 });
74 // 加载矢量面数据
75 var promise1 = scene.addS3MTilesLayerByScp('http://www.supermapol.com/realspace/services/3D-dynamicDTH/rest/realspace/datas/New_Region3D_1_%E9%93%81%E5%B2%AD%E7%9F%A2%E9%87%8F%E9%9D%A2/config', {
76 name:'vector area'
77 });
78 Cesium.when.all([promise1], function(vectorLayers){
79 var vectorLayer = scene.layers.find('vector area'); // 矢量图层
80 vectorLayer.style3D._fillForeColor.alpha = 0; // 矢量图层填充前景色透明
81 vectorLayer.selectedColor = new Cesium.Color(1.0, 0.0, 0.0, 0.5); // 选中时给一个可见颜色
82 vectorLayer.selectColorType = 1; // 选中颜色的显示类型为替换色
83 vectorLayer.selectEnabled = true; // 矢量图层可选
84 });
85 // 去除加载动画 98 // 去除加载动画
86 $('#loadingbar').remove(); 99 $('#loadingbar').remove();
87 }); 100 });
...@@ -91,10 +104,73 @@ export default { ...@@ -91,10 +104,73 @@ export default {
91 widget.showErrorPanel(title, undefined, e); 104 widget.showErrorPanel(title, undefined, e);
92 } 105 }
93 } 106 }
107 var dataSourceName = '铁岭矢量面'; // 数据源名称
108 var dataSetName = 'New_Region3D_1'; // 数据集名称
109 var dataServiceUrl = 'http://www.supermapol.com/realspace/services/data-dynamicDTH/rest/data/featureResults.rjson?returnContent=true';
110
111 // 通过点击查询用于表示单体化的面要素,添加到场景中高亮显示。
112 function queryByPoint(queryPoint) {
113 var queryObj = {
114 "getFeatureMode": "SPATIAL",
115 "spatialQueryMode": "INTERSECT",
116 "datasetNames": [dataSourceName + ":" + dataSetName],
117 "geometry": {
118 id: 0,
119 parts: [1],
120 points: [queryPoint],
121 type: "POINT"
122 }
123 };
124
125 var queryObjJSON = JSON.stringify(queryObj); // 转化为JSON字符串作为查询参数
126 $.ajax({
127 type: "post",
128 url: dataServiceUrl,
129 data: queryObjJSON,
130 success: function(result) {
131 var resultObj = JSON.parse(result);
132 if (resultObj.featureCount > 0) {
133 addClapFeature(resultObj.features[0]);
134 }
135 },
136 error: function(msg) {
137 console.log(msg);
138 }
139 })
140 }
141
142 // 将数据服务查询到的要素添加到场景中高亮显示,表示选中效果。
143 function addClapFeature(feature) {
144 var lonLatArr = getLonLatArray(feature.geometry.points);
145 smviewer.entities.add({
146 id: 'identify-area',
147 name: '单体化标识面',
148 polygon: {
149 hierarchy: Cesium.Cartesian3.fromDegreesArray(lonLatArr),
150 material: new Cesium.Color(1.0, 0.0, 0.0, 0.3),
151 },
152 clampToS3M: true // 贴在S3M模型表面
153 });
154 }
155
156 // 得到[经度,纬度,经度,纬度...]形式的数组,用于构造面。
157 function getLonLatArray(points) {
158 var point3D = [];
159 points.forEach(function(point) {
160 point3D.push(point.x);
161 point3D.push(point.y);
162 });
163 return point3D;
164 }
94 } 165 }
95 }; 166 };
96 </script> 167 </script>
97 168
98 <style> 169 <style>
99 170 .compass {
171 top: 10px;
172 }
173 .navigation-controls {
174 top: 120px;
175 }
100 </style> 176 </style>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 * 2、添加了超图发布的矢量瓦片服务 4 * 2、添加了超图发布的矢量瓦片服务
5 * @Date: 2019-12-02 09:05:50 5 * @Date: 2019-12-02 09:05:50
6 * @LastEditors: jiangbotao 6 * @LastEditors: jiangbotao
7 * @LastEditTime: 2019-12-04 19:56:13 7 * @LastEditTime: 2019-12-04 22:37:19
8 * @FilePath: \WebGL_Webpack_Vue\components\viewer.vue 8 * @FilePath: \WebGL_Webpack_Vue\components\viewer.vue
9 --> 9 -->
10 <template> 10 <template>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 * @Author: jiangbotao 2 * @Author: jiangbotao
3 * @Date: 2019-12-03 22:31:08 3 * @Date: 2019-12-03 22:31:08
4 * @LastEditors: jiangbotao 4 * @LastEditors: jiangbotao
5 * @LastEditTime: 2019-12-04 22:35:32 5 * @LastEditTime: 2019-12-05 10:46:13
6 * @FilePath: \superglobevue\src\views\Home.vue 6 * @FilePath: \superglobevue\src\views\Home.vue
7 --> 7 -->
8 <template> 8 <template>
......