地图数据组织

最后更新时间:2019年5月17日

移动地图数据组织概述

在移动GIS开发应用中,地图数据组织与配置是第一步,非常关键,地图数据制作之后才能进行显示和操作。

MapGIS 10.3不仅采用一体化的数据存储管理机制来管理二、三维地图数据,并且以统一的数据组织方式(*.mapx)来支撑移动端GIS应用。不管是在线地图还是离线地图,都可以组织为.mapx格式即地图文档来进行调用,并且这也是最常用的格式。

此外,移动端还可以使用纯代码方式直接加载在线服务图层或离线地图,在线方式通过服务图层的方式加载在线服务图层,离线方式直接加载离线数据库中的地图数据或者通过图层方式加载离线瓦片数据。此种方式详见具体功能示例。

下面主要介绍通过制作地图文档方式的移动端地图数据组织操作与流程。

移动离线地图数据组织

离线地图组织,即将二维矢量地图、瓦片地图组织为对应的地图文档(*.mapx),最后处理为移动端应用的数据形式。离线瓦片地图的制作和矢量地图的制作有所区别。

离线矢量地图

离线矢量地图数据的组织、配置流程为:1)在MapGIS桌面工具组织地图文档(.mapx);2)使用“移动数据转换工具”转换数据;3)拷贝数据文件(.mapx与对应文件)至移动设备存储中;4)移动端加载显示。

对于只要包含离线矢量地图的数据,必须使用数据转换工具将其进行转换之后,才能在移动端显示,转换之后数据格式发生变化。至于数据为何要转换,有两方面的的原因,也即两种益处:

 轻量:MapGIS 10.3桌面平台软件中数据是以.HDF格式存在,数据结构复杂,数据文件所占存储空间较大,但移动设备的数据存储空间无法与个人电脑相比较,存储量较大的数据在移动端使用确实是不适宜。所以,将原始数据进行处理、转换,能大大减小数据文件大小,满足移动端对数据轻量的要求。

 加密功能:将数据进行转换之后,不仅减小了数据文件大小,最重要的是采用自定义的数据存储、管理机制,相当于对数据进行自动的加密,从而保证数据的安全性、保密性,满足实际生产业务需求。

配置地图文档的操作方法较为简单,在此就不做详细介绍,可参考MapGIS桌面工具操作相关资料。下面主要介绍如何通过“移动数据转换工具”生成移动数据包。

具体步骤如下:

① 打开“地图数据转换”工具:在MapGIS 10.3桌面工具中,可先将需要转换的地图文档(以sample.mapx为例)打开,然后单击移动数据工具条上的“地图数据转换”功能按钮即可打开工具。

0501地图数据转换工具.png

② 选择地图文档、存放路径:在“地图数据转换”工具中,先在“地图文档”后点击“…”,选择待转换的地图文档(如“sample.mapx”),可看到图层列表中显示了此地图文档包含的图层。然后在“存放路径”项后点击“…”,选择生成移动数据包的存放路径。

③ 选择数据库类型:数据库类型选择默认选项“基础库”,转换的数据用于移动端显示、查询,以及基础的编辑功能时都选择基础库类型。涉及到数据增量更新功能时才需要考虑是否选择“更新库”,具体的使用方法在实现此功能时详细讲解。以下步骤按照“基础库”为例。

④ 导入设置:如果该数据已经转换过,可以点击“导入设置”按钮,选择之前转换生成的设置文件“**.option”,则可以不用重复设置各项参数,直接点击“转换”按钮。如果该数据是首次转换,则需要用户自己按照后续步骤详细设置各项参数。

⑤ 图层参数设置:对每一个图层设置转换的参数,包括以下两个部分:

a、只读:“√勾选”表示要转换该层为只读数据,仅用于浏览和查询;“不勾选”表示该图层转换为可编辑的数据,支持对数据进行各种编辑操作。

