在cesium中使用3D地形数据terrain builder的打开步骤

2023-10-26

本来题目名字叫做(大龄无经验程序员终成正果----纪念上班第三天),后加之后再,不行,必须把这篇博文发出去了。本篇用cesium-terrain-builder生成cesium可以使用的地形数据并用cesium-terrain-server发布。
使用准备:
0.编译环境:linux建议是ubuntu系的,apt牛力好。Windows可以使用WSL2(妥妥的生产力工具)。
1.工具下载:cesium-terrain-builder
2.忽略这个,下文交代,工具下载:cesium-terrain-server
3.工具下载:QGIS或ArcGIS,推荐开源的QGIS,软件嘛,就得open source & copyleft。
4.cesium.js,这是官网。我们采用非node形式安装,直接把整个js包下下来。

当然你的原材料是DEM。有的可以略过此段。现在应该都不用90m的吧,30M也还行,现在有这玩意儿。12.5M高清分辨率下载,下载需注册帐号,然后左上角Dataset选ALOS PALSAR,过滤条件Filters那里文件类型File Type选Hi-Res Terrain Corrected,Polarizations选HH。如图:在这里插入图片描述
然后尽情的框选吧,右侧文件包注意我们这里只需第一个,带dem的那一项,选全球的数据随你下!

预处理图片,如上所述,如果你只有一块图,就不需要合一了,在ArcGis里叫镶嵌。
然后有一步需要把无数据的替换成0。在ArcGis里是Con(IsNull("",0,""))这种公式。在QGIS里简单的直接点工具箱–>栅格工具–>填充无数据像元,填个0,瞬间解决。细节我就不过多赘述,非Giser。。

编译安装:
我们的重头戏在这一段,github真是全人类的代码宝库。cesium-terrain-builder使用C++编写,下完以后,解压缩进入根目录,ubuntu系需要安装cmake,g++,libgdal-dev,(sudo apt install -y …)然后执行mkdir build && cd build && sudo cmake … && sudo make install。不出意外你应该成功了,ctb-tile在./tools下。这里有一点需要注意,使用前需要sudo ldconfig。

运行:
生成文件的存放路径,这里应该是可以自定义的,但为了避免404,建议如下mkdir。
文件在/data/tilesets/terrain/xx下,用的时候指向/data/tilesets/terrain即可。
使用地形生成工具:
-o 生成文件的存放路径
-s 放大级数最大值,值越大,电脑计算时间越久,文件占用空间越大。
-e 放大级数最小值
-r 光栅重采样算法指定,这里是nearest( nearest; bilinear; cubic; cubicspline; lanczos; average; mode; max; min; med; q1; q3. Defaults to average.)
我的是:sudo ctb-tile -o /data/tilesets/terrain/yc -s 15 -e 0 -r nearest ~/下载/AP_05347_FBS_F0600_RT1.dem.tif
会显示:0…10…20…30…40…50…60…70…80…90…100 - done.
这里还需生成layer.json文件。cesium.js需要这个文件来描述地形文件信息。ctb-tile -l 图片路径即可,然后把这个layer.json移动mv到你的生成文件的文件夹中。

