我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Cesium加载离线地图和离线地形

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Cesium加载离线地图和离线地形

文章目录

前言

直接把地图数据切片,然后通过nginx以静态服务方式发布。

使用工具:

  • 图新地球 提取码:oznv————————————用来下载地图
  • 红豆地球 提取码:2thg————————————用来下载地图
  • Nginx 提取码:wnjl——————————————代理服务器,用于瓦片数据发布
  • Cesiumlab 提取码:iey3————————————用于数据切片
  • MapBox影像 提取码:48dt———————————用来加载影像
  • Test源码 提取码:1cpt——————————————Test目录下所有文件
  • 桂林市七星区地形数据 提取码:ee1k————————桂林市七星区地形原始数据和处理后的数据

一、Cesium加载离线地图

1.1 下载数据

打开红豆地球直接拖入加载MapBox影像

image-20220615184733459

点击下载全球

image-20220615184844014

新建下载

image-20220615185008192

由于没有付费下载速度非常慢,所以得找一款下载速度较快的软件,在2.4改进中提出。

image-20220615185045216

2.2 数据处理

输出数据

image-20220615185704963

2.3 地图发布

首先在官网下载nginx(在前言中有百度云链接),下载windows稳定版。

image-20220615190001300

下载好后解压出来,不要直接运行nginx.exe,要通过命令行来运行。

image-20220615215649446

使用cd命令到达nginx的解压缩后的目录

cd C:UsersLenovoDesktop ginx-1.22.0

image-20220615190522148

使用启动命令启动nginx服务,会有一个窗口一闪而过。

start nginx

查看任务进程是否存在,dos输入:

tasklist /fi “imagename eq nginx.exe”

image-20220615190901827

最后用浏览器访问http://localhost/就可以看到成功部署页面。

image-20220615201817443

紧接着修改配置文件,配置目录各文件夹作用如下图所示,这里只修改conf目录里面的文件。

Nginx Windows修改配置文件

在conf目录下找到nginx.conf使用vscode打开即可,找到server这个节点修改成如下保存(原来server函数全部删除)。

    server {        listen 80;        location / {            alias C:/Users/Lenovo/Desktop/Test/CesiumDemo/;            index  index.html index.htm;        }         location /map {            alias C:/Users/Lenovo/Desktop/Test/data;            autoindex on;            autoindex_localtime on;        }    }

修改完成后保存,使用以下命令检查一下配置文件是否正确,后面是nginx.conf文件的路径,successful就说明正确了。

nginx -t -c /Users/Lenovo/Desktop/nginx-1.22.0/conf/nginx.conf

image-20220615192904657

使用以下命令重新加载nginx,注意:每次修改完配置文件都要重新使用命令加载一次

nginx -s reload

这里在桌面Test中新建两个文件夹存放Cesium和数据

image-20220615204244039

在CesiumDemo放入第一个Cesium APP(hello world)的文件

image-20220615204302152

在data文件夹放入导出的数据

image-20220615194106008

通过浏览器尝试访问http://localhost/map/即可看到数据路径下的文件

image-20220615202943745

最后在CesiumDemo文件夹中的index.html中引入瓦片地图服务代码

