首页 / 浏览问题 / 三维GIS / 问题详情
WebGL 三维场景上怎么显示二维地图
82EXP 2016年12月20日
WebGL 三维场景上怎么添加二维地图,如三维城市场景中,要显示城市区域划分,需要使用已经做好的二维区域地图在三维场景上显示,该怎么添加?

三维场景中模型量大,与地形一起添加显示会有一定的加载延时、缓慢的情况,内存与CPU占用情况也比较高,会时常卡顿,是否有优化方式?

2 个回答

您好,抱歉,久等了,之前一直不敢确定,能不能加,现在才回复您。

是这样的,WebGL三维场景上支持添加WMTS服务的地图,如天地图的WMTS服务,或者超图iserver发布的WMTS服务等。具体加载方式请参考范例:

http://localhost:8090/iserver/iClient/for3D/webgl/examples/examples.html#,看天地图那个范例。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<title>天地图影像叠加WMTS</title>
<link href="../Build/Cesium/Widgets/widgets.css" rel="stylesheet">
<script type="text/javascript" src="./js/require.min.js" data-main="js/main"></script>
<style>
html, body, #cesiumContainer {
width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<script>
function onload(Cesium) {
var viewer = new Cesium.Viewer('cesiumContainer', {
imageryProvider : new Cesium.WebMapTileServiceImageryProvider({
url : 'http://[subdomain].tianditu.com/img_w/wmts',
layer : 'img',
style : 'default',
format : 'tiles',
tileMatrixSetID : 'w',
credit : new Cesium.Credit('天地图全球影像服务'),
subdomains : ['t0','t1','t2','t3','t4','t5','t6','t7'],
maximumLevel : 18
})
});
var imageryLayers = viewer.imageryLayers;
var labelImagery = new Cesium.WebMapTileServiceImageryProvider({
url : 'http://[subdomain].tianditu.com/cia_w/wmts',
layer : 'cia',
style : 'default',
format : 'tiles',
tileMatrixSetID : 'w',
credit : new Cesium.Credit('天地图全球影像中文注记服务'),
subdomains : ['t0','t1','t2','t3','t4','t5','t6','t7']
});
imageryLayers.addImageryProvider(labelImagery);
}
</script>
</body>
</html>

3,389EXP 2016年12月20日
优化2个方面考虑:

1、硬件。三维对显卡要求很高,做三维展示的机器推荐GTX980以上的显卡。

2、场景性能优化。

(1)生成场景缓存,再发布服务,建议模型生成OSGB格式的场景缓存,地形生成TIN格式的缓存。

(2)关闭场景反走样。

(3)建模优化,减少模型顶点数。

详细的可以在我们帮助手册搜索关键字“性能优化”。
3,389EXP 2016年12月20日
恩好的,谢谢您

在请教一个问题,我在加载三维场景模型的时候设置了经纬度与高程后,能否调整相机角度呢?目前的效果是视角是位于模型正上方的,即垂直的,我想让视角变为相对模型45°该怎么实现?在IDesktop中设置的相机角度没有效果,天际线设置也没有效果

您好,WebGL现在没办法修改,您可以参考:

http://localhost:8090/iserver/iClient/for3D/webgl/Build/Documentation/Scene.html

有写到相机是只读的。

...