一种支持动态投影转换的瓦片地图发布方法及装置
技术领域
本发明涉及地图技术领域,尤其涉及一种支持动态投影转换的瓦片地图发布方法及装置。
背景技术
在将不同空间参考系遥感影像文件发布为切片地图服务时,需要经历两个必要过程分别为文件重投影和切片。文件重投影即将不同空间参考系文件进行投影转换,转换为同一种空间坐标系类型,通常1TB遥感影像文件夹经过重投影操作会产生大于1TB的重投影后文件。切片即将重投影后输出文件,按照指定比例尺,层级,图片格式和光谱映射关系进行切片操作,将大的遥感影像数据文件切成256*256像素大小的瓦片地图文件,1TB 0.5米分辨率的遥感影像数据切到18级会产生0.35TB jpg格式切片数据或者1.35TB png格式切片数据。
发明人对现有的支持动态投影转换的瓦片地图发布方法进行研究发现,在遥感影像发布为瓦片地图的过程中,将全部遥感影像数据投影转换和切片过程会耗费大量时间与存储空间,严重影响遥感影像瓦片地图服务的发布效率。
发明内容
有鉴于此,本发明提供了一种支持动态投影转换的瓦片地图发布方法及装置,用以解决现有技术中在遥感影像发布为瓦片地图的过程中,将全部遥感影像数据投影转换和切片过程会耗费大量时间与存储空间,严重影响遥感影像瓦片地图服务的发布效率的问题。具体方案如下:
一种支持动态投影转换的瓦片地图发布方法,包括:
在检测到用户浏览目标区域内的目标瓦片时,计算所述目标瓦片的目标空间范围;
依据所述目标空间范围与浏览的服务,在采用预设方法生成的遥感数据库中获取与所述目标空间范围匹配的第一目标遥感数据;
判断所述第一目标遥感数据的空间坐标系与目标空间坐标系是否相同;
若否,将所述第一目标遥感数据的空间坐标系转换为目标空间坐标系,得到第二目标遥感数据;
将所述第二目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中。
上述的方法,可选的,还包括:
若是,将所述第一目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中。
上述的方法,可选的,采用预设方法生成的遥感数据库,包括:
获取所述目标区域的遥感数据,将所述遥感数据划分成各个目标图层;
将所述各个目标图层录入所述遥感数据库的目标服务中;
更新所述遥感数据库中目标服务的空间信息边界。
上述的方法,可选的,获取所述目标区域的遥感数据,将所述遥感数据划分成各个目标图层,包括:
解析所述目标区域的遥感数据,确定所述遥感数据包含的各个图层;
获取每一个图层的空间坐标系和其中每一个遥感数据的遥感空间坐标系;
将每一个图层中与图层空间坐标系不同的遥感空间坐标系对应的遥感数据删除,得到目标图层。
上述的方法,可选的,依据所述目标空间范围与浏览的服务,在采用预设方法生成的遥感数据库中获取与所述目标空间范围匹配的第一目标遥感数据,包括:
获取所述遥感数据库中所述服务的各个遥感数据的空间范围;
将所述目标空间范围与各个空间范围进行比较;
将所述各个空间范围中与所述目标空间范围的交集对应的遥感数据作为第一目标遥感数据。
上述的方法,可选的,将所述第二目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中包括:
获取所述目标瓦片的基本信息和文件列表,其中,所述文件列表中包括与所述目标瓦片对应的目标遥感数据,所述基本信息包括:空间范围,瓦片长宽和光谱对应关系;
遍历所述文件列表,依据所述基本信息对所述遥感数据的进行区域裁剪,得到中间数据;
获取所述中间数据的空间范围;
依据所述空间范围,将所述中间数据填充到所述目标区域中。
上述的方法,可选的,还包括
判断所述目标区域是否填充完整;
若是,获取所述目标瓦片的浏览格式;
依据所述浏览格式对所述中间数据进行压缩。
一种支持动态投影转换的瓦片地图发布装置,包括:
计算模块,用于在检测到用户浏览目标区域内的目标瓦片时,计算所述目标瓦片的目标空间范围;
获取模块,用于依据所述目标空间范围与浏览的服务,在采用预设方法生成的遥感数据库中获取与所述目标空间范围匹配的第一目标遥感数据;
判断模块,用于判断所述第一目标遥感数据的空间坐标系与目标空间坐标系是否相同;
转换模块,用于若否,将所述第一目标遥感数据的空间坐标系转换为目标空间坐标系,得到第二目标遥感数据;
切分填充模块,用于将所述第二目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中。
上述的装置,可选的,所述获取模块包括:
第一获取单元,用于获取所述遥感数据库中所述服务的各个遥感数据的空间范围;
比较单元,用于将所述目标空间范围与各个空间范围进行比较;
确定单元,用于将所述各个空间范围中与所述目标空间范围的交集对应的遥感数据作为第一目标遥感数据。
上述的装置,可选的,所述切分填充模块包括:
第二获取单元,用于获取所述目标瓦片的基本信息和文件列表,其中,所述文件列表中包括与所述目标瓦片对应的目标遥感数据,所述基本信息包括:空间范围,瓦片长宽和光谱对应关系;
裁剪单元,依据所述基本信息对所述文件列表进行区域裁剪,得到中间数据;
第三获取单元,用于获取所述中间数据的空间范围;
填充单元,用于依据所述空间范围将所述中间数据填充到所述目标区域中。
与现有技术相比,本发明包括以下优点:
本发明公开了一种支持动态投影转换的瓦片地图发布方法,包括:在用户浏览目标区域内的目标瓦片时,计算目标瓦片的目标空间范围;依据目标空间范围,在遥感数据库中获取与目标空间范围匹配的第一目标遥感数据;判断第一目标遥感数据的空间坐标系与目标空间坐标系是否相同;若否,将第一目标遥感数据的空间坐标系转换为目标空间坐标系,得到第二目标遥感数据,将第二目标遥感数据切分成中间数据,将中间数据填充到目标瓦片中。上述方法中,只有在用户浏览到目标瓦片时,才会对目标瓦片对应的遥感数据包进行空间坐标转换和数据切片,不需要预先对目标区域的全部遥感数据进行处理,产生的瓦片文件数量少,节省人力、时间和存储空间,提高了发布效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种支持动态投影转换的瓦片地图发布方法流程图;
图2为本发明实施例公开的一种服务的示意图;
图3为本发明实施例公开的一种支持动态投影转换的瓦片地图发布方法又一流程图;
图4为本发明实施例公开的一种支持动态投影转换的瓦片地图发布方法又一流程图;
图5为本发明提供的一种黑白名单的匹配装置结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种支持动态投影转换的瓦片地图发布方法,应用在遥感影像发布为瓦片地图的过程中,其中,瓦片地图是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。在将不同空间参考系遥感影像文件发布为切片地图服务时,需要经历两个必要过程分别为文件重投影和切片。文件重投影即将不同空间参考系文件进行投影转换,转换为同一种空间坐标系类型之后再进行切片,转换和切片过程会耗费大量时间与存储空间,严重影响遥感影像瓦片地图服务的发布效率。本发明提供了一种支持动态投影转换的瓦片地图发布方法,用以解决上述问题,所述发布方法的执行流程如图1所示,包括步骤:
S101、在检测到用户浏览目标区域内的目标瓦片时,计算所述目标瓦片的目标空间范围;
本发明实施例中,所述目标区域为当前用户正在浏览的区域,其中,所述目标区域中包含多个瓦片,所述目标瓦片为所述多个瓦片中需要进行瓦片地图发布的瓦片,所述目标瓦片可以有多个,所述发布方法以目标瓦片为对一个进行说明,在户浏览目标区域内的目标瓦片时,会产生访问请求,所述访问请求中包含的图层、访问层级、比例尺、瓦片长宽、瓦片行列号、光谱信息获取RGB与遥感光谱的对应的关系。所述访问请求中的参数依据开放地理空间信息联盟OGC(Open GeospatialConsortium)预先进行分配。
获取所述访问请求中的访问层级、比例尺和瓦片行列号,依据OGC中的地图切片服务WMTS(Web Map Tile Service)通过所述访问层级、所述比例尺和所述瓦片行列号计算所述目标瓦片的目标空间范围。所述目标空间范围与所述目标瓦片存在对应关系,若所述目标瓦片为多个,则所述目标空间范围也为多个。
S102、依据所述目标空间范围与浏览的服务,在采用预设方法生成的遥感数据库中获取与所述目标空间范围匹配的第一目标遥感数据;
本发明实施例中,依据所述目标空间范围与浏览的服务,在所述遥感数据库中查找所述遥感数据库中所述服务对应的各个空间中是否存在与所述目标空间范围相同的第一目标遥感数据,若存在,获取所述第一目标遥感数据,其中,当所述目标瓦片为多个时,所述第一遥感数据可以为多个。反之,将所述目标空间范围进行默认填充,其中,所述默认填充可以是全黑,全白或者其它优选的填充方式。
S103、判断所述第一目标遥感数据的空间坐标系与目标空间坐标系是否相同;
本发明实施例中,所述目标空间坐标系为与所述第一目标遥感数据对应的服务中规定的空间坐标系,其中,所述服务存储于所述遥感数据库中,在所述遥感数据库中为服务分配ID编号。所述服务中包含多个图层,其中,服务与图层之间的关系如图2所示,服务中包含图层列表,图层列表中的每一个图层下可以包含多个父文件夹,每一个父文件夹下还可以包含子文件夹,每一个图层中的遥感数据的空间坐标系相同,所述服务中对应一个目标空间坐标系,其中,所述服务中的目标空间坐标系与所述服务中包含的各个图层的空间坐标系可以相同也可以不同。将所述第一目标遥感数据的空间坐标系与所述目标空间坐标系进行比较,判断所述空间坐标系与目标空间坐标系是否相同。
进一步的,当所述第一目标遥感数据为多个时,上述的判断过程中,可以是空间坐标系与目标坐标系全部相同,全部不同和部分相同几种情况。
S104、将所述第一目标遥感数据的空间坐标系转换为目标空间坐标系,得到第二目标遥感数据;
本发明实施例中,若所述目标空间坐标系与所述第一目标遥感数据的空间坐标系不同时,将所述第一目标遥感数据的空间坐标系转换为所述目标空间坐标系。
S105、将所述第二目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中;
本发明实施例中,获取所述目标瓦片的基本信息和文件列表,其中,所述文件列表中包括与所述目标瓦片对应的目标遥感数据,所述基本信息包括:空间范围,瓦片长宽和光谱对应关系,其中,所述基本信息时依据OGC进行分配的,所述文件列表是通过在所述遥感数据库中查找与所述目标空间范围匹配的目标遥感数据获得的,所述文件列表中的目标遥感数据可以为多个。遍历所述文件列表,依据所述基本信息中的空间范围、瓦片长宽和光谱对应关系对所述第一遥感数据的进行区域裁剪,得到中间数据。
其中,在切分过程中加入了对光谱对应关系的处理,可以实现支持不同光谱映射的浏览,如多光谱影像包含4个光谱信息:红、绿、蓝、近红,假设切片过程设定的输出光谱为近红、绿、蓝则输出瓦片地图则不再包含红波信息。
进一步的,获取所述中间数据的空间范围,依据所述空间范围,将所述中间数据填充到所述目标区域中对应的目标瓦片中。针对同一个空间范围,可能包含多个中间数据,比如说不同时间的中间数据,优选的,在进行填充时,最新时刻的中间数据进行填充,为了避免最新填充的中间数据不会被覆盖,在每次填充之前,可以判断所述目标区域是否填充完整,若是,获取所述目标瓦片的浏览格式,依据所述浏览格式对所述中间数据进行压缩。其中,所述浏览格式支持png、jpg或者其它优选的浏览格式,反之,获取所述中间数据相邻的下一个中间数据进行判断,直至所述多个中间数据判断完成。
S106、将所述第一目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中。
本发明实施例中,若所述目标空间坐标系与所述第一目标遥感数据的空间坐标系相同时,将所述第一目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中。
本发明公开了一种支持动态投影转换的瓦片地图发布方法,包括:在用户浏览目标区域内的目标瓦片时,计算目标瓦片的目标空间范围;依据目标空间范围,在遥感数据库中获取与目标空间范围匹配的第一目标遥感数据;判断第一目标遥感数据的空间坐标系与目标空间坐标系是否相同;若否,将第一目标遥感数据的空间坐标系转换为目标空间坐标系,得到第二目标遥感数据,将第二目标遥感数据切分成中间数据,将中间数据填充到目标瓦片中。上述方法中,只有在用户浏览到目标瓦片时,才会对目标瓦片对应的遥感数据包进行空间坐标转换和数据切片,不需要预先对目标区域的全部遥感数据进行处理,产生的瓦片文件数量少,节省人力、时间和存储空间,提高了发布效率。
本发明实施例中,所述遥感数据库是采用预设方法生成的,生成所述遥感数据库的流程如图3所示,包括步骤:
S201、获取所述目标区域的遥感数据,将所述遥感数据划分成各个目标图层;
本发明实施例中,解析所述目标区域的遥感数据,获取其存储路径,在所述存储路径下,可以依据所述遥感数据存储的文件夹或者空间范围对所述遥感数据划分为多个图层,优选的,可以遍历每一个图层中的所有遥感数据,将其整理为一个文件列表,其中,所述文件列表中包含有遥感数据的文件路径、空间信息、空间范围和光谱信息信。
S202、将所述各个目标图层录入所述遥感数据库的目标服务中;
本发明实施例中,所述目标服务为与所述目标区域对应的服务,获取每一个图层的图层空间坐标系和其中每一个遥感数据的遥感空间坐标系,针对每一个图层,将所述目标空间坐标系与其中的每一个遥感数据的空间坐标系进行比较,当其中存在于所述空间坐标系不同的遥感数据时,将其删除,将其余遥感数据的基本信息和图层录入所述遥感数据库的目标服务中,其中,所述基本信息包括:空间范围,瓦片长宽和光谱对应关系。其中,优选的,在录入所述遥感数据库时,为每一个图层分配图层ID,并可以依据所述空间信息建立索引。
S203、更新所述遥感数据库中目标服务的空间信息边界。
本发明实施例中,每个图层的边界转换为所述目标服务的目标空间坐标系对应的边界,并将所述目标服务的空间边界更新为其包含的各个图层集合的边界。
本发明实施例中,上述的发布方法在实际应用时是通过客户端提交访问请求,在服务器端进行处理的具体的执行过程包括步骤:
S1:发布“图层”
S11:提交发布请求:用户在客户端打开系统,设定要发布数据的信息(如图层名称、空间坐标系)以及图层文件所在的文件夹路径,并将请求发送给服务器。
S12:建立图层记录:服务器接收到请求信息后,在数据库中创建图层记录并生成编号,遍历指定文件路径下所有遥感影像文件生成文件列表。
S13:处理遥感影像文件:服务器逐个读取S12文件列表中的文件的空间坐标系及空间信息,当空间坐标系与图层空间坐标类型一致时,将文件的文件路径、空间信息、空间范围、光谱信息、图层编号录入数据库中,并根据空间信息创建索引。
S14:更新空间信息边界:服务器在文件列表遍历完成之后,用文件列表文件的空间信息边界更新图层的空间信息边界。
S15:重复S11~S14,根据空间坐标系将对应的全部遥感数据发布为不同图层。
S2:发布服务
S21:提交添加图层至服务申请:客户端登录系统按照需求创建指定空间坐标系服务,并将对应S11~S15中创建的图层全部添加到对新建创的服务中,并将请求发送给服务器。
S22:添加图层至服务:服务器接收到请求后,在数据库中创建一条服务记录并生成服务ID编号,服务器将每个图层的边界转换为服务空间坐标系对应的边界,并将服务的空间边界更新为图层集合的边界。
S23:如果多个空间坐标系服务则重复S21~S22发布对应服务。
S3:瓦片请求与处理
S31:用户提交访问请求:客户端选择要浏览的服务并向服务器端发送浏览瓦片的请求信息。
S32:计算地理空间范围:服务器在接收到用户发送的瓦片请求后,根据请求信息计算用户请求瓦片区域对应的地理空间范围。
S33:获取服务信息及图层列表:服务器根据请求服务的ID编号从数据库中读取服务信息及对应的图层列表。
S34:获取图层文件列表:服务器遍历图层列表,检索瓦片覆盖该区域的图层文件,并将图层文件组织性的放置到文件列表数组中。如下所示:
[{"名称":"图层1","结果文件":[{"name":"文件1","url":"/root/data/3857/b.tif"}]},{"名称":"图层2","结果文件":[{"name":"文件3","url":"/root/data/4326/a.tif"}]}]
S35:生成用户所需的中间数据:服务器将图层列表信息、瓦片的区域信息、请求详情打包发送给瓦片生成模块。瓦片生成模块负责完成文件动态投影转换、文件裁剪、瓦片合成及压缩生成地图瓦片并反馈给服务器调用模块。服务器调用模块负责将瓦片地图发送前端,完成请求处理。其中,瓦片生成模块的执行过程如图4所示。包括:解析获取所要生成瓦片基本信息和生瓦片所需的文件列表,获取文件列表中第i(i初始化为0)个文件,其中,每一个文件代表一个遥感数据,并用瓦片地理范围边界按照设定的光谱色彩映射进行空间坐标转换和区域裁剪,将剪裁数据按照地理位置依次填充到地图瓦片内存中,并判断瓦片是否填满?若填满,将瓦片内容按照设定格式进行压缩并返回压缩后内容,当否则执行判断文件列表是否访问完,访问完毕执行将瓦片内容按照设定格式进行压缩并返回压缩后内容。
其中,判断是否填满的目的是为了避免重复填充覆盖掉瓦片中希望显示的内容,例如,当前瓦片内已经显示了最新时刻的瓦片地图,若未进行上述判断,当前瓦片中还对应其它遥感数据时,可能会将最新时刻的瓦片地图覆盖,导致地图显示的内容存在偏差。
本发明实施例中,所述发布方法是先将遥感数据的空间坐标信息及光谱信息录入遥感数据库建立空间索引并发布为服务,用户在浏览某个瓦片地图服务的某个瓦片时,根据瓦片层级、行号、列号计算瓦片的空间范围并从数据库中检索对应空间范围内遥感影像数据,按照用户浏览请求方式,按需读取影像文件并生成瓦片地图。
基于上述的发布方法,本发明实施例中还提供了一种支持动态投影转换的瓦片地图发布装置,所述发布装置的结构框图如图5所示,包括:
计算模块301、获取模块302、判断模块303、转换模块304和切分填充模块305。
其中,
所述计算模块301,用于在检测到用户浏览目标区域内的目标瓦片时,计算所述目标瓦片的目标空间范围;
所述获取模块302,用于依据所述目标空间范围与浏览的服务,在采用预设方法生成的遥感数据库中获取与所述目标空间范围匹配的第一目标遥感数据;
所述判断模块303,用于判断所述第一目标遥感数据的空间坐标系与目标空间坐标系是否相同;
所述转换模块304,用于若否,将所述第一目标遥感数据的空间坐标系转换为目标空间坐标系,得到第二目标遥感数据;
所述切分填充模块305,用于将所述第二目标遥感数据切分成中间数据,将所述中间数据填充到所述目标瓦片中。
本发明公开了一种支持动态投影转换的瓦片地图发布装置,包括:在用户浏览目标区域内的目标瓦片时,计算目标瓦片的目标空间范围;依据目标空间范围,在遥感数据库中获取与目标空间范围匹配的第一目标遥感数据;判断第一目标遥感数据的空间坐标系与目标空间坐标系是否相同;若否,将第一目标遥感数据的空间坐标系转换为目标空间坐标系,得到第二目标遥感数据,将第二目标遥感数据切分成中间数据,将中间数据填充到目标瓦片中。上述装置中,只有在用户浏览到目标瓦片时,才会对目标瓦片对应的遥感数据包进行空间坐标转换和数据切片,不需要预先对目标区域的全部遥感数据进行处理,产生的瓦片文件数量少,节省人力、时间和存储空间,提高了发布效率。
本发明实施例中,所述获取模块302包括:
第一获取单元306、比较单元307和确定单元308。
其中,
所述第一获取单元306,用于遍历所述遥感数据库,获取所述遥感数据库中各个遥感数据的空间范围;
所述比较单元307,用于将所述目标空间范围与各个空间范围进行比较;
所述确定单元308,用于将所述各个空间范围中与所述目标空间范围相同的遥感数据作为第一目标遥感数据。
本发明实施例中,所述切分填充模块305包括:
第二获取单元309、裁剪单元310、第三获取单元311和填充单元312。
其中,
所述第二获取单元309,用于获取所述目标瓦片的基本信息和文件列表,其中,所述文件列表中包括与所述目标瓦片对应的目标遥感数据,所述基本信息包括:空间范围,瓦片长宽和光谱对应关系;
所述裁剪单元310,用于遍历所述文件列表,依据所述基本信息对所述遥感数据的进行区域裁剪,得到中间数据。
所述第三获取单元311,用于获取所述中间数据的空间范围;
所述填充单元312,用于依据所述空间范围将所述中间数据填充到所述目标区域中。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种支持动态投影转换的瓦片地图发布方法及装置进行了详细介绍,本文中应用了具体实例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。