使用:
接下来就是把这些cesium可以识别的文件用cesium-terrain-server发布以供cesium在浏览器中使用。cesium-terrain-server是用go语言写的,所以要安装go语言(sudo apt install golang -y)。安装地形服务很简单,一句话:go get github.com/geo-data/cesium-terrain-server/cmd/cesium-terrain-server
因为我也没学go语言,下下来肯定有用,如果大家网络不好肯定这里很麻烦,望大神指教下下下来怎么安装。
后面应该在~/go/bin下,如果你没有部署GO_ROOT等环境变量的话。使用时只需指定-dir参数,指向之前-o的那个文件夹前的文件夹,如图所示&

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在cesium中使用3D地形数据terrain builder的打开步骤 的相关文章

  • React-Native 博览会 POST Blob

    我正在使用 React Native 和 expo 并尝试通过 fetch api 发布 blob 图像 我对正文使用表单数据格式 并且我有下一个代码 const blob await response blob const form ne
  • 检索博客中所有标签的列表

    有没有办法使用 gdata api 检索所有列表labels在博主中 我需要根据该列表创建一个菜单 但不能简单地列出所有帖子并获取它 因为它是一个繁忙的博客 并且有超过 2000 个帖子 以下是使用 json 调用获取标签列表的最简单方法
  • (无限?)JavaScript 代码中的循环

    我有以下 JavaScript 代码来在网站上 显示 XML function createChild node tabindex var child node childNodes var r var tabs for i 0 i
  • Nasm 打印到下一行

    我用 nasm Assembly 编写了以下程序 section text global start start Input variables mov edx inLen mov ecx inMsg mov ebx 1 mov eax 4
  • 类型错误:无法读取未定义的属性“存在”

    我正在尝试为 jsx 文件编写一个测试用例 在此我能够传递 proptypes 但不是我正确传递 proptypes 的地方 当我运行测试用例时出现错误 下面提供我的错误 测试用例和代码 类型错误 无法读取未定义的属性 存在 不知道如何让它
  • bash双括号问题

    我对 bash 脚本非常陌生 在使用双括号时遇到了问题 我似乎无法让它们在 Ubuntu Server 11 10 中工作 我的下面的脚本位于 if test sh 中 bin bash if 14 14 then echo FOO fi
  • jquery javascript 在 codeigniter 中不起作用

    大家好 感恩节快乐 我在将此脚本包含在 codeigniter 中时遇到一些问题
  • 创建地图后向 Google 地图 v3 添加标记

    我对使用 Google Maps API 比较陌生 现在我正在开发一个项目 用户可以选择各种搜索过滤器并查看结果自动显示在地图上 而无需重新加载页面 到目前为止 我的方法是创建一个控制地图的 Javascript 对象 以便我可以按照我的意
  • 规则和夏令时

    我在用着rrule https github com jakubroztocil rrule在我的数据库中创建和存储事件 一切正常 直到我发现我的重复事件与 3 月 31 日之后有一个小时的差异 在法国 这一天我们进行夏令时更改 实际上 我
  • 散景服务器获取鼠标位置

    我正在开发一个带有散景 0 12 2 的交互式应用程序 它根据特定的交互更新绘图 现在 我使用滑块来更改图中字形的位置 但实际上我想访问鼠标在特定图中的位置 数据集是一个多维矩阵 张量 密集数据 每个图在特定位置显示一个维度 如果我更改一个
  • 获取 Html.TextBoxFor 字段的 HTML id

    有没有办法在 Javascript 中获取 ASP NET MVC 控件生成的客户端 ID Html TextBoxFor m gt m Name 像这样 Html IdFor m gt m Name
  • 解决多个 jQuery 文件之间的冲突

    我的项目中有多个 jquery 文件 我正在使用jquery1 4 2使用facebox 但我也需要原型和scriptacolous脚本 我用过 jQuery noconflict 在我的代码中 但它不起作用 这是网址http mlep c
  • Nodejs Base64 中的读取文件

    我正在尝试从客户端读取以 base64 编码的图像 如何使用nodejs进行阅读 My code add to buffer base64 image var encondedImage new Buffer image name base
  • 跟踪 pthread 调度

    我想做的是创建某种图表 详细说明 Linux 中 两个 线程的执行情况 我不需要查看线程的作用 只需查看它们何时被安排以及持续多长时间 基本上是一条时间线 在过去的几个小时里 我一直在互联网上搜索跟踪 pthread 调度的方法 不幸的是
  • 所有人共享的 First Load JS 在 next.js 中相当重

    I have a project on Next js framework and the problem is that First Load JS shared by all pages is rather heavy I want t
  • XHR 调用是宏任务还是微任务?

    Ajax 调用被安排为微任务还是宏任务 浏览器之间有什么区别吗 在 JavaScript Ninja 的秘密 第二版一书中 作者指出网络事件被安排为宏任务 因此 XHR 回调与宏任务一起排队
  • 过早退出 Qualtrics 中的循环和合并块

    我目前正在进行一项 Qualtrics 调查 受访者必须解决一长串字谜问题 然后回答一些人口统计问题 为了使变位词部分更容易 我使用了循环和合并块 第一个字段是要解决的变位词 第二个字段是变位词的解决方案 因此调查可以根据受访者的答案来检查
  • .js.erb VS .js

    将 Rails 应用程序的 javascript 放入 js erb 文件而不只是将其放入 application js 文件有什么好处 我有一个企业创建按钮 因此我应该将代码放入 create js erb 文件中 还是使用以下方法将其放
  • 将变量从 PHP 传递到 JavaScript 的有效方法[重复]

    这个问题在这里已经有答案了 有时我必须将一些变量从 PHP 传递到 JS 脚本 现在我是这样做的 var js variable 但这非常丑陋 我无法在 js 文件中隐藏我的 JS 脚本 因为它必须由 PHP 解析 处理这个问题的最佳解决方
  • Alsa 带有来自调制解调器的 PCM 接口

    我有一个基于 imx28 CPU 的定制板 CPU 的串行端口连接到调制解调器的 PCM 输出 我必须为调制解调器的 PCM 接口开发一个驱动程序 使其成为 ALSA SoC 的一部分 您能指出内核树 中与我的设置重新组合的一些驱动程序吗

