作者姜尔
目录
一、技术思路
本文主要讲述在SuperMap Hi-Fi 3D SDK for Unreal产品11.2.0中, 判断三维官网数据中指定两点的连通性。技术思路为使用交通网络分析服务,对两点查询返回结果后,于UE中渲染显示结果。
主要技术思路是, 先需要使用SuperMap iDesktopX产品11.2.0版本准备数据, 将二维管点、管线数据构建为二维网络数据集用于发布iServer交通网络分析服务。再转换为三维数据制作自定义专题图生成场景缓存,用于三维显示。 最后,在UE中打开关卡加载缓存数据,使用最佳路径分析功能高亮分析结果。
技术关键在于保证二维网络数据集对象ID与三维网络数据集对象ID一致,避免iServer分析结果与UE高亮显示结果不对应。
本文使用软件均为SuperrMap官网正式版本11.2.0,使用数据为SuperMap提供的示例数据中的pipe3d,为了使用方便自己重命名了, 有需要的自行通过超图技术资源中心(SuperMap技术资源中心|为您提供全面的在线技术服务)下载获取,本文仅供参考。
二、数据处理
第一步首先, 构建二维网络专题图。
使用iDesktopX产品,将二维点、线导入数据源作为数据集。使用功能栏-【交通分析】-【拓扑构网】-【构建二维网络】功能生成二维网络数据集,根据数据情况进行打断设置,例如点自动打断线、线线自动打断。
将构建的网络数据集添加到地图或者场景中,检查数据情况正常。
第二步,二维数据转换为三维数据用于三维渲染显示。
可通过功能栏-【数据】-【类型转换】-【二维点-三维点】/【二维线-三维线】功能,将二维点、线数据集,通过设置高程值,转换为三维点、线数据集。高程值可直接设置,也可写入属性字段后选择字段设置。
将三维点、线数据集添加至场景中,检查数据状况状态。
第三步,构建三维网络数据集。
通过使用功能栏-【交通分析】-【拓扑构网】-【自定义构建三维网络】功能,设置与二维网络数据集相同的结点标识字段、弧段标识字段、起始结点标识字段、终止结点标识字段等参数,构建三维网络数据集。
注意,为保证三维网络数据集与二维网络数据集对象ID一致,建议将在二维点、线转换三维点、线之前,将二维网络数据集系统字段SmNodeID、SmEdgeID、SmFNode、SmTNode等另存为属性字段,并在构建三维网络数据集时使用。
构建成功后,可添加至三维场景中预览,检查数据状态。
第四步,为提高在三维场景中三维点线数据显示效果,可在场景中制作自定义专题图。通过右键点线普通图层-【制作专题图】-【自定义专题图】功能,设置三维点、线符号风格,可直接设置符号ID应用,也可将符号ID写入属性字段中选择字段应用。
第五步,将制作好的自定义专题图保存至场景,保存工作空间,并右键场景-【生成场景瓦片】,根据数据情况设置参数,设置属性存储类型为S3MD,其他参数设置例如本文选择勾选重新计算法线、不勾选实例化等。
打开生成的场景缓存的工作空间,即可浏览自定义专题图缓存效果。 检查数据状态,属性存储结果正确性。
三、发布服务
使用iServer产品, 选择存储二维网络数据集数据源的工作空间,发布【工作空间】-【REST-交通网络分析服务】。
在交通网络分析服务配置中,配置弧段ID、结点ID、弧段起始结点ID、弧段终止结点ID、权值字段信息等参数。 注意ID应与三维网络数据集中ID保持一致,以保证UE分析时渲染正确。
发布成功后,复制服务路径至最佳路径分析备用,例如http://localhost:8090/iserver/services/transportationAnalyst-Pipe/rest/networkanalyst/pipe2d@DataSource/path
四、UE整合效果
在UE关卡中,添加自定义专题图缓存至图层,启动关卡。
在【三维分析】-【最佳路径分析】功能中,选择图层、设置网络地址(例如http://localhost:8090/iserver/services/transportationAnalyst-Pipe/rest/networkanalyst/pipe2d@DataSource/path)、输入两点ID,即可执行分析,高亮显示分析结果。
注意两点ID,可在UE中通过【查询】-【属性表】功能,点击结点显示其属性值。