草庐IT

虚幻引擎UE4加载GIS数据《数字孪生&智慧城市》

GISer Liu 2023-04-10 原文

        😀各位,好久不见哈;最近博主这边疫情严重,鸽了一周 🙄今天忙里偷闲,把虚幻引擎UE4中加载GIS数据的操作讲一下...加油!!!

目录

一、UE4中SuperMap插件安装

二、UE4项目构建及插件的启用

1.项目构建

2.插件启用

三、 文件配置及GIS场景文件打开

1.鼠标键盘逻辑映射文件导入

2.场景文件打开

四、本地数据的加载

1.新建关卡

2.控件参数配置

3.数据加载


        通过本文,你将会学到:

1 虚幻引擎UE4中插件的安装

2 SuperMap插件的使用

3 UE4中GIS数据的加载 

        废话不多说,这篇文章是根据康老师的课程创作的,既是我的学习笔记,又能方便各位学习者的快速查阅😃。OK,开始吧!

一、UE4中SuperMap插件安装

        打开UE4的登陆程序,进入到管理界面后,点击上面的虚幻商城搜索Supermap,找到插件后点击进入,选择安装到引擎

        稍等片刻,便安装完成!

二、UE4项目构建及插件的启用

1.项目构建

        插件安装完成以后呢,便可启动你的UE4进行项目创建, 点击右上角启动:

        虚幻引擎对电脑性能要求较高,我这里启动花费了1分钟。

        接下来进行项目创建,我们可以根据自己的需求选择项目类型,我这里选择城市设计可视化,点击下一步,模板选择空白,点击下一步,设置好项目保存路径与项目名称;点击创建项目。

        稍等片刻... 

2.插件启用

       项目启动后,我们可在编辑>插件>已安装中找到Supermap插件,但插件默认是没有启动的,我们在启动复选框已启用上勾选,点击立即重启

        稍等片刻,重启以后关闭插件窗口 ;

        插件第一次启动需要在视图选项中勾选显示引擎内容和显示插件内容;

        然后在内容选项卡下你就可以找到Supermap的相关内容了,双击这个文件夹,我们打开本次教程相关的内容;

三、 文件配置及GIS场景文件打开

        本次教程所使用的数据是插件自带的,我将通过官方案例来展示插件的使用。

        Map文件夹下,超图的范例自带了几个在线服务:

1 BIM模型

2 地形影像数据

3 3D Max精模

4 倾斜摄影模型

5 点云数据

6 全球地形影像数据

7 城市白膜

1.鼠标键盘逻辑映射文件导入

        直接打开范例文件是不能和场景进行交互的,我们必须要先导入SuperMap插件自带的配置文件也就是鼠标键盘逻辑映射文件才能与场景正常交互;

        打开编辑>项目设置>引擎>输入>导入>选择文件即可,这个文件保存在虚幻引擎插件文件中的Supermap文件夹中,下面是我的保存路径:

E:\UE\UE_4.26\Engine\Plugins\Marketplace\SuperMapSDK\Config\Supermap.ini

2.场景文件打开

        配置文件加载完成后返回界面,我以倾斜摄影场景为例,双击场景文件,点击运行,稍等片刻,便可加载出倾斜摄影数据,我们可通过鼠标键盘进行交互。读者也可自行尝试其他场景。

  

PS:场景中的数据加载较慢是因为数据本身是通过超图客户端发布的在线服务,是离线的。

四、本地数据的加载

1.新建关卡

        新建默认关卡,删去不需要的控件(下图中红框选中的控件):

        我们需要导入GIS数据加载需要的控件,在放置actor窗口输入supermap,向窗口拖入以下控件:

1 Super Map Main Actor

2 Super Map Star

3 UE4自带的天空大气控件

2.控件参数配置

         导入需要的控件后我们需要对控件的参数进行配置;

①SuperMap Star参数配置

        选择SuperMap Star控件,我们更改其位置为0,0,0

②天空大气插件参数配置

        将星球>变换模式更改为组件变换处的星球中心,地面半径更改为6378.137.

 ③游戏模式

        在蓝图>世界场景重载:游戏模式>选择GameModelBase类中;选择PlaneGameMode即可;

3.数据加载

①控件打开

        在内容中找到SuperMap内容>BluePrints>CN,选择SuperMap,右击运行编辑器工具控件。

②参数介绍 

        查看数据加载控件,我们可以看到不同的参数,我详细介绍一下:

1 球面/平面:指可以加载地理坐标系或投影坐标系数据,平面:指可以加载投影坐标系与平面坐标系的数据。

2 添加图层:本地数据即加载本地SuperMap缓存数据,在线数据即加载SuperMap发布的在线缓存数据,公开数据即OSM等公开数据。

3 图层路径:选择数据所在的位置或者数据链接(URL)

4 图层管理:删除或添加图层

③数据加载显示

        我们选择加载Supermap IDesketopX 10i桌面端自带的OSGB缓存数据,点击本地图层,选择后缀为.scp的缓存数据,确定后选择添加图层>定位即可

        运行UE项目,我们发现倾斜摄影测量模型已被加载进入UE4中,我们可通过鼠标键盘进行交互。

PS:SuperMap UE插件只能打开后缀为.scp的缓存数据,如是要加载自己的数据,需要将数据导入Supermap IDesketopX 10i桌面端后生成缓存,再用UE插件打开。       

        OK,本次教程圆满结束!!!🤗🤗🤗 

        🎉🎉🎉🎈


如果觉得我的文章对您有帮助,三连+关注便是对我创作的最大鼓励!

更多GIS空间分析文章

 “本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_45590504/category_11750215.html百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。”

有关虚幻引擎UE4加载GIS数据《数字孪生&智慧城市》的更多相关文章

  1. ruby-on-rails - rails : "missing partial" when calling 'render' in RSpec test - 2

    我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou

  2. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  3. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  6. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  7. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  8. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  9. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  10. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

随机推荐