最后更新时间:2020年12月1日
导航数据组织概述
MapGIS Mobile 10.5现提供离线模式下的导航功能,实现导航必须要有专业的导航数据作为依托,因此实现移动端地图导航必须先获取导航数据。
基于MapGIS Mobile for Android开发平台,可以实现大众导航和行业导航。在数据格式的支持上,支持高德、四维图新等专业地图厂商生产的室内外导航数据,用户可以从这些厂商购买。从根本上来讲,导航数据的内容其实就是由点要素、线要素共同组成的,并且其中包括路段的几何信息以及长度、方向等,还有路段、节点之间的拓扑关系。室内导航数据还应该包括楼层等信息。所以,用户也可以自己采集不同行业的数据,经过处理、制作后,同样也能支持导航。
目前常用的导航数据格式主要包括shape和MIF两种,不同厂商生产的导航数据具有不同的格式。下面简要介绍这两种常用的导航数据:
shape格式数据:是Esri公司提供的一种矢量数据格式,包括以下几个关键性的文件:
文件 | 说明 |
---|---|
*.dbf | 它是存储属性数据的文件,用于存储地理数据的属性信息。有时候我们也称为表文件或者dbf文件。这里值得注意一下的是,这个文件Excel也是能够打开的。 |
*.sbn,*.sbx | 地理数据索引文件,这两个文件只有在进行主题间空间关系查询、主题的空间联接和对shape字段进行索引的时候才存在。它们用于存储地物特征的索引。 |
*.shx | 空间数据索引文件,存储地理数据几何特征的索引。 |
*.shp | 存储地理数据的几何特征,坐标、长度以及面积等。 |
*.prj | 空间投影文件,用于存储空间参考,也就是投影方式文件。 |
MIF格式数据:包括后缀为“.MIF”和“.MID”文件。MIF是Mapinfo用来向外交换数据的一种中间交换文件。“.MIF”文件保存了Mapinfo表的表结构及表中所有空间对象的空间信息(如:每个点对象的符号样式、点位坐标;每个线对象的线样式、节点数据、节点坐标;区域对象的填充模式、每个区域包含的子区域个数及每个区域的节点数、节点数等)。而“.MID”文件则按记录顺序保存了每个空间对象的所有属性信息。
在获取或者制作了原始的导航数据之后,还需要在MapGIS 10.3桌面平台软件中将其转换为移动端能够支持的数据格式才能使用。室内、室外导航数据需分别处理,使用“移动数据工具条”中的“室内导航数据转换工具”或“室外导航数据转换工具”。默认情况下,此工具条已经集成到MapGIS 10.3桌面工具中,在工具栏右键勾选“移动数据工具条”即可加载、查看工具条。
为了用户方便使用“室内导航数据转换工具”或“室外导航数据转换工具”,让用户快速上手,提供了以下功能:
(1)配置参数保存和读取的功能:第一次使用转换工具后软件会将每种类型的参数配置信息保存到转换参数配置文件中。同样,转换工具中提供了转换时各种数据的必选参数的配置文件,用户可以参考这些文件来快速设置各种数据转换的参数。参数配置文件与转换工具的exe在同一目录中。导航数据的相关配置文件如下:
配置文件 | 文件说明 |
---|---|
AutoNaviParams.ini | 高德室外导航数据的参数配置文件 |
NaviInfoParams.ini | 四维室外导航数据的参数配置文件 |
MapGISIndoorParams.ini | 中地室内导航数据的参数配置文件 |
NaviInfoIndoorParams.ini | 四维室内导航数据的参数配置文件 |
(2)日志功能:能将转换过程中的关键步骤和异常信息输入到txt文件中,便于分析转换过程中出现的问题。
原始导航数据处理
移动端使用的导航数据必须经过MapGIS 10.3提供的导航数据转换工具进行转换,此工具操作的数据为MapGIS地理数据库,所以各种原始的导航数据,首先需要导入到MapGIS地理数据库中,转换为MapGIS格式的数据,再转换为移动端数据。
1、如果原始数据是以MapGIS地理数据库的形式存在的,只需要将数据库附加到GDBCatalog中。
操作步骤:在GDBCatalog中附加数据库,找到原始数据所在数据库的路径,进行附加。
2、如果导航数据是不是以MapGIS地理数据库的形式存在的,是以第三方数据类型的原始数据格式存在的,则首先需要创建MapGIS地理数据库,然后导入原始数据。
(1)在“MapGISLocal”上右键单击,选择“创建数据库”。然后设置数据库名称、保存路径等信息;创建完成后即在GDBCatalog中看到新建的数据库。
(2)然后右键数据库,点击“导入”选项,选择“其他数据”。
MapGIS 10.3支持的第三方数据格式如下:
(3)添加原始导航数据,进行转换;转换完成即可看到数据已经添加到数据库中。
说明:如果是表格数据,则选择“表格数据”选项,导入方法一致。格式为“.dbf”类型的表格数据需要首先将其转换为Excel或者Txt等其他格式的文件,再进行导入。
室外导航数据转换
室外导航数据转换,需要使用“室外导航数据转换工具”,此工具用于将室外导航原始数据转换为MapGIS移动端可以使用的导航数据,即用于转换高德、四维的室外导航数据,以及MapGIS自定义数据(即MapGIS的路网数据)。目前支持高德和四维提供的室外导航数据。
在转换时需要配置数据源、属性字段等信息。每种类型的数据配置参数都不一样,为了方便用户使用此工具,让用户快速上手,软件提供了参数配置文件(目前分别提供了高德和四维数据的必选参数的配置文件:AutoNaviParams.ini和NaviInfoParams.ini),作为每种类型的参数信息配置的参考。文件存在于MapGIS桌面平台软件的安装路径“···\MapGIS 10\Program\MobileTool\Config”中,用户可打开参考。配置文件中说明了各种数据转换时必选的参数。
使用转换工具后,软件会将每种类型的参数配置信息保存在转换参数配置文件中,在后续多次转换时自动填充配置信息,减少用户操作。
高德数据转换
以高德室外导航数据的转换为例,具体流程如下:
1
(1)数据类型:需要在第一步就选择数据类型,后续步骤不用选择,点击下拉列表选择数据类型。
数据类型包括“中地”、“高德”、“四维”三种,室外导航数据转换只支持高德、四维两种类型,选择不同的数据类型,上面“地址示例”一栏会给出相应的例子供参考。
(2)数据地址:点击数据地址输入栏中的“...”,选择道路节点数据。可根据提示的“地址示例”来判断该选择的数据及数据类型。
(3)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
NodeIndex | 简单节点索引编号(可选) |
CrossNodeIndex | 对应的复杂节点的索引编号 |
BegmID | 拓扑关系表中的首条记录ID(可选) |
EndmID | 拓扑关系表中的最后一条记录ID(可选) |
SignlightFlag | 是否有交通灯(可选) |
TollGateFlag | 是否是收费站(可选) |
2
(1)数据地址:点击数据地址输入栏中的“...”,选择数据,可参考“地址示例”中的提示。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
FnodeIndex | 路段的起始节点索引编号(必选) |
TnodeIndex | 路段的终止节点索引编号(必选) |
RoadIndex | 路段的索引编号(必选) |
Direction | 路段的方向(必选) |
Length | 路段的长度 |
FC | 路段功能等级(可选) |
FormWay | 路段道路功能(可选) |
TollFlag | 收费标志(可选) |
MaxSpeed | 路段最高限速(可选) |
NameCHN | 路段名称(可选) |
3
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
RuleIndex | 限行规则索引编号 |
RuleType | 限行规则类型 |
RuleTime | 限行时间 |
4
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
RuleIndex | 限行规则索引编号 |
RuleType | 限行规则类型 |
RuleTime | 限行时间 |
5
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
MaatIndex | 拓扑信息索引编号 |
FRoadIndex | 入度的路段的索引编号 |
TRoadIndex | 出度的路段的索引编号 |
LNodeIndex | 关联的节点的索引编号 |
LRuleIndex | 关联的限行信息的索引编号 |
6
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
MaatIndex | 拓扑信息索引编号 |
FRoadIndex | 入度的路段的索引编号 |
TRoadIndex | 出度的路段的索引编号 |
LNodeIndex | 关联的节点的索引编号 |
LRuleIndex | 关联的限行信息的索引编号 |
7
8
【是否进行数据预处理】:如果转换的数据为高德数据,则需要勾选“是否进行数据预处理”选项;如果数据是四维数据,则不需要勾选。此数据是高德数据,需要勾选此选项。
设置完成之后点击“转换”按钮,转换的进度会在进度条中显示。转换完成之后会提示转换完成。如果数据量较大的话,转换的时间就稍长,请耐心等待。
9
完成转换后即可从文件保存的目录中找到转换后的文件,包括:
(1)“**.txt”,为日志文件,打开可以看到转换的日志。
(2)“**.db”文件,为数据文件。
四维数据转换
以四维室外导航数据的转换为例,具体流程如下:
1
(1)数据地址(URL):如果原始数据中包含道路节点信息,则点击数据地址输入栏中的“...”,选择道路节点数据。可根据“地址示例”栏提供的信息来选择数据。
(2)数据类型:需要在第一步就选择数据类型,后续步骤不用选择,点击下拉列表选择数据类型。 击数据地址输入栏中的“...”,选择道路节点数据。可根据提示的“地址示例”来判断该选择的数据及数据类型。
(3)字段信息设置:在设置了数据地址和数据类型之后,工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
NodeIndex | 简单节点索引编号(可选) |
CrossNodeIndex | 对应的复杂节点的索引编号 |
BegmID | 拓扑关系表中的首条记录ID(可选) |
EndmID | 拓扑关系表中的最后一条记录ID(可选) |
SignlightFlag | 是否有交通灯(可选) |
TollGateFlag | 是否是收费站(可选) |
2
配置数据信息的方式类似,由于四维导航数据中必须具备的数据为道路信息数据,所以以道路信息的配置为例,详细讲解步骤设置,3-6步骤参考此方法。
(1)数据地址:点击数据地址输入栏中的“...”,在弹出的对话框中选择道路数据文件。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
FnodeIndex | 路段的起始节点索引编号(必选) |
TnodeIndex | 路段的终止节点索引编号(必选) |
RoadIndex | 路段的索引编号(必选) |
Direction | 路段的方向(必选) |
Length | 路段的长度 |
FC | 路段功能等级(可选) |
FormWay | 路段道路功能(可选) |
TollFlag | 收费标志(可选) |
MaxSpeed | 路段最高限速(可选) |
NameCHN | 路段名称(可选) |
3
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
RuleIndex | 限行规则索引编号 |
RuleType | 限行规则类型 |
RuleTime | 限行时间 |
4
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
RuleIndex | 限行规则索引编号 |
RuleType | 限行规则类型 |
RuleTime | 限行时间 |
5
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
MaatIndex | 拓扑信息索引编号 |
FRoadIndex | 入度的路段的索引编号 |
TRoadIndex | 出度的路段的索引编号 |
LNodeIndex | 关联的节点的索引编号 |
LRuleIndex | 关联的限行信息的索引编号 |
6
(1)数据地址:点击数据地址输入栏中的“...”,选择数据。
(2)字段信息设置:工具会自动根据相应数据类型的配置文件来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
MaatIndex | 拓扑信息索引编号 |
FRoadIndex | 入度的路段的索引编号 |
TRoadIndex | 出度的路段的索引编号 |
LNodeIndex | 关联的节点的索引编号 |
LRuleIndex | 关联的限行信息的索引编号 |
7
8
【是否进行数据预处理】:如果转换的数据为高德数据,则需要勾选“是否进行数据预处理”选项;如果数据是四维数据,则不需要勾选。
设置完成之后点击“转换”按钮,转换的进度会在进度条中显示。转换完成之后会提示转换完成,
9
完成转换后即可从文件保存的目录中找到转换后的文件,包括:
(1)“**.txt”,为日志文件,打开可以看到转换的日志。
(2)“**.db”文件,为数据文件。
室内导航数据转换
室内导航数据制作,与室外导航数据稍有不同。首先需要使用“室内导航数据转换工具”转换生成导航数据库,另外还需要制作建筑物轮廓信息文件。此工具用于将室内导航原始数据转换为MapGIS移动端可以使用的室内导航数据。
该工具用于转换四维、MapGIS自定义的室内导航数据。与室外导航数据转换操作类似,在转换时需要配置数据源、属性字段等信息。每种类型的数据配置参数都不一样,为了方便用户使用此工具,让用户快速上手,软件提供了参数配置文件(目前提供四维和中地数据的必选参数的配置文件:NaviInfoIndoorParams.ini和MapGISIndoorParams.ini),作为每种类型的参数信息配置的参考。文件存在于MapGIS桌面平台软件的安装路径“···\MapGIS 10\Program\MobileTool\Config”中,用户可打开参考。配置文件中说明了各种数据转换时必选的参数。
使用转换工具后,软件会将每种类型的参数配置信息保存在转换参数配置文件中,在后续多次转换时自动填充配置信息,减少用户操作。
四维数据转换
包括导航数据转换与制作建筑物轮廓信息文件两大部分,在此介绍四维室内导航数据转换步骤。
以四维室内导航数据的转换为例,具体流程如下:
1
(1)选择数据类型:点击数据类型下拉列表,可看到包括“中地”、“高德”、“四维”三种类型,此工具暂支持中地、四维两种类型的室内数据。此处以四维室内导航数据为例。
(2)点击数据地址输入栏中的“...”,选择数据库,室内导航数据转换是以数据库为单位的。
2
工具会自动根据相应数据类型的配置文件(如四维室内导航数据配置文件为NaviInfoIndoorParams.ini)来设置字段信息,用户也可修改。
说明:首先需要了解每个字段信息的实际意义,可参考“字段说明”,然后针对自己的数据,设置相同含义的属性字段。如果两者名称相同,会自动匹配并填充。如果之前转换过数据,系统会自动读取配置文件,并根据文件中字段的对应关系自动填充,减少用户复杂的字段设置操作。后续步骤的字段设置与此相同。
字段说明:
字段名称 | 字段说明 |
---|---|
NodeID | 节点编号 |
FloorID | 楼层ID |
NodeType | 节点类型(可选) |
Elevation | 绝对高程(可选) |
BuildingID | 建筑物编号(可选) |
3
工具会自动根据相应数据类型的配置文件(如四维室内导航数据配置文件为NaviInfoIndoorParams.ini)来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
FNodeID | 路段的起始节点编号 |
TNodeID | 路段的终止节点编号 |
RoadID | 路段的编号 |
Direction | 路段的方向 |
EmergencyAccess | 紧急通道属性(可选) |
Wheelchair | 无障碍属性(可选) |
RoadClass | 路段类型 |
4
工具会自动根据相应数据类型的配置文件(如四维室内导航数据配置文件为NaviInfoIndoorParams.ini)来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
FNodeID | 路段的起始节点编号 |
TNodeID | 路段的终止节点编号 |
RelationID | 跨楼层路段的编号 |
Direction | 路段的方向 |
EmergencyAccess | 紧急通道属性(可选) |
Wheelchair | 无障碍属性(可选) |
RelationClass | 跨楼层路段类型 |
5
点击“保存地址”输入栏的“...”,选择转换结果的保存位置,然后点击下一步。
6
点击“转换”按钮,立即进行转换,可以看到转换的进度,转换完成如下图所示。
7
转换完成之后即可从文件保存的目录中找到转换后的文件,包括转换日志文件(.txt)与数据文件(.db)。
中地数据转换
中地室内导航数据制作与四维室内导航数据制作相同,都包括导航数据转换与制作建筑物轮廓信息文件两大部分。在此介绍中地室内导航数据转换的操作步骤。
以中地室内导航数据的转换为例,具体流程如下:
1
(1)选择数据类型:点击数据类型下拉列表,选择对应的数据类型,此处以中地为例。
(2)点击数据地址输入栏中的“...”,选择数据库,室内导航数据转换是以数据库为单位的。
2
工具会自动根据相应数据类型的配置文件(MapGISIndoorParams.ini)来设置字段信息,用户也可修改。
说明:首先需要了解每个字段信息的实际意义,可参考“字段说明”,然后针对自己的数据,设置相同含义的属性字段。如果两者名称相同,会自动匹配并填充。如果之前转换过数据,系统会自动读取配置文件,并根据文件中字段的对应关系自动填充,减少用户复杂的字段设置操作。后续步骤的字段设置与此相同。
字段说明:
字段名称 | 字段说明 |
---|---|
NodeID | 节点编号 |
FloorID | 楼层ID |
NodeType | 节点类型(可选) |
Elevation | 绝对高程(可选) |
BuildingID | 建筑物编号(可选) |
3
工具会自动根据相应数据类型的配置文件(MapGISIndoorParams.ini)来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
FNodeID | 路段的起始节点编号 |
TNodeID | 路段的终止节点编号 |
RoadID | 路段的编号 |
Direction | 路段的方向 |
EmergencyAccess | 紧急通道属性(可选) |
Wheelchair | 无障碍属性(可选) |
RoadClass | 路段类型 |
4
工具会自动根据相应数据类型的配置文件(MapGISIndoorParams.ini)来设置字段信息,用户也可修改。
字段说明:
字段名称 | 字段说明 |
---|---|
FNodeID | 路段的起始节点编号 |
TNodeID | 路段的终止节点编号 |
RelationID | 跨楼层路段的编号 |
Direction | 路段的方向 |
EmergencyAccess | 紧急通道属性(可选) |
Wheelchair | 无障碍属性(可选) |
RelationClass | 跨楼层路段类型 |
5
点击“保存地址”输入栏的“...”,选择转换结果的保存位置,然后点击下一步。
6
点击“转换”按钮,立即进行转换,可以看到转换的进度,转换完成如下图所示。
7
转换完成之后即可从文件保存的目录中找到转换后的文件,包括转换日志文件(.txt)与数据文件(.db)。
建筑物信息文件制作
在转换室内导航数据之后,生成移动室内导航数据包,但是这样还不能满足室内导航功能的实现,还需要制作建筑物信息文件。这也就是室内导航和室外导航在数据制作上的区别。
建筑物信息文件,就是由用户创建的.txt文件,需要包括三个信息:
字段名称 | 字段说明 |
---|---|
BuildingID | 路段的起始节点编号 |
CornerCoordinate | 建筑物轮廓坐标 |
EntranceCoordinate | 建筑物出/入口坐标 |
如何获取上述三个建筑信息制作为一个.txt文件?接下来讲解三个建筑信息的获取方式:
(1) 建筑物编号:BuildingID
建筑物编号可以从导航数据的属性中获取,例如“道路节点信息”简单要素类。同时,此建筑物编号需要和导航数据库文件名称一致。
(2) 建筑物轮廓坐标:CornerCoordinate
获取建筑物边界多个坐标点,形成整体轮廓。可以在MapGIS桌面平台软件中获取。也如果建筑物形状规则,可以直接获取其外包矩形范围即可。
例如:打开室内地图的路网图层,查看属性,可以获取其外包矩形范围。
(3) 建筑物出/入口坐标:EntranceCoordinate
可以根据实际的情况在地图上获取出口/入口的坐标,在此默认只有一个出/入口,并且出口和入口为同一点。
根据此文件的信息能够判断导航的起始点是否在建筑物之内,在室内外一体化路径计算、路径导航过程中也发挥了重要的作用。此文件必须按照固定的格式来编写与制作,如下所示:
uildingID CornerCoordinate EntranceCoordinate
建筑物编号 坐标1的X值,坐标1的Y值|坐标2的X值,坐标2的Y值|···|坐标N的X值,坐标N的Y值 出/入口坐标X值,出/入口坐标Y值
文件创建、保存之后,室内导航数据就制作完成了。
移动端导航数据配置
经过前面三个步骤,室外移动导航数据包、室内移动导航数据包、建筑物信息文件制作完成后,需要拷贝到移动设备中进行数据配置工作,配置完成后才能在代码中调用,配置过程如下:
(1) 室外导航数据就是一个“**.db”数据文件,拷贝到移动设备中,在代码中通过对应路径调用即可。
(2) 室内导航数据配置首先需要创建一个空文件夹如“indoorNavi”,将以下两部分内容都放入其中:
一是每栋建筑物内的室内导航数据“**.db”文件,多栋建筑物对应多个导航数据文件,需说明的是,此文件必须以建筑物的楼栋号来命名,如“115.db”,楼栋号必须和建筑物信息文件中的楼栋号保持一致。
二是建筑物列表信息“buildingsInfo.txt”文件,命名固定,用于存储每栋建筑物的轮廓坐标和出入口信息,可按照相同的格式存储多个建筑物的信息。
在代码中调用时,使用RouteAnalysis类的init()方法设置室外导航数据文件路径、室内导航数据所在目录路径。