b、过滤掉所选字段:点击可弹出对话框,如图所示,勾选的过滤掉的字段将不进行转换,生成的数据中不会有此字段的信息。没有特殊需要,可保持默认即不过滤任何字段。

0502过滤掉所选字段.png

⑥ 选项设置:地方图层信息设置完成后点击“选项”按钮,弹出如下图所示的对话框,设置以下几项信息:

a、只读数据支持的最大显示比:对于只读数据,可以通过“支持的最大显示比”来确定该地图所含的只读数据的数据级别,数据级别越高,转换的数据所占的空间越大。此项一般不用修改,保持默认即可。

b、移动数据库名称:“与桌面文档名称一致”表示移动数据库文件名与地图文档名称一致;“与桌面数据库名称一致”表示移动数据库文件名与桌面端矢量图层所引用的数据库名称一致。

c、是否包含系统库:“√勾选”表示将自动复制地图数据对应的系统库到存放的目录下;“不勾选”表示不会自动拷贝地图数据对应的系统库。系统库即Clib、Slib两个文件夹,包括了地图显示所需的字体库、颜色库、符号库等等。

d、是否包含TDF瓦片:此选项只在转换包含瓦片数据的地图文档时才起到作用。“√勾选”表示如果转换的地图文档中包含瓦片数据,会自动拷贝瓦片TDF文件到生成的数据文件夹中;“不勾选”表示不自动拷贝,需人为手动拷贝。 设置完毕点击“确定”按钮即可。

0503选项设置.png

⑦ 数据转换:以上的信息设置完成之后,即可点击转换工具对话框中的【转换】按钮进行最后的转换工作了,在工具上会有进度条显示转换的进度;待数据转换完成,会有对话框提示。

0504转换完成.png

⑧ 数据配置:在数据转换完成之后,会生成一个离线数据包,即得到一个与地图文档名称相同的文件夹,包含以下文件:

a、“sample.mapx”,离线地图文档。

b、“sample.mgdb”,离线移动数据库。

c、“sample.option”,设置信息文件,可供下次转换使用,不需再配置参数。

d、“log.txt”,转换日志文件,展示各图层转换结果。

e、如果选择了包含系统库,则还包括Clib、Slib两个文件夹。

0504转换生成的文件.png

得到移动数据包之后,即可进行数据配置工作。

注意:.mapx、.mgdb两个文件必须拷贝,同时为保证地图显示效果和桌面端一致,Slib、Clib两个文件夹也需要拷贝。建议直接将此文件夹(sample文件夹)拷贝到移动设备存储中,如手机存储根目录的MapGIS Demo/map文件夹下。

⑨ 移动端地图显示:数据配置完成之后,就可编写程序,创建地图控件、编写加载地图代码了。

离线瓦片地图

对于一个单独的瓦片数据,即一个**.TDF文件,要在移动端加载的话,有两种方法。第一种:可在移动端通过代码直接加载此文件,不需配置地图文档、不需转换数据;第二种:在MapGIS桌面端配置地图文档,不需转换数据。

如果要在移动端加载一个离线矢量数据、离线瓦片数据混合的地图文档时,就需要按照离线矢量地图的转换方法进行转换操作。

在此讲解如何将一个单独的.TDF文件组织为移动端数据,组织流程为:1)瓦片数据准备:在MapGIS 10.3桌面工具裁剪瓦片数据(已有瓦片则跳过此步骤);2)在MapGIS桌面工具组织地图文档(*.mapx);3)拷贝数据文件(.mapx与.TDF文件)至移动设备存储中;4)移动端加载显示。

具体步骤如下:

① 地图文档组织:打开MapGIS 10.3桌面工具,新建地图文档,在工作空间目录树的“新地图1”上右键,选择“添加图层”,找到需要加载的瓦片数据文件(.TDF格式)然后打开即可,完成之后 “复位窗口”即可对地图进行预览,如下图所示:

0505瓦片预览.png

随后,单击“文件”|“保存”,在弹出的对话框中设置地图文档名称和存储路径,最后点击“保存”,至此离线瓦片地图文档就组织完毕。

