超图AR导航数据的来源有多个渠道。主要包括影像平面图、CAD平面图、GIS格式平面图、自采集数据等等。使用时,选择最容易获取或质量最好的源数据即可。不同类型的数据来源在进行导航数据制作时的流程略有不同,如下图所示:
![]() |
图:不同类型数据来源的导航地图制作流程 |
这里介绍如何利用自采集轨迹,制作一副室内AR导航地图。其它来源的地图,请参照自采集数据流程步骤。
数据采集工具下载地址:
数据采集工具为SuperMap iTablet(以下简称“iTablet”),在各大应用市场均可下载。高精轨迹采集,对智能手机或平板有一定的要求,请参照https://developers.google.cn/ar/devices?hl=zh-cn使用对应型号的设备。
数据制作工具为SuperMap iDesktop(以下简称“iDesktop”),请前往超图官网下载,或直接访问http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx。本文使用的是iDesktop 版本为10.0。
轨迹数据采集与制作
轨迹数据即道路数据,是导航地图的基础,用于路径分析,并作为POI、面数据的采集参考。
运行iTablet,依次进入“AR地图”—“AI助手”—“高精采集”。
![]() |
图:使用iTablet采集轨迹 |
通过手动输入或“自动定位”或“地图选点”的方式,设置当前位置坐标。
![]() |
图:设置当前位置坐标 |
坐标设置完成后,把手机垂直于地面,面向正南,点击“确定”。
![]() |
图:进入“高精采集” |
点击“新建”开始采集轨迹,当前轨迹采集完成后,点击“保存线”,完成采集。每执行一次“保存线”操作,生成一条以当前时间命名的三维线数据集。点击“新建”和“保存线”,继续下一条轨迹的采集和保存。
![]() |
图:采集轨迹 |
- 进入高精采集时,请保持相机镜面清洁,并且尽量远离墙面或者地面等弱纹理区域。
- 点击“新建”进行采集前,可以围绕采集区域走动几周,在走动的过程中,设备会记录区域内的特征信息,从而在正式采集时提升采集的精度。
- 若采集任务分多次完成,请确保每次进入“高精采集”时摄像头的方向和位置一致,否则轨迹会发生偏移。
采集完成后,轨迹数据存储于设备中的“\iTablet\User\Customer\Data\Datasource\”路径下。若是iTablet的登录用户,将路径中的“Customer”替换为登录的用户名。将数据拷贝至电脑,进行轨迹数据制作。
![]() |
图:采集完成的轨迹数据 |
第一步:数据打开并加入地图
运行iDesktop,在左侧的“工作空间管理器”中,右键点击“数据源”,选择“打开文件型数据源…”,打开采集的轨迹数据。
![]() |
图:用iDesktop打开采集的轨迹数据 |
展开数据源,右键点击对应的数据集,选择“添加到当前地图”,或直接拖拽到地图窗口,将数据集依次加入地图。
![]() |
图:在同一地图窗口查看采集的轨迹 |
若发现轨迹数据不全、偏移、变形,可利用iTablet再次采集。其中,偏移的数据,还可以通过iDesktop直接编辑和修改。
第二步:数据合并
轨迹采集完整后,通过“追加行”将全部的轨迹合并到一个三维线数据集中。
(1). 新建一个三维线数据集,用于保存所有的轨迹数据。
![]() |
图:新建“三维线”数据集 |
(2). 选择“数据”-“追加行”。在“数据集追加行”对话框中,设置目标数据。“数据集”即为上一步新建的三维线数据集。数据源为该数据集对应的数据源。
![]() |
图:“追加行”操作 |
(3). 点击对话框中的“添加”按钮,依次添加不同数据源中的数据集。
![]() |
图:设置目标数据源,添加用于合并的数据集 |
(4). 添加完成后,点击“数据集追加行”对话框中的“确定”按钮,完成数据合并。合并后的轨迹数据如下所示。
![]() |
图:数据集合成效果示意 |
(5). 通过“复制数据集”将合并后的数据集,复制到室内导航数据源中。若还没有室内导航数据源,通过“新建文件型数据源…”新建,数据源格式选择“SuperMap UDB文件(*.UDB)”。复制完成后,可以“关闭”轨迹数据源。
![]() |
图:复制数据集 |
![]() |
图:新建数据源 |
第三步:类型转换
用于数据分析的数据集类型为网络数据集,由线数据集生成,这里需要将三维线数据集转换为线数据集。
选择“数据”—“类型转换”—“三维线->二维线”,在“三维线->二维线”对话框中,设置对应参数,点击“转换”按钮,完成转换。
![]() |
图: “三维线”转“二维线” |
![]() |
图:转换参数设置 |
第四步:数据重采样
采集的轨迹中包含了大量的节点,影响路径分析的效率,对数据进行重采样,减少节点的数量。
选择“数据”,在“数据处理”分组中,点击“下拉”按钮,选择“矢量重采样”。
![]() |
图:数据集重采样 |
在“矢量数据集重采样”对话框中,设置“重采样方法”、“重采样距离”。这里选的是“光栏法”、“根据比例尺”。不同的数据可能存在比例尺不同的情况,可酌情选择。
![]() |
图:重采样参数设置 |
![]() |
图:重采样前后结果对比 |
第五步:数据优化
重采样后的数据,依然存在不直、不相交、节点多等问题,通过对这些数据进行编辑,解决这些问题。
将重采样后的线数据集添加到当前地图中,在“图层管理器”中,点亮“编辑”按钮,让数据可编辑。
![]() |
图:设置图层可编辑 |
依次选择“对象操作”—“编辑节点”,调整节点位置,使数据更规范。
![]() |
图:编辑对象节点 |
这里要注意,为了后续能正常制作导航道路数据,在数据优化时,通过“捕捉”功能将点捕捉到线上。
![]() |
图:节点捕捉到线示意 |
![]() |
图:道路数据编辑前后对比 |
第六步:生成导航路径
网络数据集才能进行路径规划,这里将编辑完成的线数据集转换为网络数据集。
依次选择“交通分析”—“拓扑构网”—“构建二维网络”,在“构建二维网络数据集”对话框中,通过“添加”按钮,添加上一步编辑的线数据集,输入网络数据集的名称,勾选“线线自动打断”。
![]() |
图: “构建二维网络” |
![]() |
图:“构建二维网络”参数设置 |
![]() |
图:网络数据集示意 |
至此,室内导航所需要的道路数据制作完成。若进行室内AR导航的建筑物是多层,请按照上述步骤,逐层采集,逐层制作数据。
POI数据采集与制作
POI数据的制作,依然是分楼层采集和编辑。这里的POI不包括楼梯数据。
运行iTablet,依次进入“AR地图”—“AI助手”—“高精采集”,并设置当前位置坐标。启动“高精采集”的注意事项参考轨迹数据采集。在室内房间中的适当位置,建议选择房间的中心点,点击“保存点”采集POI。每执行一次“保存点”操作,生成一个以对应时间命名的点数据集。
![]() |
图:POI数据采集 |
采集完成后,参照轨迹数据的制作方法,依次执行“第一步:数据打开并加入地图”、“第二步:数据合并”,数据合并时,新建数据类型是“点数据集”。合并后,与该层的轨迹在同一窗口中打开,可以根据轨迹的位置,对偏移的点位进行调整。
![]() |
图:根据轨迹调整点位 |
第三步:属性添加
下表中,列出了POI的一些必选或可选属性。其中必选属性,必须为表中指定的名称。可选属性是制作地图或搜索过程中可能会用到的属性。使用时,可根据具体的使用情况添加更多的属性项。
名称 | 表达意义 | 类型 |
---|---|---|
FL_ID (名称不可更改) (必选) |
POI所在的楼层ID。用于楼层显示、路径分析和导航。每一个楼层有一个唯一的ID,同一楼层中所有地物的楼层ID都相同。 | 宽字符 |
Type (名称可更改) (可选) |
POI类型。用于制作单值专题图,根据类型显示为不同的颜色或不同的符号。可以根据地物不同的属性设置类型值。以商场为例,店铺、电梯间、卫生间可以设置为不同的类型。 | 宽字符 |
Name (名称可更改) (可选) |
POI名称。用于制作标签专题图,将名称显示在地图上。或者用于POI搜索。 | 宽字符 |
左侧的“工作空间管理器”中,在对应的POI图层中单击右键,在弹出的菜单中选择“属性”,界面右侧打开“属性”窗口,选择“属性表”选项卡,通过“添加”按钮,添加属性项。添加完成后,点击“应用”按钮,完成添加。
![]() |
图:添加属性项 |
应用完成后,在对应的POI图层中单击右键,在弹出的菜单中选择“浏览属性表”,可以在属性表中看到,属性项已被添加。
![]() |
图:浏览属性表 |
将POI数据集和该层的路径数据在同一个地图窗口中打开,在“图层管理器”中点亮“编辑”图标,地图窗口中选择某个POI,在右侧的属性窗口中,进行属性编辑。按照这种方法,依次编辑好每个POI的属性。
![]() |
图:添加POI属性 |
至此,POI数据制作完成。若多楼层建筑,请按上述步骤逐层采集,逐层制作。应用中,同一楼层的POI数据也可存放于不同的点图层中,可根据使用需要进行调整。
楼梯数据采集与制作
楼梯数据的采集和制作方式与POI数据的采集和制作方式相同。需要注意三处不同。首先,每层的楼梯数据存放于一个独立的点数据集中,不与POI数据放于同一个点数据集。第二,楼梯数据集的命名方式为“T楼层_CON_INFO”,如第6层为“T6_CON_INFO”,第七层为“T7_CON_INFO”。第三,楼梯数据的必选属性项与POI数据不同,如下表:
名称 | 表达意义 | 类型 |
---|---|---|
FL_ID (名称不可更改) (必选) |
POI所在的楼层ID。用于楼层显示、路径分析和导航。每一个楼层有一个唯一的ID,同一楼层中所有地物的楼层ID都相同。 | 宽字符 |
FT_ID (名称不可更改) (必选) |
楼梯ID。每层的每个楼梯的唯一ID值,即使是相同的一部直梯,在不同的楼层,ID值也不同。 | 宽字符 |
TO_CON (名称不可更改) (必选) |
到达楼层。格式为“#到达的楼层#到达的下一个楼梯的ID“,如到达2层,ID为0211的楼梯,属性值为“#2#0211”。每个楼梯只需对应上一层的楼梯即可,如1层的楼梯,本属性的属性值中到达的楼层为2。最顶层,本属性必须为空。 | 宽字符 |
Name (名称可更改) (可选) |
电梯名称。用于制作标签专题图,将名称显示在地图上。或者用于电梯搜索。 | 宽字符 |
Type (名称可更改) (可选) |
楼梯类型。用于制作单值专题图,根据类型显示为不同的颜色或不同的符号。如楼梯分为直梯、滚梯、步行梯。 | 宽字符 |
属性项的添加方式参照POI数据。
![]() |
图:楼梯属性示意 |
至此,楼梯数据制作完成。若多楼层建筑,请按上述步骤逐层采集,逐层制作。
房间数据绘制与制作
建筑物的每个楼层都有多个房间,这里介绍采集如何采集面数据。
运行iTablet,依次进入“AR地图”—“AI助手”—“高精采集”,并设置当前位置坐标。启动“高精采集”的注意事项参考轨迹数据采集。点击“新建”按钮,拿着设备沿着房间边缘采集房间轮廓,点击“保存面”完成保存。每执行一次“保存面”操作,生成一个以对应时间命名的面数据集。
采集完成后,参照轨迹数据的制作方法,依次执行“第一步:数据打开并加入地图”、“第二步:数据合并”,数据合并时,新建数据类型是“面数据集”。合并后,与该层的轨迹在同一窗口中打开,可以根据轨迹的位置,对采集的面进行微调。
第三步:添加属性
下表中,列出了房间对象的一些必选或可选属性。其中必选属性,必须为表中指定的名称。可选属性是制作地图或搜索过程中可能会用到的属性。使用时,可根据具体的使用情况添加更多的属性项。
名称 | 表达意义 | 类型 |
---|---|---|
FL_ID (名称不可更改) (必选) |
房间所在的楼层ID。用于地图展示、路径分析和导航。每一个楼层有一个唯一的ID,同一楼层中所有地物的楼层ID都相同。 | 宽字符 |
Type (名称可更改) (可选) |
房间类型。用于制作单值专题图,根据类型显示为不同的颜色或不同的符号。可以根据地物不同的属性设置类型值。以商场为例,店铺、电梯间、卫生间可以设置为不同的类型。 | 宽字符 |
Name (名称可更改) (可选) |
房间名称。用于制作标签专题图,将名称显示在地图上。或者用于搜索。 | 宽字符 |
新建和编辑属性项的方法,参照POI数据添加和编辑属性项。
![]() |
图:房间属性表示意 |
多楼层导航地图制作
各楼层数据准备完毕后,需要对数据进行分组,以图层组的方式组织数据,使每个图层组中含有一个楼层的全部数据。
第一步:建立图层分组
在【图层管理器】中点击按钮,创建一个名为“indoor”的图层根组(注意,这里必须命名为“indoor”)。继续点击按钮,选择“新建组”,创建一个图层组,名称任意。继续点击按钮,根据楼层,创建楼层分组。
![]() |
图:创建图层根组 |
第二步:加载数据并分组
将需要在地图中显示的数据集加入到当前地图,通过拖拽的方式放置在相应的分组下。
![]() |
图:图层分组 |
第三步:制作专题图
在“图层管理器”中,选择房间面图层,单击右键,选择“制作专题图…”,在“制作专题图”对话框中选择“单值专题图”—“默认”。
![]() |
图:制作“单值专题图” |
在专题图页面,进行专题图相关属性的设置。
![]() |
图:设置专题图属性 |
若需自定义颜色,直接点击“风格”列中的颜色块,打开“填充符号选择器”进行设置。
![]() |
图:填充颜色设置 |
同样的方式,设置点图层,如POI点、楼梯点的显示风格。设置点符号时,若现有符号不能满足要求,可以加载外部符号库或者直接导入外部栅格符号。
![]() |
图:点符号设置 |
在“图层管理器”中,选择房间面图层,单击右键,选择“制作专题图…”,在“制作专题图”对话框中选择“标签专题图”—“统一风格”。在“专题图”页面,设置文本的显示风格。
![]() |
图:创建“标签专题图”,设置属性 |
在“图层管理器”中,选择楼层面图层,单击右键,选择“图层风格…”,在“风格”对话设置面的填充色和线型等。
![]() |
图:设置图层风格 |
第四步:保存地图
按照上述方法,制作每个楼层的数据。可以将不需要显示的图层移除地图。制作完成后,通过“”按钮,设置一个楼层组可显示,其它楼层组不显示。
![]() |
图:设置仅有一个楼层可显示 |
设置完成后,在地图窗口,点击右键,选择“保存地图”。
![]() |
图:保存地图 |
属性表制作
属性数据集在导航的过程中发挥着至关重要的作用,必须包含如下数据项,且名称不能更改:
名称 | 表达意义 | 类型 |
---|---|---|
LayerName | 图层名称。在“图层管理器”中每一个楼层的名称。 | 文本型 |
FL_ID | 楼层ID。和每层地物中的添加的楼层ID一致。 | 文本型 |
NetworkName | 路径文件名称。每一层的路径数据所在的网络数据集的名称。 | 文本型 |
FloorName | 楼层名称。用于在楼层控件中显示的名称。 | 文本型 |
FloorIndex | 楼层索引。每个楼层的索引值。 | 32位整型 |
第一步:创建属性数据集
数据集存储在原始室内数据所在的数据源,名称为“FloorRelationTable”(注意,这里必须命名为“FloorRelationTable”)。在“工作空间管理器”中,选择室内数据源单击右键,选择“新建数据集…”,在“新建数据集”对话框,选择“创建类型”为“属性表”,“数据集名称”为“FloorRelationTable”。
![]() |
图:新建属性表数据集 |
第二步:添加属性项
在“工作空间管理器”中,右键单击“FloorRelationTable”数据集,选择“属性”,在界面右侧打开“属性”窗口,选择“属性表”选项卡,通过“添加”按钮,添加属性项。添加完成后,点击“应用”按钮,完成添加。
![]() |
图:“属性表数据集”添加属性项 |
第三步:添加属性值
在“FloorRelationTable”数据集上,单击右键,选择“浏览属性表”,打开属性表,在“属性表”选项卡中选择“添加行”,添加属性行。双击属性表中的项,即可对属性进行编辑。
![]() |
图:添加行 |
LayerName值,为“图层管理器”中每个楼层的分组对应的图层名称。
![]() |
图:获取楼层组的图层名称 |
FL_ID值:楼层ID,每个楼层中所有地物的楼层ID相同。
NetworkName值,楼层对应的导航路径网络数据集的名称。
![]() |
图:获取“NetworkName”的对应值 |
FloorName值,楼层控件中显示的楼层名称。
FloorIndex值,为楼层索引,如负一层为-1,一层为1,二层为2。
![]() |
图:属性表数据集属性示意 |
范围数据源制作
范围数据源,用来控制楼层控件的显示和隐藏,包括一个名为“bounds”(注意,这里必须命名为“bounds”)的数据源,一个名为“building”(注意,这里必须命名为“building”)的面数据集。面数据集中有且仅有一个面对象。
第一步:创建数据源
数据源名称“bounds”,类型为udb,存储路径与室内数据源的路径相同。在“工作空间管理器”中,选择“数据源”,右键打开菜单,选择“新建文件型数据源…”。
![]() |
图:新建数据源 |
第二步:创建面数据集
数据集名称“building”,类型为面数据集。在“工作空间管理器”,选择上一步创建的“bounds”数据源,右键打开菜单,选择“新建数据集”。
![]() |
图:创建面数据集 |
第三步:添加面对象
面对象数量只能是1个,大小应与室内地图范围相同或者略大,位置与室内数据相同。建议复制室内数据源中的室内区域范围面数据集。
在“工作空间管理器”中,右键点击待复制的数据集,在打开的菜单中选择“复制数据集”,在“数据集复制”对话框中,设置“目标数据源”和“目标数据集”。
![]() |
图:复制数据集 |
若室内数据源中没有类似的面数据集,可以绘制一个面。将“building”数据集在地图窗口中打开,并设为“编辑”状态。选择“对象操作”选项卡中的“面”—“直角矩形”,绘制一个面即可。绘制时参考室内地图的位置。
![]() |
图:绘制面对象 |
第四步:添加属性项
为building数据集添加“LinkName"、“LinkDataSource”两个属性项(注意,这里必须命名为“LinkName”和“LinkDataSource”)。
![]() |
图:添加属性项 |
第五步:添加属性值。
LinkName属性值,来源为“图层管理器”中,楼层分组的上一级分组的图层名称。获取方式为,在该分组上点击右键,选择【图层属性】,在图层属性表中“图层名称”的值。
![]() |
图:获取“LinkName”属性值 |
LinkDataSource属性值,为原始导航数据所在数据源的数据源名称。
![]() |
图:获取“LinkDataSource”属性值 |
![]() |
图: “building”数据集属性示意 |
保存工作空间。至此,室内AR导航数据制作完成。