Baste 发表于 2023-2-16 10:06

ArcGIS Maps SDK for Unreal Engine通过UI方式显示地图教程

前言

一个 UE 项目,可以包括多个关卡(level),关卡可以在菜单栏中新建(文件->新建关卡)。
使用快捷键 Ctrl+S 可以保存当前关卡,你可以保存到上面提到的演示文件放置的位置,你可以看看有什么区别。
对于游戏引擎来说,一个关卡需要有地图场景、角色、控制UI、事件等组成要素,这样构建成一个完整的游戏关卡。
但是对于地理/建筑物模型的展示来说,只需要一个地图场景即可,所以我们再 UE 中主要应用和调整的就是地图场景这部分(控制UI可能会用到)功能。
同时,UE5 提供了多种实现或者说构建地图场景乃至于整个关卡的方式:
第一种 UI 方式。即使用物体的细节选项卡,下面有很多图形化的选项,根据需要调整或勾选。这是最简单,也是大部分软件采用的使用方式,优点是直观、门槛较低。
第二种 蓝图(BluePrint)方式。通过节点连接实现的方式。
第三种 C++ API 方式。通过编写 C++ 代码调用 API 完成场景的构建。当然门槛较高但是灵活可以实现很多定制化的要求。
后续教程都是使用 UI 的方法界面实现场景的创建和运行。
1 SDK 在 UE 中的使用

Note:使用ArcGIS Maps SDK for Unreal Engine之前,需要拥有ArcGIS开发者账户,利用当中的key才可以正常运行。
1.1 打开 ArcGISMapsSDK 中自带的示例

利用我们上个教程所提供的教程,创建好一个新项目,将SDK作为插件导入之后,再次打卡UE5
参考此教程将ArcGIS插件导入虚幻引擎:ArcGIS Maps SDK for Unreal Engine和Unreal Engine5的安装

https://blog.csdn.net/Xxy9426/article/details/128845605?spm=1001.2014.3001.5501


如果作为一个全新项目打开后,如下显示,


此时我们需要点击一下左下角内容侧滑菜单,将其固定到布局UI中,方便后续操作,(可自行决定)


将其打开固定后,左侧菜单栏会有一个Pulgins文件夹,如果没有此文件夹,点击右侧设置栏,勾选上显示插件内容。


然后我们打开此文件夹,定位到Samples文件夹,此文件夹是Esri插件所提供的示例关卡,我们可以查看虚幻中地图所展示的样式。


此时我们随机选取一个示例,双击打开,但是此时打开发现视图内并没有任何东西,原因是我们并没有满足先决条件,没有将API Key值输入进去。


访问Esri的开发账户 ArcGIS Developers ,获取到Key值 。


点击右侧Actor中的ArcGISMap模块,在下方细节板块,找到Authentication->API Key,将复制的Key值粘贴到输入框内,回车即可
就可以在显示框内显示出Esri所提供的示例关卡。


Note:如果下方细节没有细节栏,可以点击窗口->细节->细节1,即可在右侧下方展示出细节栏,其他三个也可选,只是展示细节栏展示方式和位置不同。




1.2 在虚幻中借助SDK新建并显示地图场景

1.2.1 创建新关卡并打开模式面板 UI

      1.单击菜单栏上的文件,然后选择新建关卡。创建


      2.在弹出窗口中选择空级别。


      3.导航到菜单栏中的窗口>世界场景设置。这将打开“世界场景设置”面板。


      4.在“世界设置”面板中,转到“场景”组并打开“高级设置”。选中启用大型世界选项。


5.单击虚幻UI工具栏中的选择模式下拉列表,然后选择ArcGIS Maps SDK。


6.模式面板UI将在虚幻编辑器界面的左侧打开。


1.2.2 创建地图


[*]在模式面板 UI 中,单击地图选项卡。
[*]选择地图类型。Local
[*]在原点位置部分中,您可以使用 GIS 场景的坐标和空间参考已知 ID (WKID) 设置 GIS 场景的中心。对于本教程,请将参数设置为以下值:

Longitude: -74Latitude: 41Altitude: 0Spatial Reference WKID: 4326
   5.选中启用范围复选框以显示地图范围部分
   6.在地图范围中,将地图范围设置为以下值:
Longitude: -74.0Latitude: 40.72Spatial Reference WKID: 4326Extent Shape: CircleRadius: 5000
这是地图选项卡的结果。


      7.单击“创建”按钮。在大纲视图面板中,将创建 ArcGISMapActor。


1.2.3 创建和设置摄像机

适用于虚幻引擎的ArcGIS Maps SDK将为靠近摄像机的区域显示更高分辨率的LOD,为远离摄像机的区域显示较低分辨率的LOD。

[*]单击相机选项卡。
[*]摄像机位置定义摄像机的初始视角。将参数设置为以下值:



[*]Longitude: -74.054921
[*]Latitude: 40.691242
[*]Altitude: 3000
[*]Spatial Reference WKID: 4326

   3.摄像机旋转定义摄像机的角度。


[*]Heading: 55
[*]Pitch: 58
[*]Roll: 0

这是“相机”选项卡的结果。


      4.单击“创建”按钮。在“大纲视图”面板中,将创建默认Pawn Actor。


此时,关卡仍将为空。在接下来的教程步骤中,地图数据将添加到关卡中。


1.2.4 设置底图和 API 密钥

在本教程中,您将选择需要 API 密钥的底图。