var viewer = new Cesium.Viewer('cesiumContainer', {            animation: false,//是否显示动画控件            baseLayerPicker: true,//是否显示图层选择控件            geocoder: true,            timeline: false,            sceneModePicker: true,            navigationHelpButton: false,            infoBox: true,            imageryProvider: new Cesium.UrlTemplateImageryProvider({                url: '/map/{z}/{x}/{y}.png',                fileExtension: 'png'            })});

index.html完整代码

                Cesium App                

通过访问http://localhost/打开Cesium得到图像

image-20220615203857337

2.4下载速度改进

改进方法是使用图新地球下载数据会更快,在这里演示下载湖南省地图数据

首先解压后双击打开图新地球

image-20220615211128781

直接拖入MapBox.lrc图层到图新地球

image-20220615211304147

在搜索栏中搜索湖南省

image-20220615211339123

点击下载

image-20220615211417825

选择地图上湖南省包围的平面,然后配置好下载,这里下载11个级别391.5MB(两分钟即可下载好)。

image-20220615211526290

设置好路径下载

image-20220615211744197

下载好后使用官网工具Cesiumlab进行影像切片

image-20220615212125770

选择11个层级后选择散列

image-20220615212326139

等待数据处理好

image-20220615212426661

处理好后将data文件夹里原来的数据全部删除,然后用处理好的数据全部替换,最后重新访问http://localhost/得到只有湖南省影像的地图。

image-20220615213013161

image-20220615213138965

图新地球目前没有找到下载全球影像的方法,不过他可以下载多个图层,此后在做补充。

参考资料:

  1. Cesium离线地图极简教程
  2. 如何在Windows系统搭建Nginx服务器

二、Cesium加载离线地形

这是官网地形效果,下面加载本地离线地形,方法同加载离线地图一样,先下载数据切片后通过nginx发布。

image-20220618210136963

2.1 下载数据

首先在地理空间数据云上下载数据。http://www.gscloud.cn/search(桂林市七星区地形数据 提取码:ee1k )

image-20220618210648250

选择好需要下载的数据级,这里选择DEM数字高程数据中的GDEMV3 30M分辨率数字高程数据。

image-20220618210936217

然后检索广西桂林七星区数据。

image-20220618211033669

实际下载的数据是图中较大框内的数据,远比七星区大。

image-20220618211141266

点击下载标签下载

image-20220618211217380

2.2 数据处理

下载完后解压出来,打开CesiumLab选择地形切片。

image-20220618211348446

配置好后提交出来,在这里同样选择散列

image-20220618211654353

实际耗时半个小时处理完(为节省时间地形已传百度云:桂林市七星区地形数据 提取码:ee1k )

image-20220618211745348

2.3 地形发布

处理完后同样在Test文件夹下新建一个terrain文件夹存放地形数据,原地图数据可新建一个map文件夹保存。terrain文件夹内文件如图所示。

image-20220618212117066

在nginx的conf目录下找到nginx.conf修改配置文件,在server函数中添加

ocation /terrain {    alias C:/Users/Lenovo/Desktop/Test/data/terrain;    autoindex on;    autoindex_localtime on;}

完整server代码如下:

server {    listen 80;    location / {    alias C:/Users/Lenovo/Desktop/Test/CesiumDemo/;    index  index.html index.htm;}location /map {    alias C:/Users/Lenovo/Desktop/Test/data/map;    autoindex on;    autoindex_localtime on;}location /terrain {    alias C:/Users/Lenovo/Desktop/Test/data/terrain;    autoindex on;    autoindex_localtime on;}}

使用以下命令重新加载nginx,注意:每次修改完配置文件都要重新使用命令加载一次

nginx -s reload

在浏览器访问http://localhost/terrain/即可看到terrain内目录中的文件成功发布。

image-20220618212514477

最后在CesiumDemo文件夹中的index.html中引入地形服务代码

var terrainProvider = new Cesium.CesiumTerrainProvider({url: 'http://localhost:80/terrain'});viewer.terrainProvider = terrainProvider;

完整代码:

this.viewer = new Cesium.Viewer('cesiumContainer', {    selectionIndicator: false, // 不显示指示器小部件    infoBox: true, //  不显示信息框    sceneModePicker: false, // 不显示模式切换选项    baseLayerPicker: false,    navigationHelpButton: false,    animation: true,    shouldAnimate: true,    geocoder: false,    homeButton: false,    imageryProvider: new Cesium.UrlTemplateImageryProvider({    url: '/map/{z}/{x}/{y}.png',    fileExtension: 'png'    })})    var terrainProvider = new Cesium.CesiumTerrainProvider({    url: 'http://localhost:80/terrain'    });    viewer.terrainProvider = terrainProvider;

本地影像效果如图

image-20220618213427247

对比官方影像数据发现问题。

image-20220618210136963

参考资料:

  1. Cesium:加载本地高程/地形数据

2.4 遇到的问题

  • 问题:效果差、精度低,有很多小地形没有显示
  • 原因:可能是因为下载的地形数据分辨率和精度较低
  • 改进:寻找精度分辨率更高的地形数据

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

来源地址:https://blog.csdn.net/m0_54849806/article/details/126070809

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Cesium加载离线地图和离线地形

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Cesium加载离线地图和离线地形

文章目录 前言一、Cesium加载离线地图 1.1 下载数据2.2 数据处理2.3 地图发布2.4下载速度改进 二、Cesium加载离线地形 2.1 下载数据2.2 数据处理2.3 地形发布2.4 遇到的问题 前言 直接把地图数据
2023-08-18

cesium开发之如何在vue项目中使用cesium,使用离线地图资源

这篇文章主要介绍了cesium开发之如何在vue项目中使用cesium,使用离线地图资源问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-18

Win10系统怎么下载使用离线地图功能?

Win10地图怎么下载离线地图包?如果是有线宽带包月上网的倒没javascript事费点流量也就算了。如果是平板电脑上使用3/4G上网的如果没有这个离线功能地图包则会比较惨谈。有需要的朋友可以看看我在Win10上下载离线地图的过程 。1、在
2023-06-13

QT编写地图如何实现离线轮廓图

这篇文章主要为大家展示了“QT编写地图如何实现离线轮廓图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“QT编写地图如何实现离线轮廓图”这篇文章吧。一、前言离线轮廓图使用起来,就没有在线轮廓图方便
2023-06-22

Win10 Build 9888怎么使用离线地图功能

据外媒报道,在实现Windows Phone和Windows无缝连接的过程中,有一项功能直到现在都还没有出现,那就是将地图保存到系统中然后在编程客栈离线的android情况下加以使用。不过现在,外媒在Windows 10 http://ww
2023-06-09

Win10 Mobile内置here离线地图包数据怎么升级?

wp8.1WP系统上提供的《诺基亚地图》已经快要关闭下架,而微软在Win10 Mobile、Windows10 PC上使用内置的《Windows地图》,但离线包数据仍然会使用Here数据,php今天微软推送了地图数据更新。Windows 1
2023-05-20

Windows8应用怎么从任意地方下载并离线安装

我们可以通过Windows 8新增的应用商店在本机安装各种应用,不过Windows 8应用的安装是有限制的,只能在应用商店下载在线安装。有没有办法,可以像传统的Windows软件一样,从任意地方下载获取,然后在本机离线安装?【解题思路】这个
2023-06-07

前端小技能之Vue集成百度离线地图功能总结

最近项目里集成了百度地图的一些功能,所以下面这篇文章主要给大家介绍了关于前端小技能之Vue集成百度离线地图功能的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-01-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录