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

实现效果如图:

详细步骤

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,配置方式如下:

server {
		listen			9005;
		server_name		127.0.0.1;
		# 这里需要写相对路径  绝对路径会报错404  
		root 			../terrain; 
		autoindex 		on;
		location / {
		# 支持跨域
	    add_header Access-Control-Allow-Origin *;
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
        add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
		}
		# 不存缓存 每次重新验证
		add_header Cache-Control "no-cache,must-revalidate";
    }

获得到最终cesium工程需要的地形url:http://127.0.0.1:9005

4 cesium工程引用实现地形效果

// 加载地形
function loadDingx(type) {
  var url;
   url = "http://localhost:9005/";
  // url = "http://localhost:9003/terrain/ND1oIKj0"
  if (url != null) {
    if (type == 0) {
      viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider();
    } else {
      var terrainProvider = new Cesium.CesiumTerrainProvider({
        url: url,
        requestVertexNormals: true,
        requestWaterMask: true ,
        tilingScheme: new Cesium.GeographicTilingScheme(),
        requestVertexNormals:true

      });
      viewer.terrainProvider = terrainProvider;
    }
  }
}

到此就结束了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/555210.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言 递归

递归指的是在函数的定义中使用函数自身的方法。 举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚&…

python3高级特性

1. 装饰器 装饰器是 Python 的一种高阶函数,它可以在不修改函数内部代码的情况下,给函数增加额外的功能。 案例:记录函数执行时间的装饰器 import time def timing_decorator(func): def wrapper(*args, **kwargs): start_time time.t…

lua学习笔记18(面相对象之多态)

print("*****************************面相对象多态*******************************") --相同方法不同执行逻辑 object{} object.id1 function object:new()local obj{}self.__indexself setmetatable(obj,self)return obj end function object:subClass(className)…

PLC程序远程上下载

在工业自动化领域,PLC(可编程逻辑控制器)扮演着至关重要的角色。然而,传统的PLC程序上传与下载方式往往受限于物理距离和现场环境,给工程师们带来了诸多不便。如今,随着远程技术的不断发展,PLC程…

基于XML配置bean(一)

文章目录 1.获取bean的两种方式1.通过id获取bean(前面用过)2.通过类型获取bean(单例时使用)1.案例2.代码1.beans.xml2.SpringBeanTest.java3.结果 3.注意事项 2.三种基本依赖注入方式1.通过属性配置bean(前面用过&…

Eureka基础介绍和使用

目录 一.理论基础 二.父项目 2.1 新建父项目 2.2 管理依赖 三.子项目 3.1 新建子项目 3.2 注册中心Server依赖和启动类和配置文件 3.3 生产者Client 依赖和启动类和配置文件 3.5 消费者Custmer依赖和配置类、启动类和配置文件 四.心跳 五.公共资源项目 5.1新建实体…

BUG:vue表单验证校验不报错,必填都有信息,就是不能正常往下进行

vue表单验证未报错却出现异常 框架bug场景解决办法 框架 UI:element-UI 前端:vue2 bug场景 正常表单里面,有的信息要求必填或者加了一些限制,作为校验验证,只有走到校验才会执行其他行为,比如调用保存接…

labelimg安装和使用(解决闪退问题)

🌈个人主页:Rookie Maker 🔥 系列专栏:计算机视觉 🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆 😀欢迎来到我的代码世界~ 😁 喜…

C++修炼之路之list--C++中的双向循环链表

目录 前言 一:正式之前先回顾数据结构中的双向循环链表 二:list的简介 三:STL中list常用接口函数的介绍及使用 1.构造函数接口 2.list迭代器 范围for 3.数据的修改接口函数 4.list容量操作函数 5.list的迭代器失效 6.演示代码和测…

【网络编程】Web服务器shttpd源码剖析——线程池调度

hello !大家好呀! 欢迎大家来到我的网络编程系列之web服务器shttpd源码剖析——线程池调度,在这篇文章中,你将会学习到在Linux内核中如何创建一个自己的并发服务器shttpd,并且我会给出源码进行剖析,以及手绘…

allure2教程-3-测试报告定制

领取资料,咨询答疑,请➕wei: June__Go 上一小节,我们学习一下pytestallure2生成html测试报告的方法,本小节我们学习一下allure2测试报告的定制。 allure2报告预览 预览网址:https://demo.qameta.io/allure/# allur…

[leetcode] minimum-falling-path-sum

. - 力扣(LeetCode) 给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多…

归并排序了解吗?手撕一个我看看?

目录 1- 归并排序原理1-1 主要思想1-2 实现步骤 2- 归并排序代码实现(双指针)⭐ 归并排序 ——实现思路 3- ACM模式实现 1- 归并排序原理 1-1 主要思想 归并排序基于分治 将序列中待排序的数数字分为若干组,每个数字分为一组 将若干组两两合并,保证合…

3D模型处理的多进程并行【Python】

今天我们将讨论如何使用 Python 多进程来处理大量3D数据。 我将讲述一些可能在手册中找到的一般信息,并分享我发现的一些小技巧,例如将 tqdm 与多处理 imap 结合使用以及并行处理存档。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生…

【蓝桥杯2025备赛】素数判断:从O(n^2)到O(n)学习之路

素数判断:从O( n 2 n^2 n2)到O(n)学习之路 背景:每一个初学计算机的人肯定避免不了碰到素数,素数是什么,怎么判断? 素数的概念不难理解:素数即质数,指的是在大于1的自然数中,除了1和它本身不再有其他因数的自然数。 …

4.18作业

顺序栈: #include "seq_stack.h" seq_p creat_stack() //从堆区申请顺序栈的空间 {seq_p S(seq_p)malloc(sizeof(seq_stack));if(SNULL){printf("空间申请失败\n");return NULL;}bzero(S->data,sizeof(S->data));S->top-1;return S; …

OpenGL:图元

OpenGL的图元 点 GL_POINTS: 将顶点绘制成单个的点 线 GL_LINES:将顶点用于创建线段,2个点成为一条单独的线段。如果顶点个数是奇数,则忽略最后一个。 顶点:v0, v1, v2, v3, … , vn,线段:v0-v1, v2-v3, v4-v5, … , vn-1 - vn GL_LINE_STRIP:将顶点用于创建线段,…

在Linux系统中,禁止有线以太网使用NTP服务器进行时间校准的几种方法

目录标题 方法 1:修改NTP配置以禁止所有同步方法 2:通过网络配置禁用NTP同步方法 3:禁用NTP服务 在Linux系统中,如果想要禁止有线以太网使用NTP服务器进行时间校准,可以通过以下几种方法之一来实现: 方法 …

tcp网络编程——2

1.一个服务器只能有一个客户端连接(下面代码) ​​​​​​​tcp网络编程(基础)-CSDN博客 2.一个服务器可以有多个客户端连接(多线程) server端创建多个线程,每个线程与不同的client端建立连…

代码签名证书的作用及申请

代码签名证书新兴的数字证书的一种,应用范围相对于传统的数字证书而言要稍微少一些。用于验证软件代码的来源和完整性,并提供了一种防止代码被篡改或损坏的机制。常用于软件开发上,代码签名证书由签名证书公钥和私钥证书两部分组成&#xff0…
最新文章