[*]单击底图选项卡并显示面板内容。
[*]从预设底图列表中选择影像底图。这是将底图从预设底图设置为影像的结果。


      3.转到开发人员仪表板以获取 接口密钥
      4.单击“身份验证”选项卡以显示面板内。
      5.在“API 密钥”部分中设置 API 密钥。确保您的 API 密钥位于此屏幕截图中看到的字段中。您可以通过单击 UI 中的获取 API 密钥来查找有关如何获取 API 密钥的信息。


      6.切换回底图选项卡后,之前灰显的底图图标现在应处于启用状态,表示 API 密钥已成功注册。


在虚幻项目中为多个关卡设置全局API密钥的另一种方法是通过项目设置。
1.2.5 设置高程

在本教程中,您将使用默认高程来定义地形。

[*]单击高程选项卡并显示面板内容。
[*]确保已选择默认高程。
这是高程面板的结果。


此时,您应该能够看到部分显示在该级别上的地图数据。


双击大纲视图窗口中的Default Elevation,将关卡视图切换到配置的摄像机位置。


1.2.6 添加数据图层

您将从ArcGIS Online添加操作数据。
ArcGIS Online 项目:UrbanObservatory_NYC_TransitFrequency
图层名称:01 - New York Transit Frequency
类型:ArcGIS Image Layer
在线服务网址(来源):
https://tiles.arcgis.com/tiles/nGt4QxSblgDfeJn9/arcgis/rest/services/UrbanObservatory_NYC_TransitFrequency/MapServer
不透明度:0.9

ArcGIS Online 项目:New_York_Industrial
图层名称:02 - New York Industrial Areas
类型:ArcGIS Image Layer
在线服务网址(来源):
https://tiles.arcgis.com/tiles/nGt4QxSblgDfeJn9/arcgis/rest/services/New_York_Industrial/MapServer
不透明度:0.6

ArcGIS Online 项目:NewYorkCity_PopDensity
图层名称:03 - New York Population Density
类型:ArcGIS Image Layer
在线服务网址(来源):
https://tiles.arcgis.com/tiles/4yjifSiIG17X0gW4/arcgis/rest/services/NewYorkCity_PopDensity/MapServer
不透明度:1.0

ArcGIS 在线项目: New York, USA Buildings
图层名称:04 - New York Buildings
类型:ArcGIS 3D Object Scene Layer
在线服务网址(来源):
https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Buildings_NewYork_17/SceneServer
不透明度:1.0请按照以下步骤添加每个图层。

[*]单击图层选项卡。
[*]在添加数据部分中,从类型下拉列表中选择适当的图层类型。
[*]在Source字段中输入图层的在线服务 URL 以添加图像切片图层。
[*]在名称字段中输入图层名称。
[*]单击添加按钮将图层添加到地图。添加图层后,它将显示在“图层”部分中。
[*]通过将滑块拖动到特定值来设置不透明度。
这是“图层”面板的结果。


1.2.7 设置天空和光照


[*]从工具栏上的快速添加菜单中,选择“光源”>“定向光源”并将其拖动到关卡中以创建“平行光”。


      2.在大纲视图中选择定向光,然后在“细节”面板中打开“变换”部分。
      3.重置位置并将旋转设置为:
X: 0Y: -28Z: -28
      4.将移动性设置为可移动。


      5.在“光源”部分中,将“强度值”更改为 。3.1416


      6.在“级联阴影贴图”部分中,将“动态阴影距离可移动光源”更改为 。2000000


      7.在大气与云部分中,启用大气太阳光。


      8.在Actor>生成冲突处理方法部分中,选择固定生成,忽略碰撞。


      9.从工具栏上的快速添加菜单中,选择光源>天空光照,然后将其拖到关卡中以创建天空灯光。


      10.在变换部分中,重置位置并将移动性设置为可移动。
      11.在光源部分中,启用实时捕获。


      12.从工具栏上的快速添加菜单中,选择“视觉效果”>“天空大气”并将其拖到关卡中以创建天空。


      13.在星球部分中,将地面半径更改为 。6378.137207


此时,您应该会看到带有范围配置的裁剪地图数据。在“大纲视图”面板中,双击默认Pawn,将编辑器摄像机移动到配置的摄像机位置。在编辑器模式下,按住鼠标右键的同时使用 WASD 键四处移动,或按住鼠标左键环顾四周。要在编辑器模式下提高视口中的摄像机导航速度,请单击视口右上角的摄像机速度图标,然后通过拖动滑块来增加值。


1.3 将默认Pawn替换为ArcGIS Pawn

在编辑器模式下,你可以使用虚幻引擎中的标准视点控件自由导航场景。为了在播放模式下导航场景,您可以为Pawn编写自己的控制器组件,或者通过在DefaultPawn中修改移动组件来编写。此外,还可以将Default Pawn替换为样本关卡中使用的示例 ArcGIS Pawn。

[*]在内容菜单中打开下面的位置。
Plugins > ArcGIS Maps SDK for Unreal Engine C++ Classes > ArcGISSamples > Public

[*]单击 ArcGIS Pawn 以将其选中。选择后,背景颜色将变为蓝色。
[*]右键单击“大纲视图”面板中的DefaultPawn。
[*]单击将所选Actor替换为,然后选择ArcGIS Pawn。


您已成功使用模式面板 UI 配置局部场景。
单击工具栏上的播放图标,然后使用 WASD 键四处移动,按住鼠标右键鼠标环顾四周或按住鼠标左键平移。


结束语

欢迎关注我的公众号,懒得取名的GISer,一起交流分享,需要测试数据和软件资源的随时联系。

页: [1]
查看完整版本: ArcGIS Maps SDK for Unreal Engine通过UI方式显示地图教程