随机推荐

  • STC15单片机实战项目 - 硬件调试

    硬件调试 一 调试工具 1 直流电源 测试5 28V供电 2 手机充电线 测试USB供电 程序烧录 3 万用表 测量电压 4 示波器 测量开关波形 纹波等 二 焊接样机 焊接好的样机如下图 说明 作为硬件工程师 平时要多练焊接 练就一流的焊
  • 第二课 什么是norm game?(An Evolutionary Approach to Norms)

    文章目录 前置课程 An Evolutionary Approach to Norms Simulation of the Norms Game first step second step third step fourth step f
  • 【论文笔记】Darts-可微神经架构搜索(一)

    是什么 darts是什么 全称 Differentiable ARchiTecture Search 它是一种新 2018 的NAS 神经架构搜索 方法 NAS是什么 全称 neural architecture search 神经架构搜索
  • JS逆向时碰到了恶心的死代码怎么办?手把手教你解决!

    文章作者 夜幕团队 NightTeam 蔡老板 Loco 润色 校对 夜幕团队 NightTeam Loco 你是否也曾有过 在逆向时看到一大坨代码 但自己却无从下手 的遭遇 你是否也曾有过 跟着代码跳了很久之后 才发现那一大坨代码其实没有
  • MySQL的运行机制是什么?它有哪些引擎?

    目录 整个 SQL 的执行流程 1 查询缓存的利弊 2 如何选择数据库引 3 InnoDB 自增主键 整个 SQL 的执行流程 首先客户端端先要发送用户信息去服务端进行授权认证 如果使用的是命令行工具 通常需要输入如下信息 mysql h
  • 《Flutter入门疑难杂症》 Flutter的UI适配方案

    本文后面已经被我用新的extension大法替代咯 有兴趣的可以看我写的这篇文章 https blog csdn net WZAHD article details 111404843 spm 1001 2014 3001 5501 话不多
  • TimeLine 的使用说明

    一 关于 TimeLine Timeline是一套基于时间轴的多轨道动画系统 它支持可视化编辑 实时预览 这一个技术相对于其他动画系统 最大的区别就是 Timeline可以针对多个游戏物体做出的一系列动画 主要用于过场动画的制作 实现电影级
  • 如何记录键盘SIGQUIT次数

    Unix信号 在计算机科学中 信号 英语 Signals 是Unix 类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式 它是一种异步的通知机制 用来提醒进程一个事件已经发生 当一个信号发送给一个进程 操作系统中断了进
  • EOS与以太坊有哪些区别?

    以太坊是一个专门为开发和运行去中心化应用 DAPP 搭建的智能合约平台 EOS与以太坊类似 同样是基于智能合约和区块链而搭建 但是 从技术和设计理念等方面来看 这两者之间实际上存在明显的区别 那么EOS和以太坊到底有什么区别呢 这个问题要从
  • 深入了解接口测试:Postman 接口测试指南

    在现代软件开发生命周期中 接口测试是一个至关重要的部分 使用 Postman 这一工具 可以轻松地进行 接口测试 以下是一份简单的使用教程 帮助你快速上手 安装 Postman 首先 你需要在电脑上安装 Postman 你可以从官网上下载并
  • python如何取0到无穷大_python如何表示无穷大

    float inf 表示正无穷 float inf 或 float inf 表示负无穷 其中 inf 均可以写成 Inf 起步 python中整型不用担心溢出 因为python理论上可以表示无限大的整数 直到把内存挤爆 而无穷大在编程中常常
  • 使用 Mapbox 在 Vue 中开发一个地理信息定位应用

    本文首发自 前端修罗场 点击加入 是一个由 资深开发者 独立运行 的专业技术社区 我专注 Web 技术 Web3 区块链 答疑解惑 面试辅导以及职业发展 博主创作的 前端面试复习笔记 点击订阅 广受好评 已帮助多人提升实力 拿到 offer
  • 20210601

    一 调整系统的共享内存上限 今天遇到创建32个大小为100MB的共享内存失败 原因是创建的共享内存总大小超过了系统允许的共享内存上限 查询系统共享内存上限的命令是 ipcs l ops g null kernel ipcs l Shared
  • nodejs原生搭建后端服务

    node nodejs原生搭建后端服务 nodejs写后端 默默的小跟班的博客 CSDN博客
  • CentOS8下安装配置Wireguard

    1 CentOS8 0服务端安装 yum update y yum install epel release https www elrepo org elrepo release 8 el8 elrepo noarch rpm yum i
  • nova policy overide (by quqi99)

    作者 张华 发表于 2023 05 19 版权声明 可以任意转载 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 Problem ExternalNetworkAttachForbidden will be thrown w
  • 【无标题】

    C bug记录 request for member endTime in something not a structure or union 粗心的时候经常遇到这个问题 但有时候就想不起来原因 这是因为对指针结构体的成员变量使用了 但应
  • 学习记录679@scp 拷贝当前主机某目录下某段时间内的文件到另一台服务器

    要按拷贝当前服务器的下的某个文件夹下的某段时间内的文件到另一台服务器 需要结合find exec scp命令 如下 我在当前主机下执行 拷贝此目录下的时间介于2020 12 24和2020 12 31之间的文件 注意不包括2020 12 3
  • Linux软件安装管理:在VMware挂载本地iso光盘镜像、配置yum软件仓库

    在操作VMware安装Linux系统后由于安装CentOS 7的最小化安装少了一些工具 比如 ifconfig 及 netstat 等 由于没问外部在线网络环境访问下载相关依赖包 则我们需要配置离线依赖库 本次操作是在Vmware上操作的
  • 在cesium中使用3D地形数据terrain builder的打开步骤

    本来题目名字叫做 大龄无经验程序员终成正果 纪念上班第三天 后加之后再 不行 必须把这篇博文发出去了 本篇用cesium terrain builder生成cesium可以使用的地形数据并用cesium terrain server发布 使