具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
以下,对本申请实施例涉及的名词进行解释,以方便读者理解。
1、ArcGIS,是一个地理信息系统(GIS)构建和应用平台,用户可用其来收集、组织、管理、分析、交流和发布地理信息。
2、MapInfo,(地图对象+属性数据,Mapping+Information)是一个桌面地理信息系统软件,用于提供一种数据可视化、信息地图化的桌面解决方案。
3、mif,即内存初始化文件,是MapInfo通用数据交换格式,可以工作在MapInfo支持的所有平台上。MapInfo数据保存在两个文件中:图形数据保存在.mif文件中,而文本(属性)数据保存在.mid文件中。
4、Super Map,是面向各行业应用开发、二三维制图与可视化、决策分析的大型地理信息系统(Geographic Information System或Geo-Information system,GIS)基础软件系列,包含云GIS服务器、边缘GIS服务器、端GIS以及在线GIS平台等多种软件产品。
5、栅格瓦片,栅格地图瓦片是一种比较传统的模式,将矢量数据渲染成为256×256或者512×512像素大小的图片,按排列规则在浏览器中依次排列图片全屏渲染显示地图。
6、矢量瓦片,是将矢量数据通过不同的描述文件来组织和定义,在客户端实时解析数据和完成绘制,在浏览器端将地图显示。
7、shp,是一种空间数据开放格式,它已经成为了地理信息软件界的开放标准,用来储存地图要素坐标数据及几何数据。
8、csv,(Comma-Separated Values),是一种逗号分隔值格式的文件,是一种用来存储数据的纯文本格式文件。csv文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串。
9、pbf,是通用的矢量瓦片数据标准,被许多公司和组织采用。瓦片数据集的组织模型类似栅格瓦片金字塔模型,包含坐标系、投影方式、瓦片编号。已实现任意精度、空间位置与矢量瓦片的对应关系,并被栅格瓦片规范相互兼容。
10、Webp,是一种同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式,派生自影像编码格式VP8,被认为是WebM多媒体格式的姊妹项目。
11、GDAL,(Geospatial Data Abstraction Library,地理空间数据抽象库)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。
12、PNG,(Portable Network Graphics,便携式网络图形),是一种采用无损压缩算法的位图格式,支持索引、灰度、RGB(red green blue,红绿蓝)三种颜色方案以及Alpha通道等特性。
以上是对本申请实施例中涉及到的部分概念所做的简单介绍。
在现有技术中虽存在部分数据格式之间进行格式转换的手段,但均较为繁琐复杂,不成体系,缺乏一种方便快捷的数据格式转换方法。
为解决上述问题,本申请提出一种数据格式转换方法、装置、设备及存储介质,数据格式转换装置获取用户输入的地理数据,并确定地理数据的初始数据格式和目标数据格式;初始数据格式与目标数据格式不同。进一步的,数据格式转换装置基于初始数据格式以及目标数据格式,确定转换关系序列;转换关系序列包括至少一个转换关系,转换关系用于指示从第一数据格式转换为第二数据格式;转换关系序列中首个转换关系的第一数据格式为初始数据格式,转换关系序列中最后一个转换关系的第二数据格式为目标数据格式。最后,数据格式转换装置根据转换关系序列,将地理数据的数据格式从初始数据格式转换为目标数据格式。这样一来,数据格式转换装置在获取到用户输入的地理数据后,确定地理数据的初始数据格式以及目标数据格式,并基于初始数据格式以及目标数据格式确定出转换关系序列,进而根据转换关系序列中的有顺序的多个转换关系,依次对地理数据的数据格式进行转换,最终得到目标数据格式的地理数据,提供一条清晰的数据格式转换链路,通过转换关系序列中按顺序排列的转换关系对应的格式转换方法,依次对地理数据进行格式转换,以使得对地理数据进行方便快捷的格式转换。
图1示出一种地理数据转换系统,本申请实施例提供的地理数据转换方法可以适用于如图1所示的地理数据转换系统,用于实现对地理数据进行方便快捷的格式转换。如图1所示,地理数据转换系统10中包括地理数据转换装置11、服务器12以及用户设备13。
其中,地理数据转换装置11分别与服务器12以及用户设备13连接,上述连接关系中,可以采用有线方式连接,也可以采用无线方式连接,本申请实施例对此不作限定。
需要说明的,上述地理数据转换装置11也可以部署在服务器12上,作为同一设备,还可以分别部署于不同设备,地理数据转换装置以及用户设备13可以集成于同一设备,还可以分别部署于不同设备,本申请实施例对此不作具体限定。
数据格式转换装置11可以用于获取用户通过用户设备13输入的地理数据。
数据格式转换装置11还可以用于确定地理数据的初始数据格式和目标数据格式。
需要说明的,数据格式转换装置11在获取地理数据之后,检测地理数据文件的数据格式将检测到的数据格式确定为初始数据格式。
在一些实施例中,用户输入地理数据时还输入了用户需求的数据格式,数据格式转换装置11将用户需求的数据格式确定为目标数据格式。初始数据格式与目标数据格式不同。
数据格式转换装置11还可以用于基于初始数据格式以及目标数据格式,转换关系序列。
其中,转换关系序列包括至少一个转换关系,转换关系用于指示从第一数据格式转换为第二数据格式;转换关系序列中首个转换关系的第一数据格式为初始数据格式,转换关系序列中最后一个转换关系的第二数据格式为目标数据格式。
示例性的,数据格式包括.mif、.shp、.csv、.pbf、.png以及Webp等数据格式。转换关系示例性可以为.mif可转换为.csv、.shp可转换为.csv、.mif可转换为.csv、.csv可转换为.pbf、.png可转换为.csv、pbf-merge(pbf合并)以及.csv可转换为.Webp。
数据格式转换装置11还可以根据转换关系序列,将地理数据的数据格式从初始数据格式转换为目标数据格式。
需要说明的,相邻转换节点之间的格式转换方法包括.mif to.csv、.shpto.csv、.mif to.csv、.csv to.pbf、.png to.csv、pbf-merge(pbf合并)以及.csvto.Webp等。
其中,.mif to.csv转换方法的实现过程如下所述。
需要说明的,.mif数据是MapInfo数据格式之一,是外部数据交换文件,存储几何数据和位置数据。.mif由文件头和数据段组成,第一部分文件头定义了版本信息、字符集、投影参数坐标类型和表结构;第二部分数据段中包含MapInfo定义的点、线、面、多义线、区域、圆弧、文本、矩形、圆角矩形以及椭圆等实体数据。
.mif文件头格式示例性如下所示,方括号内是可选信息。
Version n
Charset"characterSetName"
[DELIMITER"<c>"]
[UNIQUE n,n..]
[INDEX n,n..]
[COORDSYS...]
[TRANSFORM...]
COLUMNS n
<name><type>
<name><type>
…
DATA
其中,Version子句说明所使用的是VERSION 1、VERSION 2、VERSION300还是VERSION 450格式。
Charset子句指定在表中创建文本时使用的字符集。
Delimiter在引号中指定分隔符,缺省情况下,分隔符是TAB键;如果使用缺省值,则无需DELIMITER行。
Unique(唯一)指定一个号码,这个号码指示数据库的一列。
Index(索引)要指出表中的列有索引,可以在Index子句中引入一个号码(或一系列用逗号分隔的号码)。每个号码代表数据库的一列;INDEX列表中的列将有附录为它们制作的索引。
CoordSys(坐标系统)子句指定COORDSYS子句以注明数据不是以经度/纬度形式保存的。未指定COORDSYS子句时,假定数据是以经度/纬度形式保存的。所有坐标都是以相对于东北象限的值保存的。
Columns(列)指定列数。然后为每列创建一行,它包含列名、列类型,对于字符列和小数列,还包含一个指示字段宽度的数。
.mif文件的数据段在文件头之后,且必须由DATA以单独的一行引入。
基于上述对.mif文件结构的描述,数据格式转换装置11在确定需要将.mif文件转换为.csv文件的情况下,从.mif文件中读取几何对象以及属性,将读取到的几何信息以及属性使用英文逗号分割,依次写入.csv文件,实现.mif to.csv之间的数据格式转换。
示例性的,图2示出了.mif文件经数据格式转换装置11进行格式转换后得到的.csv文件的文件形式。
.shp to.csv转换方法的实现过程如下所述。
需要说明的,.shp文件包括主文件(*.shp)、索引文件(*.shx)和数据库文件*(.dbf)。
其中,主文件用于存储图形信息,记录空间坐标信息,主要包含文件头和文件记录。文件头包括版本号、文件长度、存储文件的数据类型,以及数据范围等,文件记录存储数据的坐标信息,坐标包含点、线、面等。
索引文件主要用于记录主文件的偏移量,包含索引文件头和索引记录。索引文件头的组织形式与主文件的文件头一致,索引文件中第一个记录存储第一个记录在主文件中的偏移量和内容长度,一个记录在主文件中的偏移量是用16字节表示的,表示从主文件开始至这个记录的头一个字节的word个数,可以快速定位每个几何体的位置。
数据库文件也称为属性文件,包含任何需要的要素属性或可供其他表连接的属性关键字。
基于上述对.shp文件数据结构的描述,数据格式转换装置11在确定需要将.shp文件转换为.csv文件的情况下,从.shp的主文件(*.shp)中读取几何图形,从数据库文件(*.dbf)中读取几何图形的属性,将读取到的几何图形以及属性使用英文逗号分割,并依次写入.csv文件,实现.shp to.csv之间的数据格式转换。
.mif to.shp转换方法的实现过程如下所述。
基于上述对.mif以及.shp文件数据结构的描述,数据格式装换装置11在确定需要将.mif文件转换为.shp文件的情况下,从.mif文件中读取几何对象以及属性,基于读取到的几何对象以及属性进行坐标系转换,将经过坐标转换后的几何对象以及属性,根据.shp文件的数据结构,分别写入主文件(*.shp)、索引文件(*.shx)和数据库文件(*.dbf)中,实现.mif to.shp的数据格式转换。
需要说明的,在对.mif格式与.shp格式的数据进行坐标转换时,可以采用如下模型实现:
模型一:相似变换模型。
相似变换一般包含平移参数、旋转参数和尺度参数。
其中,(Xi,Yi)I、(Xi,Yi)Π分别表示i点在坐标系统I和坐标系统П中的点坐标,(x0,y0)为两个平移参数,α为旋转参数,m为尺度参数。
模型二:仿射变换模型。
其中,其中(s,t)和(x,y)分别为两坐标系下的坐标,a0,a1,a2,b0,b1,b2为转换参数,当公共点大于3个时,采用最小二乘法进行估算。
模型三:双线性变换转换模型。
其中,其中(s,t)和(x,y)分别为两坐标系下的坐标,a0,a1,a2,a3,b0,b1,b2,b3为转换参数,当公共点大于4个时,采用最小二乘法进行估算。
示例性的,图3示出了.mif文件经数据格式转换装置11进行格式转换后得到的.shp文件的文件形式。
.csv to.pbf转换方法的实现过程如下所述。
需要说明的,.pbf文件数据切片的投影通常为经纬度投影或者墨卡托投影。.csvto.pbf的数据格式转换涉及.csv文件的三份数据,分别为矢量源数据(.csv文件)、表头(schema.csv文件)以及过滤条件(filter.json),其中,矢量源数据可以为.mif/.shpto.csv转换的矢量数据,表头可以为.mif/.shp to.csv生成的矢量数据表头;filter.json为自定义配置文件,用于定义在切pbf时每个缩放等级下切图所需的数据。
数据格式转换装置11在确定需要将.csv文件转换为.pbf文件的情况下,可以参照如图4所示的处理流程,通过spark组件实现对.csv文件的数据读取,根据过滤条件(filter.json)筛选对每一级的数据切片,通过protobuf-java-3.5.0版本实现对每一级的数据切片进行序列化存储,得到.pbf文件,实现.csv to.pbf之间的数据格式转换。
示例性的,图5示出了.csv文件经数据格式转换装置11进行格式转换后得到的.pbf文件的文件形式。
pbf-merge转换方法的实现过程如下所述。
pbf-merge转换方法用于实现将瓦片号的不同pbf数据合并成一个,适用于不同图层pbf数据的合并,例如建筑物图层和路网图层合并,不同来源的poi数据合并等。
需要说明的,.pbf文件在相同投影下进行切片,将地图数据按照网格进行切割,每个切割范围称为瓦片,同一个切割范围所在的瓦片号一致,同一瓦片号有不同的地图层级。
数据格式转换装置11在确定需要对.pbf文件进行pbf-merge处理的情况下,可以参照如图6示出的处理流程,获取每一层级的瓦片数据,根据地图瓦片金字塔原理,将第10地图层级的瓦片作为金字塔第一级,将第10地图层级同一瓦片范围内的其他0-9地图层级的瓦片和当前第10地图层级的瓦片,放入同一文件,大大减少了.pbf文件数量过多的问题,读取同一文件下的.pbf数据,数据格式转换装置11在解析后将不同地图层级的瓦片数据重新写入一个新的瓦片,实现对.pbf文件的合并。
示例性的,图7示出了.pbf文件经数据格式转换装置11进行格式转换后得到的.merge-pbf文件的文件形式。
.png to.Webp转换方法的实现过程如下所述。
需要说明的,Webp的压缩主要分为有损压缩、无损压缩以及有损带透明压缩。
其中,有损压缩基于VP8视频编码中的预测编码方法来压缩图像数据,其基本步骤类似于JPEG(Joint Photographic Experts Group)压缩,主要包含格式转换、分割子块、预测编码、正向离散余弦变换(Forward Discrete Cosine Transform,FDCT)、量化、Z排列、熵编码。
无损压缩基于使用不同的技术对图像数据进行转换,包括:预测空间变换、色彩空间转换、使用调色板、多像素打包成一个像素、alpha值替换等技术。对于熵编码,则采用改进的LZ77-Huffman编码来紧凑稀疏值,它是一种对距离值的2D编码技术。
有损带透明压缩区别于有损压缩和无损压缩,这种编码允许对RGB频道的有损编码同时可对透明度频道进行无损编码。
数据格式转换装置11在确定需要对.png文件转换为.Webp文件的情况下,数据格式转换装置11依次执行如下步骤,以实现.png to.Webp之间的数据格式转换。
步骤一:数据格式转换装置11在确定压缩前图像数据为RGB格式的情况下,将RGB格式转换为YUV格式,Y表示亮度分量,UV表示色度分量。
步骤二:数据格式转换装置11将数据分割成一个个8×8或16×16的宏块。
步骤三:数据格式转换装置11基于步骤二得到的宏块,进行帧内预测。
其中,帧内预测包括下述四种帧内预测模式。
其一、H_PRED(horizontal prediction).使用block左边的一列L来填充block中的每一列。
其二、V_PRED(vertical prediction):使用block上边的一行A来填充block中的每一行。
其三、DC_PRED(DC prediction):使用L和A中所有像素的平均值作为唯一的值填充block。
其四、TM_PRED(TrueMotion prediction):使用渐进的方式,记录上面一行的渐进差,以同样的差值,以L为基准拓展每一行。
步骤四:数据格式转换装置11对每个宏块执行FDCT,使得变换后数据的低频部分分布在数据块的左上方,高频部分集中在右下方,其中左上角第一个系数称为直流系数,其他均为交流系数。
步骤五:数据格式转换装置11把经过FDCT变换后的宏块中每个数值除以量化表中对应的系数并取整。
其中,量化表中高频部分对应的系数比低频部分系数要大得多,则在经过量化后,高频部分的频率系数被大大衰减甚至许多被清零,而低频部分的频率系数则较好地被保留。
步骤六:数据格式转换装置11为更便于后续的编码,在编码前对数据块进行重新的排列,将低频部分的数据排在前面,高频部分的数据排在后面,以增加数组中连续零值的数量。
需要说明的,在数据格式转换装置11实现对数据块进行重新排列后,可以根据对于.Webp格式文件的需求,从如下步骤七-九中选择编码方式进行编码。
步骤七:数据格式转换装置11通过差分脉冲编码调制(DifferentialPulse CodeModulation,DPCM)对直流系数进行编码。
需要说明的,由于直流系数的数值较大,且相邻数据块的直流系数相差不大,所以可使用DPCM对相邻数据块间量化后的直流系数差值进行编码,从而提高压缩比。
步骤八:数据格式转换装置11对量化后的交流系数进行行程编码,以有效压缩数据长度。
步骤九:数据格式转换装置11采用布尔算法对数据进行熵编码。
示例性的,图8示出了.png文件经数据格式转换装置11进行格式转换后得到的.Webp文件的文件形式,转换后的.Webp文件相较于转换前的.png文件的大大减少了图片大小,能够提高对瓦片加载和渲染的速度。
.png to.csv转换方法的实现过程如下所述。
需要说明的,地图数据通常以瓦片形式进行存储,当范围较大而且地图等级较高的情况下,瓦片的数量通常在千万级甚至上亿级,由于数据较大,压缩数据耗时长,失败率高,无法进行数据分享和传输。为解决该问题,数据格式转换装置11将.png格式的图片转成Base64字符(基于64个可打印字符来表示二进制数据),以csv格式存储在少量文本中。
数据格式转换装置11在确定需要对.png文件转换为.csv文件的情况下,数据格式转换装置11依次执行如下步骤,以实现.png to.csv之间的数据格式转换。
步骤一:数据格式转换装置11将.png格式的图片上每个像素点RGB值0-255之间进行分级,把每个等级的像素点对照美国信息交换标准代码(American Standard Code forInformation Interchange,ASCII)编码表,转换为ASCII码。
其中,ASCII编码,从A-Z、a-z、0-9和一些其他的特殊字符,都有唯一的一个数字来表示。例如a是97,A是65。
步骤二:数据格式转换装置11对得到的ASCII码数据进行切分,每三个字节一组,一共24个bit。
步骤三:数据格式转换装置11对切分后的数据重组,24个bit重组为4组,每组6个bit。
步骤四:数据格式转换装置11对重组后的数据处理,每组最前面添加两个“0”,构成每组8个bit,一共32个bit。
步骤五:数据格式转换装置11根据Base64编码表,获取相应的编码值。进一步的,数据格式转换装置11将得到的编码值写入.csv格式文件,实现由.pngto.csv之间的数据格式转换。
示例性的,以字符Man为例。
S1、数据格式转换装置11基于ASCII编码表,确定字符Man对应的十进制数为“77”、“97”、“110”。进一步的,数据格式转换装置11确定字符Man对应的二进制值分别为01001101、01100001、01101110。
S2、数据格式转换装置11将S1得到的三个二进制数组合,得到一个24位的二进制字符串010011010110000101101110。
S3、数据格式转换装置11将S2得到的24为二进制字符串分成4组,每组6位二进制位,得到010011、010110、000101、101110。
S4、数据格式转换装置11分别在S3得到的每组二进制字符串前加“00”,扩展为32个二进制位,得到四个字节分别为00010011、00010110、00000101、00101110。对应的十进制值分别是19、22、5、46。
S5、数据格式转换装置11基于S4得到的十进制值以及Base64编码表,确定对应的Base64编码,得到T、W、F、u。
进一步的,数据格式转换装置11将得到的TWFu写入.csv格式文件。
示例性的,图9示出了.png文件经数据格式转换装置11进行格式转换后得到的.csv文件的文件形式。转换后的.csv文件相较于转换前的.png文件能够实现快速传输、存储,提高电子地图的渲染效率。
图10是根据一些示例性实施例示出的一种数据格式转换方法的流程示意图。在一些实施例中,上述数据格式转换方法可以应用到如图1所示的数据格式转换系统10中的数据格式转换装置11。以下,本申请实施例以数据格式转换方法应用于数据格式转换装置11为例,对上述数据格式转换方法进行说明。
如图10所示,本申请实施例提供的数据格式转换方法,包括下述S201-S204。
S201、数据格式转换装置获取用户输入的地理数据。
作为一种可能的实现方式,数据格式转换装置获取用户通过用户设备输入的地理数据。
示例性的,在用户设备与数据格式转换装置部署于不同设备的情况下,用户通过用户设备与数据格式转换装置之间的连接,在用户设备上选择向数据格式转换装置发送地理数据。
相应的,数据格式转换装置通过与用户设备之间的连接,接收用户设备发送的地理数据。
在用户设备与数据格式转换装置部署于同一设备的情况下,用户在用户设备上,通过接入用户设备的鼠标或其他输入设备,将地理数据拖动至数据格式转换装置的文件输入区域。
相应的,数据格式转换装置在检测到文件输入区域存在文件时,获取文件输入区域的地理数据。
S202、数据格式转换装置确定地理数据的初始数据格式和目标数据格式。
其中,初始数据格式和目标数据格式不同。
作为一种可能的实现方式,数据格式转换装置在基于上述步骤S201获取到地理数据后,检测地理数据的文件后缀,获取地理数据的数据格式,并将检测获取到的数据格式确定为初始数据格式。
进一步的,若用户在输入地理数据时,还输入了需求的数据格式,则数据格式转换装置将用户需求的数据格式确定为目标数据格式。若用户未输入需求的数据格式,则数据格式转换装置将预设的数据格式确定为目标数据格式,或者,数据格式转换装置检测输出接口连接的软件所支持的数据格式,将该软件支持的数据格式确定为目标数据格式,以使得在初始数据格式的地理数据,在经数据格式转换装置处理后,能够以连接的软件运行。
需要说明的,预设的数据格式可以由数据格式转换系统的运维人员,预先在数据格式转换装置中设置,本申请实施例对此不作具体限定。
示例性的,地理数据的数据格式示例性可以为.mif、.shp、.csv、.pbf、.png以及Webp等数据格式中的任意一个。
S203、数据格式转换装置基于初始数据格式以及目标数据格式,确定转换关系序列。
其中,转换关系序列包括至少一个转换关系,转换关系用于指示从第一数据格式转换为第二数据格式;转换关系序列中首个转换关系的第一数据格式为初始数据格式,转换关系序列中最后一个转换关系的第二数据格式为目标数据格式。
需要说明的,每个转换关系对应两个转换关系,指示第一数据格式的地理数据能够转换为第二数据格式的地理数据。
作为一种可能的实现方式,数据格式转换装置在确定初始数据格式以及目标数据格式后,根据初始数据格式从预设转换关系中确定首个转换关系,根据目标数据格式从预设转换关系中确定最后一个转换关系。进一步的,数据格式转换装置判断首个转换关系与最后一个转换关系是否为同一转换关系,在其为同一转换关系的情况下,确定转换关系序列包括首个转换关系或最后一个转换关系。
进一步的,数据格式转换装置在首个转换关系与最后一个转换关系不为同一转换关系的情况下,基于首个准换关系的第二数据格式,从预设转换关系中确定下一转换关系,下一转换关系的第一数据格式为上一转换关系的第二数据格式,直至转换关系的第二数据格式为最后一个转换关系的第一数据格式,数据格式转换装置根据首个准换关系、依次查询到的转换关系,以及最后一个转换关系,生成转换关系序列。
需要说明的,预设转换关系可以由数据格式转换系统的运维人员,预先在数据格式转换装置中设置,示例性的可以为.mif可转换为.csv、.shp可转换为.csv、.mif可转换为.csv、.csv可转换为.pbf、.png可转换为.csv、pbf-merge以及.csv可转换为.Webp,本申请实施例对此不作具体限定。
示例性的,若地理数据的初始数据格式为.shp格式,目标数据格式为.merge-pbf格式。则数据格式转换装置基于上述预设转换关系,确定第一数据格式为.shp格式的转换关系为.shp可转换为.csv,并将转换关系.shp可转换为.csv确定为首个转换关系,确定第二数据格式为.merge-pbf格式的转换关系为pbf-merge,并将pbf-merge确定为最后一个转换关系。进一步的,数据格式转换装置确定.shp可转换为.csv与pbf-merge不为同一转换关系,则数据格式转换装置确定.shp可转换为.csv的第二数据格式为.csv格式,并基于.csv格式查询第一数据格式为.csv格式的下一转换关系为.csv可转换为.pbf。进一步的,数据格式转换装置确定.csv可转换为.pbf的第二数据格式.pbf格式为最后一个转换关系pbf-merge的第一数据格式,则确定转换关系序列中包括的至少一个转换关系为.shp可转换为.csv、.csv可转换为.pbf以及pbf-merge,则转换关系序列为[.shp可转换为.csv,.csv可转换为.pbf,pbf-merge]。
若地理数据的初始数据格式为.shp格式,目标数据格式为.csv格式。则数据格式转换装置基于上述预设转换关系,确定第一数据格式为.shp格式的转换关系为.shp可转换为.csv,并确定转换关系.shp可转换为.csv的第二数据格式为目标数据格式,则确定转换关系.shp可转换为.csv为最后一个转换关系。进一步的,数据格式转换装置确定首个转换关系与最后一个转换关系为同一转换关系,则转换关系序列为[.shp可转换为.csv]。
S204、数据格式转换装置根据转换关系序列,将地理数据的数据格式从初始数据格式转换为目标数据格式。
作为一种可能的实现方式,数据格式转换装置在上述步骤S203确定到转换关系序列后,确定转换关系序列中包括的转换关系数量。进一步的,数据格式转换装置在确定转换关系序列仅包括一个转换关系的情况下,基于转换关系的标识,从服务器调取格式转换的方法,对地理数据进行格式转换,得到目标数据格式的地理数据。
数据格式转换装置在确定转换关系序列包括至少两个转换关系的情况下,基于转换关系的标识,从服务器调取相应的格式转换方法,根据转换关系序列中转换关系的顺序,依次调用格式转换方法对地理数据进行格式转换,得到目标数据格式的地理数据。
需要说明的,转换关系的标识与格式转换方法的映射关系可以由数据格式转换系统的运维人员,预先在数据格式转换装置或服务器中设置,本申请实施例对此不作具体限定。
示例性的,转换关系的标识与格式转换方法的映射关系如下表1所示。
表1:转换关系的标识与格式转换方法的映射表
转换关系的标识 |
格式转换方法 |
.mif可转换为.csv |
.mif to.csv |
.shp可转换为.csv |
.shp to.csv |
.mif可转换为.csv |
.mif to.csv |
.csv可转换为.pbf |
.csv to.pbf |
.png可转换为.csv |
.png to.csv |
需要说明的,上述表1仅示例性示出5个转换关系的标识与格式转换方法的映射关系,并不构成对转换关系的标识与格式转换方法的映射关系的数量限定。
在一些实施例中,在随着电子地图的发展出现新型的数据格式以及转换方法后,可以在数据格式转换装置中存储的转换关系的标识与格式转换方法的映射表中添加相应的映射关系,在服务器中存储相应的格式转换方法,以提高本申请提供数据格式转换方法的适应性。
可以理解的,在本申请实施例提供的数据格式转换方法中,数据格式转换装置在获取到用户输入的地理数据后,确定地理数据的初始数据格式以及目标数据格式,并基于初始数据格式以及目标数据格式确定出转换关系序列,进而根据转换关系序列中的有顺序的多个转换关系,依次对地理数据的数据格式进行转换,最终得到目标数据格式的地理数据,提供一条清晰的数据格式转换链路,通过转换关系序列中按顺序排列的转换关系对应的格式转换方法,依次对地理数据进行格式转换,以使得对地理数据进行方便快捷的格式转换。
在一种设计中,如图11所示,本申请实施例还提供了一种根据地理数据的初始数据格式以及目标数据格式,确定转换关系序列的方法,包括S301-S304。
S301、数据格式转换装置根据初始数据格式,从转换关系拓扑中确定首个转换关系。
其中,转换关系拓扑包括多个数据格式和多个数据格式中相邻两个数据格式对应的转换关系。
作为一种可能的实现方式,数据格式转换装置基于上述步骤S202中确定到的地理数据的初始数据格式,从转换关系拓扑中确定与初始数据格式对应的初始拓扑节点。进一步的,数据格式转换装置从转换关系拓扑中,确定以该初始拓扑节点为起点的转换关系,并将确定到的转换关系确定为首个转换关系。
需要说明的,转换关系拓扑中的拓扑节点可以由数据格式转换系统的运维人员,预先在数据格式转换装置中设置,其中,数据格式转换装置将每种数据格式确定为每个拓扑节点,并将多个拓扑节点中,存在预设转换关系的两个拓扑节点连接,生成转换关系拓扑。
示例性的,图12示出了一种转换关系拓扑的示意图,其中拓扑节点包括.mif格式、.shp格式、.csv格式、.pbf格式,以及.merge-pbf格式。若数据格式转换装置确定.csv格式为初始数据格式,则基于转换关系拓扑,确定.csv可转换为.pbf为以.csv格式为起点的转换关系,将.csv可转换为.pbf确定为首个转换关系。
若数据格式转换装置确定.mif格式为初始数据格式,则基于转换关系拓扑,确定.mif可转换为.shp以及mif可转换为.csv均为以.mif格式为起点的转换关系。进一步的,若数据格式转换装置确定.pbf格式为目标数据格式,则基于转换关系拓扑可以确定以mif可转换为.csv相较于.mif可转换为.shp可以少进行一次格式转换,则确定mif可转换为.csv为首个转换关系。
在一些实施例中,当以某一数据格式为起点时包括多种转换关系的情况下,基于每种转换关系向下拓扑,得到多条转换链路能够将地理数据转换为目标数据格式,进一步的选择转换次数最少的转换链路中包括的转换关系写入转换关系序列。
S302、数据格式转换装置确定首个转换关系的第二数据格式是否为目标数据格式。
作为一种可能的实现方式,数据格式转换装置在基于上述步骤S301中确定到的首个转换关系,确定首个转换关系的第二数据格式。进一步的,数据格式转换装置基于上述步骤S202中确定到的目标数据格式与首个转换关系的第二数据格式对比,确定是否一致。
S303、数据格式转换装置在首个转换关系的第二数据格式不为目标数据格式的情况下,根据目标数据格式,从转换关系拓扑中确定最后一个转换关系。
作为一种可能的实现方式,数据格式转换装置在上述步骤S302确定首个转换关系的第二数据格式不为目标数据格式的情况下,基于目标数据格式,从转换关系拓扑中确定与目标数据格式对应的终止拓扑节点。进一步的,数据格式转换装置从转换关系拓扑中,确定以该终止拓扑节点为终点的转换关系,并将确定到的转换关系确定为最后一个转换关系。
示例性的,基于图12示出的转换关系拓扑的示意图,若数据格式转换装置确定.pbf格式为初始数据格式,则基于转换关系拓扑,确定.csv可转换为.pbf为以.pbf格式为终点的转换关系,将.csv可转换为.pbf确定为最后一个转换关系。
S304、数据格式转换装置根据首个转换关系和最后一个转换关系,从转换关系拓扑中确定转换关系序列。
作为一种可能的实现方式,数据格式转换装置基于上述步骤S301以及S303确定到的首个转换关系以及最后一个转换关系,在转换关系拓扑中,确定中间转换关系。进一步的,数据格式转换装置确定转换关系序列包括首个转换关系、中间转换关系以及最后一个转换关系。
需要说明的,数据格式转换装置确定中间转换关系可以为,基于前一转换关系的第二数据格式为起点,确定当前转换关系,将当前转换关系确定为中间转换关系,并判断当前转换关系的第二数据格式是否为最后一个转换关系的第一数据格式。
进一步的,在当前转换关系的第二数据格式为最后一个转换关系的第一数据格式的情况下,确定当前转换关系为转换关系序列中倒数第二个转换关系。
在当前转换关系的第二数据格式不为最后一个转换关系的第一数据格式的情况下,基于当前转换关系的第二数据格式,确定下一转换关系,直至确定到转换关系的第二数据格式为最后一个转换关系的第一数据格式,下一转换关系的第一数据格式为当前转换关系的第二数据格式。
可以理解的,本申请实施例提供的上述数据格式转换方法中,预先根据数据格式以及预设转换关系,生成转换关系拓扑,在数据格式转换装置获取到地理数据的初始数据格式以及目标数据格式后,便可以依据转换关系拓扑确定出包括最少数量的转换关系的转换关系序列。
在一种设计中,当转换关系序列中包括多个转换关系的情况下,为了实现将地理数据的格式,从初始数据格式转换为目标数据格式,本申请实施例提供的数据格式转换方法,还包括:
数据格式转换装置根据初始数据格式的地理数据,以及转换关系序列包括的至少两个转换关系的顺序,依次切换地理数据的数据格式,直至地理数据的数据格式为目标数据格式。
其中,数据格式转换装置在确定转换关系序列后,基于转换关系序列中的首个转换关系,调取相应的转换方法,对初始数据格式的地理数据进行转换,得到转换数据格式后的地理数据,进一步的判断地理数据的数据格式是否为目标数据格式。
在地理数据的数据格式为目标数据格式的情况下,输出目标数据格式的地理数据。在地理数据的数据格式不为目标数据格式的情况下,按照转换关系序列中包括的转换关系,依次调取相应的转换方法,转换地理数据的数据格式,直至地理数据的数据格式为目标数据格式。
在一种设计中,如图13所示,本申请实施例还提供了一种根据地理数据的初始数据格式以及目标数据格式,确定转换关系序列的方法,包括S401-S403。
S401、数据格式转换装置根据初始数据格式,从转换关系拓扑中确定首个转换关系。
需要说明的,S401的具体实现方式,可以参照本申请上述实施例步骤S301的记载,此处不再进行赘述。
S402、数据格式转换装置确定首个转换关系的第二数据格式是否为目标数据格式。
需要说明的,S402的具体实现方式,可以参照本申请上述实施例步骤S302的记载,此处不再进行赘述。
S403、数据格式转换装置在首个转换关系的第二数据格式为目标数据格式的情况下,确定转换关系序列,转换关系序列包括首个转换关系。
作为一种可能的实现方式,数据格式转换装置在基于上述步骤S402确定首个转换关系的第二数据格式为目标数据格式的情况下,也即确定了通过首个转换关系对应的格式转换方法即可实现初始数据格式到目标数据格式的转换。数据格式转换装置将步骤S401确定到的首个转换关系序列输入转换关系序列,得到包括首个转换关系的转换关系序列。
可以理解的,本申请实施例提供的上述数据格式转换方法中,预先根据数据格式以及预设转换关系,生成转换关系拓扑,在数据格式转换装置确定首个转换关系的第一数据格式为初始数据格式,第二数据格式为目标数据格式,则确定转换关系序列中仅包括该首个转换关系,避免数据格式转换装置进行无效的数据关系确定。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对用户设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图14为本申请实施例提供的一种数据格式转换装置的结构示意图。该数据格式转换装置用于执行上述数据格式转换方法。如图14所示,该数据格式转换装置50包括获取单元501、确定单元502以及处理单元503。
获取单元501,用于获取用户输入的地理数据。例如,如图10所示,获取单元501可以用于执行S201。
确定单元502,用于并确定地理数据的初始数据格式和目标数据格式;初始数据格式与目标数据格式不同。例如,如图10所示,确定单元502可以用于执行S202。
确定单元502,还用于基于初始数据格式以及目标数据格式,确定转换关系序列;转换关系序列包括至少一个转换关系,转换关系用于指示从第一数据格式转换为第二数据格式;转换关系序列中首个转换关系的第一数据格式为初始数据格式,转换关系序列中最后一个转换关系的第二数据格式为目标数据格式。例如,如图10所示,确定单元502可以用于执行S203。
处理单元503,用于根据转换关系序列,将地理数据的数据格式从初始数据格式转换为目标数据格式。例如,如图10所示,处理单元503可以用于执行S204。
可选的,如图14所示,本申请实施例提供的数据格式转换装置50中,确定单元502,还用于根据初始数据格式,从转换关系拓扑中确定首个转换关系;转换关系拓扑包括多个数据格式和多个数据格式中相邻两个数据格式对应的转换关系。例如,如图11所示,确定单元502可以用于执行S301。
确定单元502,还用于在首个转换关系的第二数据格式不为目标数据格式的情况下,根据目标数据格式,从转换关系拓扑中确定最后一个转换关系。例如,如图11所示,确定单元502可以用于执行S302-S303。
确定单元502,还用于根据首个转换关系和最后一个转换关系,从转换关系拓扑中确定转换关系序列。例如,如图11所示,确定单元502可以用于执行S304。
可选的,如图14所示,本申请实施例提供的数据格式转换装置50中,确定单元502,还用于根据初始数据格式,从转换关系拓扑中确定首个转换关系。例如,如图13所示,确定单元502可以用于执行S401。
确定单元502,还用于在首个转换关系的第二数据格式为目标数据格式的情况下,确定转换关系序列,转换关系序列包括首个转换关系。例如,如图13所示,确定单元502可以用于执行S402-S403。
可选的,如图14所示,本申请实施例提供的数据格式转换装置50中,处理单元503,还用于根据初始数据格式的地理数据,以及转换关系序列包括的至少两个转换关系的顺序,依次切换地理数据的数据格式,直至地理数据的数据格式为目标数据格式。
在采用硬件的形式实现上述集成的模块的功能的情况下,本申请实施例提供了一种数据格式转换设备的一种可能的结构示意图。该数据格式转换设备用于执行上述实施例中数据格式转换装置执行的数据格式转换方法。如图15所示,该数据格式转换设备60包括处理器601,存储器602以及总线603。处理器601与存储器602之间可以通过总线603连接。
处理器601是数据格式转换设备的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器601可以是一个通用中央处理单元(central processingunit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一种实施例,处理器601可以包括一个或多个CPU,例如图15中所示的CPU 0和CPU 1。
存储器602可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
作为一种可能的实现方式,存储器602可以独立于处理器601存在,存储器602可以通过总线603与处理器601相连接,用于存储指令或者程序代码。处理器601调用并执行存储器602中存储的指令或程序代码时,能够实现本申请实施例提供的数据格式转换方法。
另一种可能的实现方式中,存储器602也可以和处理器601集成在一起。
总线603,可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外围设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图15示出的结构并不构成对该数据格式转换设备60的限定。除图15所示部件之外,该数据格式转换设备60可以包括比图15示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
作为一个示例,结合图14,数据格式转换装置50中的获取单元501、确定单元502以及处理单元503实现的功能与图15中的处理器601的功能相同。
可选的,如图15所示,本申请实施例提供的数据格式转换设备还可以包括通信接口604。
通信接口604,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。通信接口604可以包括用于接收数据的获取单元,以及用于发送数据的发送单元。
在一种设计中,本申请实施例提供的数据格式转换设备中,通信接口还可以集成在处理器中。
图16示出了本申请实施例中数据格式转换设备的另一种硬件结构。如图16所示,数据格式转换设备70可以包括处理器701以及通信接口702。处理器701与通信接口702耦合。
处理器701的功能可以参考上述处理器601的描述。此外,处理器701还具备存储功能,可以参考上述存储器602的功能。
通信接口702用于为处理器701提供数据。该通信接口702可以是数据格式转换设备的内部接口,也可以是数据格式转换设备对外的接口(相当于通信接口604)。
需要指出的是,图16中示出的结构并不构成对数据格式转换设备的限定,除图16所示部件之外,该数据格式转换设备70可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明。在实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述方法实施例所示的方法流程中的各个步骤。
本申请的实施例提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行上述方法实施例中的数据格式转换方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘。随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的人以合适的组合、或者本领域数值的任何其他形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
由于本申请的实施例中的装置、设备计算机可读存储介质、计算机程序产品可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本申请实施例在此不再赘述。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。