专利名称:栅格数据的读取方法和装置,栅格数据的写入方法和装置的制作方法
技术领域:
本申请涉空间信息服务技术领域,特别是涉及一种栅格数据的读取方法,一种栅格数据的写入方法,以及,一种栅格数据的读取装置,一种栅格数据的写入装置。
背景技术:
基于栅格模型的数据结构简称为栅格数据结构,是指将空间分割成有规则的网格,成为栅格数据块,在各个栅格数据块上给出相应的属性值来表示地理实体的一种数据组织形式。栅格数据结构因为相对简单,而且空间分析和地理现象的模拟比较容易,有利于遥感数据的匹配应用和分析,输出方法快速,且成本比较低廉,因此被广泛应用于地理信息 系统(Geographic Information System, GIS)中。但是,在地理信息系统的应用中,经常需要频繁的读写处理栅格数据,而栅格数据结构的图形数据量大、冗余度高,在进行数据读写时需要耗费大量的时间,对于频繁读写来说,效率会进一步地降低。因为栅格数据结构的图形数据量大,会占用系统较多的空间,一般来说这些数据都是存储在硬盘中,当系统需要时,在从硬盘的文件中进行I/o操作来实现数据的读写,而频繁的读写,无疑会增加I/o操作的次数,占用大量系统资源,降低系统的反应速度。因此,本领域技术人员迫切需要解决的问题是提供一种栅格数据的读写机制,用以解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。
发明内容
本申请所要解决的技术问题是提供一种栅格数据的读取方法,以及,一种栅格数据的写入方法,用以解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。相应的,本申请还提供了一种栅格数据的读取装置,以及,一种栅格数据的写入装置,用以保障上述方法在实际中的应用。为了解决上述问题,本申请公开了一种栅格数据读取的方法,具体可以包括客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ;按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据;将所述标记数据进行压缩,获得压缩标记数据;将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。
优选的是,所述地理信息几何边界数据可以采用多线段图形表示;所述按照地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组的步骤可以包括子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13;子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0 ;子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;子步骤S14、将所述包含栅格块中的每个象素标记为I ;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为I ;将所述相交栅格块中与多 线段图形相离的象素标记为0 ;所述目标栅格块中标记为I的象素分别组成目标象素组,所述目标栅格块中标记为0的象素分别组成非目标象素组;子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。优选的是,所述将标记数据进行压缩,获得压缩标记数据的步骤可以包括将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括 标记数据的起始数,以及,每次变换的起始数;将转换的标记数据采用某一进制存储为压缩标记数据。优选的是,所述服务器解析压缩标记数据,提取目标栅格块及对应的目标象素组的步骤可以包括服务器解压所述压缩标记数据,获得标记数据;从标记数据中提取标记为I的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。优选的是,所述服务器根据目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端的步骤可以包括所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理0非目标栅格块及非目标象素组中的象素。本申请还提供了一种栅格数据写入的方法,具体可以包括客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ;并提交需要写入的栅格数据;按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;将所述标记数据进行压缩,获得压缩标记数据;将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。本申请同时提供了一种栅格数据读取的装置,具体可以包括
位于客户端的信息确定模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K彡1,L^1;位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据;位于客户端的发送模块,用于将所述压缩标记数据传给服 务器;位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;位于服务器的数据返回模块,用于服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。优选的是,其特征在于,所述地理信息几何边界数据可以采用多线段图形表示;所述位于客户端的标记数据生成模块可以包括位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块;非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0 ;目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为I;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为I ;将所述相交栅格块中与多线段图形相离的象素标记为0 ;所述目标栅格块中标记为I的象素分别组成目标象素组,所述目标栅格块中标记为0的象素分别组成非目标象素组;标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。优选的是,所述位于客户端的压缩标记数据生成模块可以包括标记数据转换子模块,用于将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;标记数据压缩子模块,用于将转换的标记数据采用某一进制存储为压缩标记数据。优选的是,所述位于服务器的目标象素组提取模块可以包括标记数据解析子模块,用于服务器解压所述压缩标记数据,获得标记数据;目标象素组确定子模块,用于从标记数据中提取标记为I的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。优选的是,所述位于服务器的数据返回模块可以包括目标数据返回子模块,用于所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中0的象素。本申请还提供了一种栅格数据写入的装置,具体可以包括
位于客户端的信息确定与提交模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ;并提交需要写入的栅格数据;位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据;位于客户端的发送模块;用于将所述压缩标记数据传给服务器;位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目 标栅格块及对应的目标象素组;位于服务器的数据更新模块,用于服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。与现有技术相比,本申请具有以下优点本申请通过指定范围的地理信息几何边界数据对栅格进行标记,生成包括目标象素组的标记数据;按预设的规则将标记数据压缩生成压缩标记数据,并传给服务器。并且通过对栅格进行标记,生成包括目标象素组信息的标记数据;在请求栅格数据时,服务器根据包括目标象素组信息的标记数据分辨出目标象素组进行传输;在写入栅格数据时,服务器根据包括目标象素组信息的标记数据分辨出目标象素组进行更新。因为对标记数据进行压缩后传输的是压缩标记数据,传输的速度大大提高;并且服务器只读写目标象素组的数据,对其他象素组数据不进行处理,所以解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。
图I是本申请一种栅格读取的方法实施例的流程图;图2是本申请一种栅格写入的方法实施例的流程图;图3是本申请一种栅格读取的装置实施例的结构框图;图4是本申请一种栅格写入的装置实施例的结构框图;图5是本申请的一种示例中多线段对栅格块B的标记示意图;图6是本申请的一种示例中压缩标记数据的示意图;图7是本申请的一种示例中服务器提取栅格块B中目标象素组数据的示意图。
具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。 本申请通过指定范围的地理信息几何边界数据对栅格进行标记,生成包括目标象素组的标记数据;按预设的规则将标记数据压缩生成压缩标记数据,并传给服务器。从而解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。
参照图1,示出了本申请一种栅格读取的方法实施例的流程图,具体可以包括步骤101、客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中1,L> I ;在具体实现中,栅格数据是为将空间分割成规则的网格,生成栅格数据块存储在数据服务器上,栅格包括的主要是象素块。当客户端通过网络访问服务器上的栅格数据。如,某A市的工作人员要访问到远程网络数据服务器上全国DEM栅格数据的属于A市区范围内的那部分数据。为了更精确的提供栅格数据,要用A市的地理信息几何边界数据与栅格数据配对,即用地理信息几何边界数据包括的坐标对应寻找相同坐标位置的栅格数据。步骤102、按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据; 在本申请的一种优选实施例中,所述地理信息几何边界数据采用多线段图形表示;所述步骤102具体可以包括以下子步骤子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13;子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0 ;子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;子步骤S14、将所述包含栅格块中的每个象素标记为I ;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为I ;将所述相交栅格块中与多线段图形相离的象素标记为0 ;所述目标栅格块中标记为I的象素分别组成目标象素组,所述目标栅格块中标记为0的象素分别组成非目标象素组;子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。在具体实现中,由于服务器提供的栅格数据都是方格状的,使得数据不精确。比如,需要北京市的地图数据,但是由于北京市在地图上是一个不规则的多线段图形,所以提供的数据会包括周边河北省地区的地图数据。所以采用地理信息几何边界数据和栅格数据进行配对,地理信息几何边界数据可以采用多线段图形表示,将栅格中与多线段图形相离的象素标记做0,与多线段图形非相离的象素标记做I。所有的标记按预置的顺序记录,生成标记数据。在具体实现中生成标记数据分两层处理。第一层首先要判断栅格块与多线段图形关系;只有当此栅格块与多线段图形相交时候,再往第二层次处理。因为栅格块是由多个象素组成,那就必须逐个判断其每个象素与多线段图形关系了,凡相离的象素都给标记0,否则标记I。假如,这个栅格文件数据有10000行,10000列,共I亿个象素。如果逐个的判断每个象素与多线段图形关系吧,然后再确定每个象素是用标记0,还是标记1,这样效率太低。因此,先从大点的范围开始判断,譬如,用100X 100象素大小的栅格块作为最初的判断单元。这样的话,假如这个栅格块完全在多线段图形外,则立刻判定,这10000个象素标记都为0,不用进行10000次的判断其每个象素与多线段图形关系。再假如这个栅格块完全在多线段图形内,也可以立刻知道其10000个象素标记都为I。只有这个栅格块与多线段图形部分相交时候,才去真正的判断对应栅格块中10000个象素,每个象素与多线段图形关系。采用两层判断处理方式,可以使效率更高。因此栅格是采用分成若干栅格块块方式进行处理,每个栅格块包含KXL个象素;K,L分别为> I的整数。以栅格块B为例子,首先判断栅格块B中象素与多线段图形的关系。表示操作范围的多线段图形与成四边形的栅格有以下几种关系如果栅格块B中全部象素块都包含在多线段图形内,即栅格块B中全部象素块与多线段非相离,那么,结果标记为KXL个标记“1”,标记数据为{1,1,1,...,1,1,1...,1,1,1,1... ,1,1,1,...} (KXL 个 I)。如果栅格块B中全部象素块与多线段图形相离,那么,结果标记为KXL个标记“0”,标记数据为{0,0,0, ,0,0,0, ,0,0,0,0, ,0,0,0, } (KXL 个 0)。
如果栅格块B中象素与多线段图形相交。块中相交的象素用“I”标记,象素完全在多线段图形的也用“I”标记,相交与包含都是非相离;在多线段图形外的象素用“0”标记。结果标记为 KXL 个标记“0” 或“I”,标记数据如{0,0,0, . . . ,0,0,0, . . . , 1,0,0,1, . . . ,0,0,1, ... }(一共 KXL 个)。假设以栅格块B大小为256X256象素块为例子。用多线段图形与栅格块进行划分后的结果如图5所示意。步骤103、将所述标记数据进行压缩,获得压缩标记数据;在本申请的一种优选实施例中,所述步骤103具体可以包括以下子步骤子步骤S21、将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;子步骤S22、将转换的标记数据采用某一进制存储为压缩标记数据。在具体实现中,客户端通过地理信息几何边界数据和栅格数据进行配对后,得到标记数据。将标记数据传输给服务器前,利用标记数据的特点,进行高效的压缩,以保证快速的网络传输。压缩方法对于标记数据的大量重复0或者重复I的特点,采用“当前数”+ “其后面重复出现次数”的原则。具体是用一个或者多个16位的数来保存,最高的I位保存当前标记是“I”还是“0”,剩下的低15位全用来保存“当前标记后重复出现的次数“,这样,15位数能记录重复出现次数最大为32767次,这样,一个16位的数,最多可以表达连续32767+1个“I”或者是32767+1个“O”。如图6所示记录了用2组16位数记录的连续的标记I。在具体实现中,压缩标记数据可以用某一进制转换记录,某一进制包括二进制、十进制等。如压缩标记数据后存储的数二进制表示为{1111111111111111,1111111111111111}十进制表示为{65536,65536}(如果16进制表示则为{OxFFFF,OxFFFF})。如果块的标记数据{0,接着重复20000个0,1,接着重复20000个1,0,接着重复25533个0},压缩标记数据后存储的数{0 [标记位]100111000100000 [这15位表示前一位的标记“0”后面接着重复0的次数],I [标记位]100111000100000 [这15位表示前一位的标记“I”后面接着重复I的次数],0110001110111101},十进制表示为{20000,52768,25533}。
如果块的标记数据{0,0,0,1,1,1,1,0,。}压缩标记数据后存储的数{0 [第一个0标记]00000000000000000000000000010
,1 [标记1]000000000000011 [标记I后接着重复了 3个1],. . .步骤104、将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;在本申请的一种优选实施例中,所述步骤104具体可以包括子步骤S31、服务器解压所述压缩标记数据,获得标记数据;子步骤S32、从标记数据中提取标记为I的象素块为目标象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
即服务器按照压缩方法反向操作,对所述压缩标记数据进行解压,即可获得目标象素组的信息。步骤105、服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。在本申请的一种优选实施例中,所述步骤105具体可以包括所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中0的象素块。在具体实现中,客户端获取的栅格数据,是服务器根据标记数据所指定范围,在栅格数据中提取的。并且提取数据时按照多线段图形指定的范围提取,使地理信息的边界更精确。以图5中的栅格块B为例子,服务程序传输给客户端的数据如图7所示,null表示此象素数据无效。为了方便本领域技术人员更好地理解本申请,以下结合图3至图7,通过一个完整示例更进一步说明本申请I、客户端请求栅格中的指定范围的栅格数据,指定范围的地理信息几何边界数据为一个多线段图形。2、先判断栅格中的栅格块与多线段图形的关系,若栅格块与多线段图形相离,则对应栅格块中的象素全部标记为0 ;若栅格块在多线段图形中,则对应栅格块中的象素全部标记为I ;若栅格块与多线段图形相交,则进行下面的步骤。3、将与多线段图形相交的栅格中象素的坐标和多线段图形的的坐标配对,得到栅格中象素块与多线段图形的关系为相离或非相离;将相离的象素用0标记,将非相离的象素块用I标记。将标记按预置的顺序记录,生成标记数据。4、采用“当前数”+“其后面重复出现次数”的原则,用一个或者多个16位的数(即最高的I位保存当前标记是“I”还是“0”,剩下的低15位全用来保存“当前标记后重复出现的次数“)来压缩标记数据,获得压缩标记数据。5、将压缩标记数据传输给服务器,服务器解压所述压缩标记数据,获得标记数据;将标记数据中标记为I的象素块作为目标象素组,把目标象素组中的数据返回给客户端,目标象素组中的数据就是客户端请求栅格中的指定范围的栅格数据。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。参照图2,示出了本申请一种栅格写入的方法实施例的流程图,具体可以包括步骤201、客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ;并提交需要写入的栅格数据;步骤202、按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;步骤203、将所述标记数据进行压缩,获得压缩标记数据;步骤204、将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组; 步骤205、服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。为了方便本领域技术人员更好地理解本申请,以下结合图3至图7,通过一个完整示例更进一步说明本申请I、客户端要写入数据的对象栅格,和写入数据的指定范围,指定范围的地理信息几何边界数据为一个多线段图形。客户端同时将要写入的数据传输给服务器。2、先判断栅格中的栅格块与多线段图形的关系,若栅格块与多线段图形相离,则对应栅格块中的象素全部标记为0 ;若栅格块在多线段图形中,则对应栅格块中的象素全部标记为I ;若栅格块与多线段图形相交,则进行下面的步骤。3、将与多线段图形相交栅格块中象素的坐标和多线段图形的的坐标配对,得到栅格中象素与多线段图形的关系为相离或非相离;将相离的象素用0标记,将非相离的象素用I标记。将标记按预置的顺序记录,生成标记数据。4、采用“当前数”+“其后面重复出现次数”的原则,用一个或者多个16位的数(即最高的I位保存当前标记是“I”还是“0”,剩下的低15位全用来保存“当前标记后重复出现的次数“)来压缩标记数据,获得压缩标记数据。5、将压缩标记数据传输给服务器,服务器解压所述压缩标记数据,获得标记数据;将标记数据中标记为I的象素作为目标象素组,根据客户端传输的数据,对目标象素组中的数据进行更新,目标象素组中的数据就是客户端写入数据的指定范围对应的数据。参照图3,示出了本申请一种栅格读取的装置实施例的结构框图,具体可以包括位于客户端的信息确定模块301,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K彡1,L彡I ;位于客户端的标记数据生成模块302,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;在本申请的一种优选实施例中,所述地理信息几何边界数据采用多线段图形表示;所述位于客户端的标记数据生成模块302具体可以包括以下子模块位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块;非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为O ;目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为I;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为I ;将所述相交栅格块中与多线段图形相离的象素标记为0 ;所述目标栅格块中标记为I的象素分别组成目标象素组,所述目标栅格块中标记为0的象素分别组成非目标象素组;标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
0位于客户端的压缩标记数据生成模块303,用于将所述标记数据进行压缩,获得压缩标记数据;在本申请的一种优选实施例中,所述位于客户端的压缩标记数据生成模块303具体可以包括以下子模块标记数据转换子模块,用于将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;标记数据压缩子模块,用于将转换的标记数据采用某一进制存储为压缩标记数据。位于客户端的发送模块304,用于将所述压缩标记数据传给服务器;位于服务器的目标象素组提取模块305,用于服务器解析所述压缩标记数据,提取目标象素组;在本申请的一种优选实施例中,所述位于服务器的目标象素组提取模块305具体可以包括以下子模块标记数据解析子模块,用于服务器解压所述压缩标记数据,获得标记数据;目标象素组确定子模块,用于从标记数据中提取标记为I的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。位于服务器的数据返回模块306,用于服务器根据所述目标象素组查找对应的栅格数据返回给客户端。再本申请的一种优选实施例中,所述位于服务器的数据返回模块306具体可以包括以下子模块目标数据返回子模块,用于所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中0的象素。参照图4,示出了本申请一种栅格写入的装置实施例的结构框图,具体可以包括位于客户端的信息确定与提交模块401,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ;并提交需要写入的栅格数据;位于客户端的标记数据生成模块402,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;位于客户端的压缩标记数据生成模块403,用于将所述标记数据进行压缩,获得压缩标记数据;
位于客户端的发送模块404 ;用于将所述压缩标记数据传给服务器;位于服务器的目标象素组提取模块405,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;位于服务器的数据更新模块406,用于服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。由于所述装置实施例基本相应于前述方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。以上对本申请所提供的一种地图标注的方法和一种地图标注的装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种栅格数据读取的方法,其特征在于,包括 客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ; 按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据; 将所述标记数据进行压缩,获得压缩标记数据; 将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组; 服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。
2.如权利要求I所述的方法,其特征在于,所述地理信息几何边界数据采用多线段图形表示;所述按照地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组的步骤包括 子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13; 子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为O ; 子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块; 子步骤S14、将所述包含栅格块中的每个象素标记为I ;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为I ;将所述相交栅格块中与多线段图形相离的象素标记为O ;所述目标栅格块中标记为I的象素分别组成目标象素组,所述目标栅格块中标记为O的象素分别组成非目标象素组; 子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
3.如权利要求2所述的方法,其特征在于,所述将标记数据进行压缩,获得压缩标记数据的步骤包括 将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数; 将转换的标记数据采用某一进制存储为压缩标记数据。
4.如权利要求3所述的方法,其特征在于,所述服务器解析压缩标记数据,提取目标栅格块及对应的目标象素组的步骤包括 服务器解压所述压缩标记数据,获得标记数据; 从标记数据中提取标记为I的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
5.如权利要求4所述的方法,其特征在于,所述服务器根据目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端的步骤包括 所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理O非目标栅格块及非目标象素组中的象素。
6.一种栅格数据写入的方法,其特征在于,包括 客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ;并提交需要写入的栅格数据; 按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据; 将所述标记数据进行压缩,获得压缩标记数据; 将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组; 服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。
7.一种栅格数据读取的装置,其特征在于,包括 位于客户端的信息确定模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K彡1,L彡I ; 位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据; 位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据; 位于客户端的发送模块,用于将所述压缩标记数据传给服务器; 位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组; 位于服务器的数据返回模块,用于服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。
8.如权利要求7所述的装置,其特征在于,所述地理信息几何边界数据采用多线段图形表示;所述位于客户端的标记数据生成模块包括 位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块; 非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为O ; 目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块; 目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为I;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为I;将所述相交栅格块中与多线段图形相离的象素标记为O ;所述目标栅格块中标记为I的象素分别组成目标象素组,所述目标栅格块中标记为O的象素分别组成非目标象素组; 标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
9.如权利要求8所述的装置,其特征在于,所述位于客户端的压缩标记数据生成模块包括 标记数据转换子模块,用于将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数; 标记数据压缩子模块,用于将转换的标记数据采用某一进制存储为压缩标记数据。
10.如权利要求9所述的装置,其特征在于,所述位于服务器的目标象素组提取模块包括 标记数据解析子模块,用于服务器解压所述压缩标记数据,获得标记数据; 目标象素组确定子模块,用于从标记数据中提取标记为I的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
11.如权利要求10所述的装置,其特征在于,所述位于服务器的数据返回模块包括 目标数据返回子模块,用于所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中O的象素。
12.一种栅格数据写入的装置,其特征在于,包括 位于客户端的信息确定与提交模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K > 1,L > I ;并提交需要写入的栅格数据; 位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据; 位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据; 位于客户端的发送模块;用于将所述压缩标记数据传给服务器; 位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组; 位于服务器的数据更新模块,用于服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。
全文摘要
本申请提供了栅格数据的读取方法和装置,栅格数据的写入方法和装置,其中,栅格数据的读取方法包括客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括多个象素;按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据;将所述标记数据进行压缩,获得压缩标记数据;将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。本申请能够提高栅格数据读写的处理效率和速度,并节省系统空间。
文档编号G06F17/30GK102708109SQ20121000878
公开日2012年10月3日 申请日期2012年1月12日 优先权日2012年1月12日
发明者刘扬, 孙成宝, 曹刚, 李团宏, 李嵩, 黄兆伟 申请人:北京地拓科技发展有限公司