最近工作需要做三维GIS相关的开发,因此接触了Cesium,采用的Web容器是Tomcat,地图服务由Geoserver发布同时也调用了在线地形服务。Tomcat和Geoserver的安装部署再次就不再重复介绍。安装完Tomcat之后,将下载的Geoserver和Cesium都放在Tomcat安装目录的webapp目录下
启动Tomcat之后就可以访问,本文所采用的IDE是WebStorm,在WebStorm中打开在Tomcat中部署好的Cesium工程,在Apps目录下新建一个HellWorld.html,输入以下代码
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Use correct character set. -->
<meta charset="utf-8">
<!-- Tell IE to use the latest, best version. -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Make the application on mobile take up the full browser screen and disable user scaling. -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<title>Hello World!</title>
<script src="../Build/Cesium/Cesium.js"></script>
<script src="../lib/GeoserverTerrainProvider.js"></script>
<style>
@import url(../Build/Cesium/Widgets/widgets.css);
html, body, #cesiumContainer {
width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<script>
// var viewer = new Cesium.Viewer('cesiumContainer');
var terrainProvider=new Cesium.CesiumTerrainProvider({
url:"https://assets02.agi.com/stk-terrain/world"
});
var viewer=new Cesium.Viewer("cesiumContainer",{
timeline:false,
animation:false,//去除时间线条和Animation widget;
baseLayerPicker:false,
terrainProvider:terrainProvider
});
var layers=viewer.imageryLayers;
layers.addImageryProvider(new Cesium.WebMapServiceImageryProvider({
url:'http://localhost:8080/geoserver/workspace/wms',
layers:'workspace:geotiff_coverage',
parameters : {
format : 'image/png',
transparent : true,
service : 'WMS',
version : '1.1.0',
request : 'GetMap'
}
}));
viewer._cesiumWidget._creditContainer.style.display="none";
</script>
</body>
</html>
最后在球上显示的结果就是一部分贴有影像纹理的三维地形: