《水经注地图服务》发布的影像数据如何在OsgEarth中调用

news2024/9/25 1:13:48

OsgEarth 是一个用于OpenSceneGraph (OSG)的可扩展地形渲染工具包,它是一个开源、高性能、3D 图形工具包。

只需创建一个简单的 XML 文件,将其指向您的图像、高程和矢量数据,将其加载到您最喜欢的 OSG 应用程序中,然后开始!osgEarth 支持各种数据,并附带大量示例,可帮助您快速轻松地启动和运行。

在OsgEarth中离线调用

在运行OsgEarth之前,需要为其配置正确的数据发布地址,首先,可以通过在DOS窗口中运行“IPConfig”命令或其它方式获取本机IP地址,如下图所示。

图片

获取本机IP地址

然后,在提供的OsgEarth27程序目录中找到“map.earth”配置文件,如下图所示。

图片

配置文件

在记事本中打开“map.earth”文件,构造和WeServer发布的tms服务一致的url(IP修改为自己的IP,端口和图层名字和自己发布的服务一致),中间件发布的地址如下图所示。

图片

水经注地图服务发布的tms服务

修改后的“map.earth”文件如下图所示。

图片

修改url地址

注:发布地图服务至少要有影像和高程服务,这样OsgEarth才能正常运行,有多少个地图服务就在上面的.earh文件内填写多少。

在OsgEarth27程序目录中,找到运行程序“IxEarthViewer.exe”文件所在目录(例如:C:\OsgEarth27\Bin\ReleaseWin32),如下图所示。

图片

运行程序文件

复制“IxEarthViewer.exe”文件所在目录路径,这样可以方便在命令窗口中快速粘贴目录位置,然后输入“IxEarthViewer.exe ../map.earth”命令,如下图所示。

图片

输入命令

执行命令之后,将会显示三维地球,如下图所示。

图片

三维地球

放大之后可以查看到三维地形,如下图所示。

图片

三维地形

这样一来,将“OsgEarth27”目录复制到内网中的任何一台电脑上运行都可以显示三维地形。

接下来,我们再拓展一下演示一下OsgEarth的天空盒显示功能和基于《全国离线地图C2120》的显示效果。

天空盒效果

从上文中可以看到,显示的三维地球没有天空,看起来不够美观,我们可以通过在DOS命令窗口中执行“osgearth_viewer.exe ../map.earth --sky”命令显示天空盒,如下图所示。

图片

执行命令

程序启动之后,可以看到显示了一个带有大气效果和星空背景的蓝色地球,几乎与GoogleEarth地球一模一样,如下图所示。

图片

有大气效果的三维地球

在视图的左下角,可以通过调整滑块的方式来调整太阳的位置,如下图所示。

图片

调整太阳位置

可以将地球显示视角调整到太阳初升的时候,可以看见美丽的地平线,如下图所示。

图片

地平线

清晨初升的太阳,普照着我神州大地,如下图所示。

图片

初升的太阳

水经注全国离线地图效果

本文中为大家提供的示例数据为全球前10级离线卫星影像与高程DEM数据,因此显示效果会有一些差强人意。

但当把22.3TB的《全国离线地图5.0》在内网离线发布,并加载到OsgEarth中之后,效果就非常惊艳了!

由于该数据为全国1-20级高清卫星影像,因此相当于是一个可以在内网离线运行的谷歌地球,如下图所示。

图片

轮廓分明的地形地貌

图片

一马平川的高速公路

图片

远处清晰可见的雪山

总结

最后再次申明,由于本文中提供的数据为示例数据,旨在说明地图发布服务中间件的内网离线发布功能,因此卫星影像数据和高程DEM数据都仅仅是全球前10级数据。也就是说由于分辨率比较低,从而导致了显示出的三维效果并不是非常的突出。

如果你希望能显示出类似于谷歌地球的三维地球效果,可以通过关注公号“水经注GIS”并回复“免费数据”可领取一个省的高清卫星影像和全国的30米高程DEM切片数据,然后更新到对应的数据目录即可!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥云课ROS机器人旧版实验报告-05导航功能

项目名称 实验五 导航功能 成绩 内容:创建变换、发布传感器消息、里程数据信息、创建基础控制器、创建地图,机器人配置、全局和局部代价地图、rviz详细配置、自适应蒙特卡洛定位,避障,目标发送 实验记录(70分&…

Jenkins工具系列 —— 插件 实现用户权限分配与管理

文章目录 安装插件 Role-based Authorization Strategy添加用户注册配置权限查看当前使用者,获取user id配置管理员权限配置普通用户权限(非管理员权限) 小知识 安装插件 Role-based Authorization Strategy 点击 左侧的 Manage Jenkins —&…

[LeetCode]只出现一次的数字相关题目(c语言实现)

文章目录 LeetCode136. 只出现一次的数字ⅠLeetCode137. 只出现一次的数字 IILeetCode260. 只出现一次的数字 IIILeetCode268. 丢失的数字 LeetCode136. 只出现一次的数字Ⅰ 题目: 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元…

使用MyBatis(2){使用myBatis操作增删改查/动态SQL}

目录 一、定义接口、实体类、创建XML文件实现接口) 二、MyBatis的增删改查 🍅1、MyBatis传递参数查询 🎈写法一 🎈写法二 🎈两种方式的区别 🍅2、删除操作 🍅3、根据id修改用户名 &#…

Java 基础进阶总结(一)反射机制学习总结

文章目录 一、初识反射机制1.1 反射机制概述1.2 反射机制概念1.3 Java反射机制提供的功能1.4 反射机制的优点和缺点 二、反射机制相关的 API2.1 一、初识反射机制 1.1 反射机制概述 JAVA 语言是一门静态语言,对象的各种信息在程序运行时便已经确认下来了&#xff0…

延长周末体验感

延长周末体验感 写在最前面周末的时间规划题外话善解人意的chatgpt 提升周末体验感的好方法随机选择一个周末活动 怎样才能获得充分的休息 写在最前面 话题征文~ https://activity.csdn.net/creatActivity?id10533&spm1011.2432.3001.9644 工作以后常常容易感到疲于奔命…

python简单小游戏代码100行,python小游戏程序源代码

大家好,小编来为大家解答以下问题,python简单小游戏代码100行,python小游戏代码能用的,现在让我们一起来看看吧! Python编写简易猜数字小游戏(附完整代码) 猜数字游戏是一款非常经典的小游戏&am…

AD21 PCB设计的高级应用(九)3D PDF的输出

(九)3D PDF的输出 1.3D PDF的输出2.制作PCB 3D视频 1.3D PDF的输出 Altium Designer 19 带有 3D输出功能,能够直接将 PCB 的 3D效果输出到 PDF 中。 ’(1)打开带有 3D 模型的 PCB 文件,执行菜单栏中“文件”→“导出”→“PDF3D”命令,选择…

P1419 寻找段落(二分答案)(内附封面)

寻找段落 题目描述 给定一个长度为 n n n 的序列 a a a,定义 a i a_i ai​ 为第 i i i 个元素的价值。现在需要找出序列中最有价值的“段落”。段落的定义是长度在 [ S , T ] [S, T] [S,T] 之间的连续序列。最有价值段落是指平均值最大的段落。 段落的平均值…

SpringBoot整合TrueLicense生成和验证License证书

一 License介绍 License,也就是版权许可证书,一般用于收费软件给付费用户提供的访问许可证明。根据应用部署位置的不同,一般可以分为以下几种情况讨论: 应用部署在开发者自己的云服务器上。这种情况下用户通过账号登录的形式远程…

Halcon——在C#中各数据类型的相互转换

Halcon——在C#中各数据类型的相互转换 前言一、HObject to1.HObject to HImage 二、HTuple to1.HTuple to Int2.HTuple to Double3.HTuple to String4.HTuple to long5.HTuple to object6.HTuple to Arr 总结 前言 用c#进行Halcon代码转换的时候,虽然有halcon自带…

Python基础语法-梳理的几个知识点

1.书写格式 不需要声明变量类型,因为 在python中,变量为弱类型变量,Python解析器根据值自动匹配变量类型分支结构、循环结构中的条件表达式,不需要用小括号括起来执行语句体不需要大括号括起来,而是用冒号代替 2.格式…

GRNN神经网络原理与matlab实现

1案例背景 1.1GRNN神经网络概述 广义回归神经网络(GRNN Generalized Regression Neural Network)是美国学者 Don-ald F. Specht在1991年提出的,它是径向基神经网络的一种。GRNN具有很强的非线性映射能力和柔性网络结构以及高度的容错性和鲁棒性,适用于解决非线性问…

使用 JMeter 进行压力测试

一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步…

套接字通信(C/C++ 多线程)----基于线程池的并发服务器

(一)大家可以看我写的这三篇,了解一下: 基于linux下的高并发服务器开发(第四章)- 多线程实现并发服务器_呵呵哒( ̄▽ ̄)"的博客-CSDN博客https://blog.csdn.net/weixin_4198701…

Jmeter如何添加插件

一、前言 ​ 在我们的工作中,我们可以利用一些插件来帮助我们更好的进行性能测试。今天我们来介绍下Jmeter怎么添加插件? 2023最新Jmeter接口测试从入门到精通(全套项目实战教程) 二、插件管理器 ​ 首先我们需要下载插件管理器j…

一个完整的http请求响应过程

一、 HTTP请求和响应步骤 图片来自:理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。 二、TCP/IP协议 TCP/IP协议模型(Transmission Control Protocol/Internet Pr…

04、并发用户数该怎么计算

什么是并发? 我们假设上图中的这些小人是严格按照这个逻辑到达系统的,那显然,系统的绝对并发用户数是 4。如果描述 1 秒内的并发用户数,那就是 16。是不是显而易见?但是,在实际的系统中,用户通常…

若依框架 - 对二次封装数据分页

LsDistrictController /*** 查询地段列表*/ApiOperation("查询地段列表")GetMapping("/list")public TableDataInfo list(LsDistrict lsDistrict) {startPage();Map<String, List> map lsDistrictService.selectLsDistrictList(lsDistrict);if (Col…