基于标准地图服务的出图方法及装置与流程

文档序号:15390023发布日期:2018-09-08 01:01阅读:590来源:国知局

本发明涉及图片合成技术领域,尤其涉及基于标准地图服务的出图方法及装置。



背景技术:

gis即地理信息系统(geographicinformationsystem,简称gis)一张图系统是一种基于基础空间数据和各类专业空间数据的综合管理和应用系统,其通过对各类数据的叠加展示、查询、统计和分析等来实现空间、属性的联动展示和管理。gis一张图系统基于轻量级浏览器浏览器访问,但在空间gis数据的管理上存在劣势,例如,输入输出功能中的gis数据输出,因为在浏览器直接操作gis数据、文件以及io(input/output)等操作交互存在限制。

但gis一张图系统在客户直接使用过程中,如果想要针对关键地图位置的数据进行打印出图,例如,将一张gis图片1:500比例尺下某个地块范围的用地红线叠加在数字线划图上,之后输出成标准图片并进行打印或者汇报等。目前,一张完整的标准输出图片的合成方法主要包括以下几种形式:

1.在一张图系统上进行缩放,之后,在不同的缩放比例形成的图片上用截图工具截取成图片,再通过ps等工具合成为一张标准输出图片。

2.通过arcgis等专业gis工具,先将gis图片相应的图层叠加渲染制作成mxd格式的文件,之后通过导出图幅功能,将指定范围的数据导出成图,再通过ps工具添加上图例等,形成标准输出图片。

3.通过cad文件裁剪输出范围的矢量数据,手动添加上图框、图例和标题,再将cad缩放到指定图层级别,之后,通过cad导出标准输出图片。

可见,上述标准输出图片的合成过程非常繁琐,需要用户在浏览器手动操作费时费力。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供了基于标准地图服务的出图方法及装置,通过设置服务器等,提高了标准输出图片的合成的便捷性。

第一方面,本发明实施例提供了基于标准地图服务的出图方法,包括:

服务器获取gis图片的当前精度;

所述服务器按照所述gis图片的切片方式的不同获取多个不同的图层精度;

所述服务器根据当前精度逐个对每个所述图层精度对应的所述gis图片执行融合操作,每次融合操作得到一个输出图片,直到所有的所述图层精度对应的所述gis图片都完成融合操作;

所述服务器将多个所述输出图片组合成标准输出图片,并将所述标准输出图片返回给浏览器。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述服务器根据当前精度逐个对每个所述图层精度对应的所述gis图片执行融合操作,每次融合操作得到一个输出图片,直到所有的所述图层精度对应的所述gis图片都完成融合操作,包括:

所述融合操作的步骤如下:

所述服务器计算所述当前精度和所述图层精度的差值;

所述服务器根据所述差值判定所述图层精度对应的所述gis图片的图层级别;

所述服务器获取所述图层级别对应的行列矩阵,且,用所述行列矩阵将所述图层级别对应的所述gis图片分成多个单图;

所述服务器将所述多个单图融合成所述输出图片。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述服务器获取gis图片的当前精度,包括:

所述服务器接收浏览器发送的坐标值和像素值,其中,所述坐标值和所述像素值均是所述浏览器在接收到外部输出触发时根据当前的所述gis图片计算的;

所述服务器计算所述坐标值和所述像素值的比值,且,将所述比值记作所述当前精度。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述服务器根据所述差值判定所述图层精度对应的所述gis图片的图层级别,包括:

所述服务器提取所有切片方式下所述gis图片对应的所述图层精度的最大值,且,在0与所述最大值之间划分多个阈值区间;

所述服务器为每个所述阈值区间设置一个所述图层级别;

所述服务器查找所述差值对应的所述阈值区间,且,判定所述阈值区间对应的所述图层级别为所述gis图片对应的所述图层级别。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述服务器获取所述图层级别对应的行列矩阵,且,用所述行列矩阵将所述图层级别对应的所述gis图片分成多个单图,包括:

所述服务器获取所述图层级别对应的所述gis图片的原点x坐标x1、原点y坐标y1、左下角x坐标x2、左下角y坐标y2、右上角x坐标x3、右上角y坐标y3、图片像素z;

所述服务器计算左下角的行号l1=floor((y2-y1)/(z*s)),其中,s表示所述图层级别对应的图层精度;

所述服务器计算左下角的列号l2=floor((x2-x1)/(z*s)),其中,s表示所述图层级别对应的图层精度;

所述服务器计算右上角的行号l3=floor((y3-y1)/(z*s)),其中,s表示所述图层级别对应的图层精度;