② 数据配置:配置时只需要将源瓦片数据文件(.TDF,旧版格式为.HDF)和对应的离线瓦片*.mapx文档一起拷贝到设备存储卡下(例如WhMap.TDF与WhMap.mapx文件)。

③ 移动端地图显示:数据配置完成之后,就可利用代码调用.mapx文件来显示地图。

移动在线地图数据组织

移动端支持MapGIS地图服务和第三方地图服务。调用MapGIS地图服务需要对接MapGIS IGServer服务管理器,将组织的地图文档(*.mapx)发布到服务器中;调用第三方地图服务,需要获取其服务地址。

在移动端显示在线地图服务的方式有两种:第一种是获取在线地图服务的URL地址后在移动端直接通过代码加载显示,不需要进行组织配置操作;第二种是利用服务地址配置为地图文档.mapx文件,然后再进行调用。接下来主要介绍第二种方法的操作。

在线地图组织与离线地图组织类似。但前提条件是要先确保在线地图服务已经发布并且能正常访问(服务开启、网络畅通),才可将对应在线地图服务组织地为图文档。

MapGIS地图服务

移动端支持的MapGIS地图服务包括自定义的在线矢量地图服务、瓦片地图服务,以及MapGIS OGC服务(WMS、WMTS、WFS)。三大类地图服务的组织发布方式类似,接下来会详细讲解。

1

MapGIS地图服务发布

MapGIS自定义地图服务和MapGIS OGC服务都统一由MapGIS服务管理器(MapGIS IGServer)进行发布、管理,在移动端调用MapGIS地图服务同样要对接MapGIS IGServer。

首先来了解一下MapGIS IGServer,它是云GIS软件MapGIS 10.3的云服务开发产品,提供了B/S模式的服务管理器——MapGIS Server Manager,它肩负IGServer基础内核与Web服务的管理重任,提供服务器管理、服务发布管理(包括二三维地图服务、OGC服务)、集群管理、安全管理等功能,是平台的重要组成部分。MapGIS Server Manager以网站方式提供,用户通过Web客户端交互操作进行管理配置,非常简便。

下面讲解如何在MapGIS Server Manager中发布地图服务。

在线矢量地图服务发布:

① 打开IGServer服务管理器。通过MapGIS Server Manager的访问地址(.NET版本的GIS服务器访问地址为http://localhost:9999/),进入登录界面,输入用户名和密码登录(默认admin,sa)进入主界面;

② 发布矢量地图服务。单击“数据仓库管理”目录下的“地图服务”,在“地图服务”操作界面,单击“发布地图文档”;

0506发布地图文档.png

在弹出信息配置对话框中,根据路径选择地图文档(以提前配置好的sample.mapx为例),其他信息保持默认,完成之后点击“发布”即可。

0507地图文档配置.png

矢量地图文档服务发布完成之后,如下图所示:

0508发布矢量地图服务完成.png

③ 浏览发布的地图。服务发布完成之后,点击刚刚发布的地图对应“预览”列下的图标,可以对地图进行预览,如下图所示:

0509在线矢量地图预览.png

④ 获取地图服务相关信息。地图文档发布之后,需要获取其相关信息,具体包括地图文档名称、地图出图的REST服务地址、地图服务基地址、图层名称、图层ID、图层原始数据URL等,以备后续地图显示、地图查询编辑时使用。在地图服务列表中点击发布的地图的名称列,进入地图服务详细信息界面,获取信息方法如下:

0510获取地图服务信息1.png

0511获取地图服务信息2.png

在线瓦片地图服务发布:

① 发布瓦片地图数据。单击“数据仓库管理”下的“地图服务”,在“地图服务”操作界面单击“发布瓦片”,在弹出的对话框中点击“浏览”按钮,根据路径选择瓦片数据文件,然后发布即可。

② 浏览发布的地图。服务发布完成之后,点击刚刚发布的地图对应“预览”列下的图标,可以对地图进行预览。

③ 获取服务地址。获取访问地图的REST服务地址,在后续组织地图文档或显示地图时要使用。点击发布的地图的名称,如上述发布的瓦片地图的名称“WhMap”,打开地图服务详细信息界面,复制WhMap的“瓦片的出图REST服务地址”,如下图所示:

0512获取瓦片地图服务出图地址.png

在线OGC地图服务发布: 移动端支持WMS服务(地图文档、图层两种类型)、WMTS服务、WFS服务,在此以WMS的地图文档类型为例,讲解发布流程,其他服务的发布思路一致。

特别注意:如果发布地图文档类型的WMS/WFS服务,前提条件是要发布MapGIS自定义的矢量地图服务。如果发布图层类型的WMS/WFS服务则不需要。发布WMTS服务,前提条件是要发布MapGIS自定义的瓦片地图服务。

① 发布WMS地图文档服务。打开MapGIS Server Manager并登陆,点击“OGC服务管理”下的“服务发布”,出现服务发布操作界面,单击“发布WMS/WFS服务”下的“发布OGC地图文档”选项,在弹出的对话框中选择“已发布的文档或目录形式文档”,此文档要求是已经发布为矢量地图文档,在下方的“服务支持接口及基地址”栏中勾选支持WMS服务,完成后点击“发布”即可,如下图所示:

0513OGC发布设置.png

② 预览地图、获取服务地址。发布完成之后,点击刚刚发布的地图对应“预览”列下的图标,可以对地图进行预览;点击地图前面的“+”号图标,可查看服务信息,复制其中“基地址列表”的URL地址,即为此地图服务的出图地址,如下图所示:

0514获取OGC地址.png

2

移动在线地图服务组织

上述过程讲解了如何发布MapGIS地图服务、获取服务出图地址,要想在移动端显示自己发布的地图服务,还需要将数据进行组织(利用服务图层方式显示地图则不用组织)。

不管是矢量、瓦片还是OGC服务,数据组织流程都一样,都需要在MapGIS 10.3桌面平台软件中配置地图文档即可,区别在于服务URL地址不同,配置地图文档选择类型不同。下面以矢量地图服务的文档配置为例,展示具体配置流程:

① 创建地图文档:打开MapGIS 10.3桌面工具(MapWorkSpace),新建地图文档,在工作空间目录树的“新地图1”上右键,选择“添加服务图层”。

② 在弹出的“添加服务图层”对话框中设置“服务类型”,选择和地图服务匹配的类型,此处为“MapGISIGServerVector”,即代表MapGIS矢量地图服务。

③ 在服务路径栏中输入之前发布矢量地图服务时获取的地图出图REST地址“http://localhost:6163/igs/rest/mrms/docs/sample”,注意一定要将其中的localhost替换为服务所在IGServer服务器的真实IP地址,例如“http://192.168.43.248:6163/igs/rest/mrms/docs/sample”,然后点击“获取服务信息”按钮,判断是否能够获取地图服务的信息,最后单击“确定”按钮即可,如下图所示:

0515服务图层信息设置.png

④ 添加完成后,复位地图即可查看地图,然后保存此地图文档为.mapx文件。

0516图层添加完成.png

至此,在线矢量地图文档组织完毕。配置时,只需将该*.mapx文档拷贝到移动端设备存储中,并确保移动设备与IGServer服务器网络正常连接,就可在移动端正常调用显示此地图服务了。

第三方公共地图

第三方公共地图服务,如天地图、Google地图、OpenStreetMap、BingMap、百度地图等,组织方法与MapGIS服务组织类似,在桌面工具中通过“添加服务图层”方式组织地图文档即可。

① 组织地图文档:打开MapGIS 10.3桌面平台软件,新建一个空的地图文档,然后在左侧目录树中选中地图结点,单击右键,选择“添加服务图层”,弹出对话框;

② 在“服务类型”项中有众多类型可选择,例如天地图服务(Tianditu),百度地图服务(BaiduMap、BaiduMapSatellite等),OpenStreetMap服务(OpenStreetStandard等),BingMap服务(BingMap等),雅虎地图服务(YahooMap等),谷歌地图服务(GoogleMap、GoogleSatelliteMap等),这些第三方地图服务类型中,大多数在选择之后,下方的“服务路径”一栏会自动给出默认的服务地址,用户不需自己获取,并且也无法修改。然后点击“获取服务信息”按钮来获取地图服务相关信息,最后点击“确定”按钮即可添加图层。Tianditu类型需要自己输入服务地址。以BaiduMap类型为例,操作方法如下图所示:

0517服务图层信息设置1.png

0518服务图层信息设置2.png

③ 服务添加成功后,复位地图即可预览地图,然后将此地图文档保存为mapx文件。

0519预览地图.png

通过以上步骤,在MapGIS 10.3桌面工具中组织好地图文档(.mapx),在应用时直接将此地图文档文件拷贝到移动设备存储中,保证移动设备网络畅通,能够正常访问配置的在线地图服务即可。

移动混合模式地图组织

移动端混合模式地图组织,即在线地图与离线地图的综合应用,将在线地图与离线地图组织到一个地图文档(*.mapx)中,再通过桌面工具的“移动数据转换工具”生成离线移动数据包。

在制作混合模式的地图文档的时候,分别通过“添加图层”和“添加服务图层”实现对应地图数据或地图服务的添加,然后保存地图文档,再进行数据转换操作。以MapGIS的在线地图服务与离线地图为例,具体步骤如下:

(1) 组织地图文档

打开MapGIS 10.3桌面工具(WorkSpace),通过“添加图层”方式加载离线数据图层(例如“城市水系”),通过“添加服务图层”方式添加在线数据图层(例如发布的瓦片服务图层WhMap.TDF,其在MapGIS IGServer平台中发布后的地图服务地址为http://192.168.43.248:6163/igs/rest/mrms/tile/WhMap),将离线数据图层和在线数据图层组织到同一个*.mapx中即可(如下图所示,其中底图为在线瓦片地图,蓝色为叠加的离线矢量地图),然后保存地图文档;

0520组织地图文档.png

(2) 数据转换

使用MapGIS 10.3桌面工具中的“移动数据转换工具”,将上一步组织的地图文档.mapx文件转换成一个.mapx和一个*.mgdb,然后将这两个文件(.mapx和.mgdb)拷贝到移动设备存储卡下,也可将整个移动数据包文件夹拷贝。在调用地图时候要保持移动设备能够通过无线网络连接到MapGIS IGServer服务器。

移动三维场景数据组织

移动端三维数据组织与二维数据组织模式相同,均通过地图文档组织数据,即在地图文档中组织三维场景,通过“添加图层”或“添加服务图层”方式,基于三维场景加载模型、地形、矢量、注记等数据。三维离线地图与三维在线地图的数据组织操作步骤与二维数据组织基本相同。

另外,移动端支持二维区图层直接构建三维建筑模型,通过3DBuildingLayer图层进行三维楼块显示,此方式可通过二维区图层进行数据组织。

三维场景数据组织

三维场景数据组织,即在地图文档中组织三维场景,通过“添加图层”或“添加服务图层”方式,在三维场景中组织各类数据。基本步骤如下:

(1) 数据源准备。打开MapGIS 10.3桌面工具,附加所需地图数据的地理数据库(若地理数据库已附加,此步可略);

(2) 组织三维地图文档。在MapGIS 10.3桌面工具中组织三维地图文档(.mapx),其中离线地图通过“添加图层”组织,在线地图服务通过“添加服务图层”组织;

(3) 数据转换。打开MapGIS 10.3桌面工具中的“移动数据转换工具”,将上一步组织好的三维地图文档转换生成移动数据包,最后将生成的对应数据文件拷贝到移动端设备即可。