Cesium实现加载离线地形数据(nginx发布数据,cesiumLab地形切片数据) ...

打印 上一主题 下一主题

主题 725|帖子 725|积分 2175

实现效果如图:

详细步骤
1  下载地形数据(DEM)

下载地址:地理空间数据云 (gscloud.cn)
操纵步骤:

注意:第3步可以自主选择DEM的分辨率,然后下载。
下载结果解压后如下图:

2 使用CesiumLab工具对舆图数据进行切片处理

 下载安装CesiumLab,这里就不详细阐明了
  对名称为ASTGTM2_N33E108_dem.tif文件进行切片处理。
操纵步骤:

注意:存储格式选择“散列”。提交后待处理完成
提交处理结果如下图

3 发布切片数据(两种发布方式任选其一)

方式1、直接在CesiumLab服务发布,操纵如下

得到到终极cesium工程必要的地形url:http://localhost:9003/terrain/ND1oIKj0
方式2、本地nginx发布
   主要是nginx设置切片数据所在目录进行分发设置nginx.conf,设置方式如下:
  1. server {
  2.                 listen                        9005;
  3.                 server_name                127.0.0.1;
  4.                 # 这里需要写相对路径  绝对路径会报错404  
  5.                 root                         ../terrain;
  6.                 autoindex                 on;
  7.                 location / {
  8.                 # 支持跨域
  9.             add_header Access-Control-Allow-Origin *;
  10.         add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  11.         add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
  12.         add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
  13.                 }
  14.                 # 不存缓存 每次重新验证
  15.                 add_header Cache-Control "no-cache,must-revalidate";
  16.     }
复制代码
得到到终极cesium工程必要的地形url:http://127.0.0.1:9005
4 cesium工程引用实现地形效果

  1. // 加载地形
  2. function loadDingx(type) {
  3.   var url;
  4.    url = "http://localhost:9005/";
  5.   // url = "http://localhost:9003/terrain/ND1oIKj0"
  6.   if (url != null) {
  7.     if (type == 0) {
  8.       viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider();
  9.     } else {
  10.       var terrainProvider = new Cesium.CesiumTerrainProvider({
  11.         url: url,
  12.         requestVertexNormals: true,
  13.         requestWaterMask: true ,
  14.         tilingScheme: new Cesium.GeographicTilingScheme(),
  15.         requestVertexNormals:true
  16.       });
  17.       viewer.terrainProvider = terrainProvider;
  18.     }
  19.   }
  20. }
复制代码
到此就竣事了!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表