所述服务器计算右上角的列号l4=floor((x3-x1)/(z*s)),其中,s表示所述图层级别对应的图层精度;

所述服务器获取所述行列矩阵l=(l3-l1,l4-l2);

所述服务器根据所述行列矩阵l将所述gis图片分成(l3-l1)*(l4-l2)个单图。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述服务器将所述多个单图融合成所述输出图片,包括:

所述服务器提取所述行列矩阵中的坐标;

所述服务器将位于相同坐标上的所述多个单图进行融合,得到所述输出图片。

结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述服务器将多个所述输出图片组合成标准输出图片,并将所述标准输出图片返回给浏览器,包括:

所述服务器根据标准地图服务为所述输出图片叠加图例;

所述服务器为叠加图例后的所述输出图片添加图框,得到所述标准输出图片;

所述服务器将所述标准输出图片返回给所述浏览器。

第二方面,本发明实施例提供了基于标准地图服务的出图装置,包括:

当前精度获取模块,用于服务器获取gis图片的当前精度;

图层精度获取模块,用于所述服务器按照所述gis图片的切片方式的不同获取多个不同的图层精度;

融合操作模块,用于所述服务器根据当前精度逐个对每个所述图层精度对应的所述gis图片执行融合操作,每次融合操作得到一个输出图片,直到所有的所述图层精度对应的所述gis图片都完成融合操作;

图片合成模块,用于所述服务器将多个所述输出图片组合成标准输出图片,并将所述标准输出图片返回给浏览器。

第三方面,本发明实施例还提供一种终端,包括存储器以及处理器,存储器用于存储支持处理器执行上述方面提供的基于标准地图服务的出图方法的程序,处理器被配置为用于执行存储器中存储的程序。

第四方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述任一项的方法的步骤。

本发明实施例提供的基于标准地图服务的出图方法及装置,其中,该基于标准地图服务的出图方法包括:首先,服务器获取gis图片的当前精度,即当前切片方式下的gis图片的当前精度,然后,服务器按照gis图片的切片方式的不同获取多个不同的图层精度,其次,服务器根据当前精度逐个对每个图层精度对应的gis图片执行融合操作,每次融合操作得到一个输出图片,遍历上述操作后能够得到多个输出图片,这样,直到所有的图层精度对应的gis图片都完成融合操作,之后,服务器将多个输出图片组合成标准输出图片,并将标准输出图片返回给浏览器,通过上述服务器的自动执行过程,能够将gis图片按照不同的图层精度逐个进行融合操作,进而组合成标准输出图片,并将标准输出图片返回给浏览器查看,与现有技术相比,该基于标准地图服务的出图方法无需人们在浏览器中手动对gis图片进行处理,方便快捷。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例所提供的基于标准地图服务的出图方法的流程图;

图2示出了本发明实施例所提供的基于标准地图服务的出图方法中步骤s101的子流程图;

图3示出了本发明实施例所提供的基于标准地图服务的出图方法中步骤s103的子流程图;

图4示出了本发明实施例所提供的基于标准地图服务的出图方法中步骤s104的子流程图;

图5示出了本发明实施例所提供的基于标准地图服务的出图装置的结构连接图。

图标:1-当前精度获取模块;2-图层精度获取模块;3-融合操作模块;4-图片合成模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

gis一张图系统是具备输入输出功能的系统,在目前的使用过程中,人们想要利用上述gis一张图系统,需要在浏览器端进行手动操作。现有的操作方法主要包括以下几种形式:1.在一张图系统上进行缩放,之后,在不同的缩放比例形成的图片上用截图工具截取成图片,再通过ps等工具合成为一张标准输出图片。2.通过arcgis等专业gis工具,先将相应的图层叠加渲染制作成mxd文件,之后通过导出图幅功能,将指定范围的数据导出成图,再通过ps工具添加上图例等,形成标准输出图片。3.通过cad文件裁剪输出范围的矢量数据,手动添加上图框、图例和标题,再将cad缩放到指定图层级别,之后,通过cad导出标准输出图片。可见,目前关于标准输出图片的合成过程非常繁琐。

基于此,本发明实施例提供了基于标准地图服务的出图方法及装置,下面通过实施例进行描述。

实施例1

参见图1、图2、图3和图4,本实施例提出的基于标准地图服务的出图方法具体包括以下步骤:

步骤s101:服务器获取gis图片的当前精度。

首先,介绍下gis一张图系统中对外展示的gis图片,通常,在gis一张图系统中gis图片是立体的,当人们想要查看不同角度的gis图片时,可通过旋转上述gis图片,来获取自己想要的视角的gis图片。并且,gis图片还可以根据切片方案定义的图层、级别、精度关系来获取不同级别(即不同缩放比例)的gis图片,例如,1:200的某县地图和1:500的某县地图。

下面对上述步骤s101进行详细说明:

步骤s1011:服务器接收浏览器发送的坐标值和像素值,其中,坐标值和像素值均是浏览器在接收到外部输出触发时根据当前的gis图片计算的。

当人们想要获取当前浏览器中展示的gis图片的当前精度时,先是向浏览器发送外部输出触发,这样,之后是浏览器在接收到外部输出触发后,计算当前的gis图片的坐标值和像素值,并将计算得出的坐标值和像素值发送给服务器。

步骤s1012:服务器计算坐标值和像素值的比值,且,将比值记作当前精度。

由于,坐标值的大小表示一张gis图片所包含的范围,像素值的大小表示一张gis图片的清晰程度,因此,为了有效衡量一张gis图片的属性,服务器在接收到上述坐标值和像素值后计算坐标值和像素值的比值,并将上述计算得出的比值作为当前精度。

步骤s102:服务器按照gis图片的切片方式的不同获取多个不同的图层精度。

服务器按照gis图片的切片方案来获取不同的图层级别和精度,切片方案中会定义一个切片图层,分成多少个级别(比例尺),每个级别会定义精度或者分辨率,还会定义切片原点、和切片范围等信息。一般的gis一张图系统底图切片方案会定义18个级别,级别越大比例尺越小。

在gis图片的处理过程中,通常会对gis图片进行切片处理,即选定不同的切片原点、切片分辨率和初始切片范围等参数后,获取不同的gis图片。相应的,在gis一张图系统中,服务器中预先存储有进行了不同切片处理后的gis图片。在本实施例中,为了准确获取到gis图片的图层精度,需要在服务器中查找不同切片方式对应的gis图片的不同的图层精度,以全面有效的获取gis图片的所有图层精度。

步骤s103:服务器根据当前精度逐个对每个图层精度对应的gis图片执行融合操作,每次融合操作得到一个输出图片,直到所有的图层精度对应的gis图片都完成融合操作。

通过以上描述可知,一张gis图片的同一个点会在不同图层精度下对应不同的图片内容,为了完整有效的考量gis图片中的每一个点在不同维度上的具体内容。服务器逐个对每个图层精度对应的gis图片执行融合操作,每次融合操作得到一个输出图片,直到所有的图层精度对应的gis图片都完成融合操作为止。

下面对上述融合操作的步骤具体描述如下:

步骤s1031:服务器计算当前精度和图层精度的差值。

通过以上描述可知,gis图片的图层精度有多个。在本实施例中,以当前精度为基准,即以当前切片方式下的gis图片的当前精度为基准来逐个与各个图层精度进行比对,以此来考量gis图片的各个图层精度情况。

具体实施时,针对每个图层精度的gis图片,服务器计算当前精度和图层精度的差值。即通过上述差值的大小(相对值)来表征gis图片的各个图层精度之间的差异。

步骤s1032:服务器根据差值判定图层精度对应的gis图片的图层级别。具体实施时包括:

(1)服务器提取所有gis图片对应的图层精度的最大值,具体实施时,先是服务器获取所有gis图片的对应的图层精度,例如,获取到的图层精度分别为a、b、c…t,其中,t为最大值,那么,服务器从中提取t作为所有gis图片对应的图层精度的最大值。并且,在0与最大值t之间划分为多个阈值区间,划分后的阈值区间的具体个数可根据使用场景进行灵活设定。

(2)服务器为每个阈值区间设置一个图层级别,由于,阈值区间是一个连续的范围值,为了对每一个阈值区间进行量化,服务器为每个阈值区间设置一个图层级别,以作为后续图层精度比较的参考。

(3)服务器查找差值对应的阈值区间,且,判定图层精度对应的gis图片的图层级别为阈值区间对应的图层级别。这样,当服务器计算出了多个差值后,通过差值对应的阈值区间来确定图层级别,从而将得到的多个连续的阈值区间离散化。

步骤s1033:服务器获取图层级别对应的行列矩阵,且,用行列矩阵将图层级别对应的gis图片分成多个单图。为了将不同图层级别对应的gis图片处理成多个单图,在本实施例中,以每个图层级别对应一个行列矩阵来实现,为了有效表示出gis图片对应的行列矩阵的大小,具体实施时包括:

(1)服务器获取图层级别对应的gis图片的原点x坐标x1、原点y坐标y1、左下角x坐标x2、左下角y坐标y2、右上角x坐标x3、右上角y坐标y3、图片像素z。

(2)服务器计算左下角的行号l1=floor((y2-y1)/(z*s)),其中,s表示图层级别对应的图层精度。其中,floor函数的基础函数实现如下:

(3)服务器计算左下角的列号l2=floor((x2-x1)/(z*s)),其中,s表示图层级别对应的图层精度。

通过上述左下角的行号和列号的计算来表征行列矩阵的最小值。

(4)服务器计算右上角的行号l3=floor((y3-y1)/(z*s)),其中,s表示图层级别对应的图层精度。

(5)服务器计算右上角的列号l4=floor((x3-x1)/(z*s)),其中,s表示图层级别对应的图层精度。

通过上述右上角的行号和列号的计算来表征行列矩阵的最大值。

(6)服务器获取行列矩阵l=(l3-l1,l4-l2)。

(7)服务器根据行列矩阵l将gis图片分成(l3-l1)*(l4-l2)个单图。

通过上述最大值和最小值差值的计算来表征整个行列矩阵的大小。并通过得到的行列矩阵的每个坐标点来将每个图层级别对应的gis图片分成多个单图。

步骤s1034:服务器将多个单图融合成输出图片。具体实施时包括:

(1)服务器提取行列矩阵中的坐标,即获取到上述行列矩阵后,服务器在上述行列矩阵中提取坐标。

(2)当获取到上述坐标后,服务器将相同坐标上的多个单图进行融合,即将每个图层精度对应的相同坐标上的多个单图进行叠加,得到输出图片,这样,输出图片在每个切片方式下都有至少一个融合的输出图片对应,从而保障了输出图片的空间完整性。

步骤s104:服务器将多个输出图片组合成标准输出图片,并将标准输出图片返回给浏览器。下面对上述操作具体说明:

步骤s1041:服务器根据标准地图服务为输出图片叠加图例,这里需要进行说明的是,标准地图服务是国家测绘地理信息局地理信息与地图司组织研发的新版标准地图在线服务系统,在该在线服务系统中规定了多种标准,包括图例。为了便于人们对地图进行查看,服务器根据标准地图服务为输出图片叠加图例,图例的具体放置位置和大小等可根据使用场景等进行灵活设定。

步骤s1042:为了进一步保证图片的完整性,服务器为叠加图例后的输出图片添加图框,得到标准输出图片,这里需要进行说明的是,上述图框可以是服务器中预先存储的标准图框,或者是,人们通过浏览器自行绘制的个性图框等。

步骤s1043:服务器将标准输出图片返回给浏览器,即在经过上述处理过程后,服务器端通过自动运行得到了标准输出图片,并将标准输出图片发送给浏览器,以供人们查看。

综上所述,本实施例提供的基于标准地图服务的出图方法包括:首先,服务器获取gis图片的当前精度,即gis图片当前的切片方式下的图层精度,然后,服务器按照gis图片的切片方式的不同获取多个不同的图层精度,其次,服务器根据当前精度逐个对每个图层精度对应的gis图片执行融合操作,每次融合操作得到一个输出图片,直到所有的图层精度对应的gis图片都完成融合操作为止,之后,服务器将多个输出图片组合成标准输出图片,即为输出图片添加上图例、图框等,并将标准输出图片返回给浏览器,通过上述处理,省去了人们自己在浏览器进行图片缩放、裁剪等的步骤,从而能够将服务器自行处理好的标准输出图片直接发送给人们进行查看,方便快捷。

实施例2

参见图5,本实施例提供了基于标准地图服务的出图装置包括:

当前精度获取模块1,用于服务器获取gis图片的当前精度。

图层精度获取模块2,用于服务器按照gis图片的切片方式的不同获取多个不同的图层精度。

融合操作模块3,用于服务器根据当前精度逐个对每个图层精度对应的gis图片执行融合操作,每次融合操作得到一个输出图片,直到所有的图层精度对应的gis图片都完成融合操作。

图片合成模块4,用于服务器将多个输出图片组合成标准输出图片,并将标准输出图片返回给浏览器。

本发明实施例提供的基于标准地图服务的出图装置,与上述实施例提供的基于标准地图服务的出图方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本发明实施例还提供了一种终端,包括存储器以及处理器,存储器用于存储支持处理器执行上述实施例方法的程序,处理器被配置为用于执行存储器中存储的程序。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述任一项的方法的步骤。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本发明实施例所提供的基于标准地图服务的出图方法及装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,也不能理解为指示或暗示相对重要性。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1