CN102708109B - 栅格数据的读取方法和装置,栅格数据的写入方法和装置 - Google Patents
栅格数据的读取方法和装置,栅格数据的写入方法和装置 Download PDFInfo
- Publication number
- CN102708109B CN102708109B CN201210008785.8A CN201210008785A CN102708109B CN 102708109 B CN102708109 B CN 102708109B CN 201210008785 A CN201210008785 A CN 201210008785A CN 102708109 B CN102708109 B CN 102708109B
- Authority
- CN
- China
- Prior art keywords
- grid block
- data
- target
- grid
- pixel group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Processing (AREA)
Abstract
本申请提供了栅格数据的读取方法和装置,栅格数据的写入方法和装置,其中,栅格数据的读取方法包括:客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括多个象素;按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据;将所述标记数据进行压缩,获得压缩标记数据;将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。本申请能够提高栅格数据读写的处理效率和速度,并节省系统空间。
Description
技术领域
本申请涉空间信息服务技术领域,特别是涉及一种栅格数据的读取方法,一种栅格数据的写入方法,以及,一种栅格数据的读取装置,一种栅格数据的写入装置。
背景技术
基于栅格模型的数据结构简称为栅格数据结构,是指将空间分割成有规则的网格,成为栅格数据块,在各个栅格数据块上给出相应的属性值来表示地理实体的一种数据组织形式。栅格数据结构因为相对简单,而且空间分析和地理现象的模拟比较容易,有利于遥感数据的匹配应用和分析,输出方法快速,且成本比较低廉,因此被广泛应用于地理信息系统(Geographic Information System,GIS)中。
但是,在地理信息系统的应用中,经常需要频繁的读写处理栅格数据,而栅格数据结构的图形数据量大、冗余度高,在进行数据读写时需要耗费大量的时间,对于频繁读写来说,效率会进一步地降低。因为栅格数据结构的图形数据量大,会占用系统较多的空间,一般来说这些数据都是存储在硬盘中,当系统需要时,在从硬盘的文件中进行I/O操作来实现数据的读写,而频繁的读写,无疑会增加I/O操作的次数,占用大量系统资源,降低系统的反应速度。
因此,本领域技术人员迫切需要解决的问题是:提供一种栅格数据的读写机制,用以解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。
发明内容
本申请所要解决的技术问题是提供一种栅格数据的读取方法,以及,一种栅格数据的写入方法,用以解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。
相应的,本申请还提供了一种栅格数据的读取装置,以及,一种栅格数据的写入装置,用以保障上述方法在实际中的应用。
为了解决上述问题,本申请公开了一种栅格数据读取的方法,具体可以包括:
客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;
按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据;
将所述标记数据进行压缩,获得压缩标记数据;
将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端;
所述地理信息几何边界数据采用多线段图形表示;所述按照地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组的步骤包括:
子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13;
子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
子步骤S14、将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
优选的是,所述将标记数据进行压缩,获得压缩标记数据的步骤可以包括:
将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;
将转换的标记数据采用某一进制存储为压缩标记数据。
优选的是,所述服务器解析压缩标记数据,提取目标栅格块及对应的目标象素组的步骤可以包括:
服务器解压所述压缩标记数据,获得标记数据;
从标记数据中提取标记为1的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
优选的是,所述服务器根据目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端的步骤可以包括:
所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理0非目标栅格块及非目标象素组中的象素。
本申请还提供了一种栅格数据写入的方法,具体可以包括:
客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;并提交需要写入的栅格数据;
按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
将所述标记数据进行压缩,获得压缩标记数据;
将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,
对所述需要写入的栅格数据进行更新;
所述地理信息几何边界数据采用多线段图形表示;所述按照地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组的步骤包括:
子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13;
子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
子步骤S14、将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
本申请同时提供了一种栅格数据读取的装置,具体可以包括:
位于客户端的信息确定模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;
位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据;
位于客户端的发送模块,用于将所述压缩标记数据传给服务器;
位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
位于服务器的数据返回模块,用于服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端;
所述地理信息几何边界数据采用多线段图形表示;所述位于客户端的标记数据生成模块包括:
位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块;
非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
优选的是,所述位于客户端的压缩标记数据生成模块可以包括:
标记数据转换子模块,用于将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;
标记数据压缩子模块,用于将转换的标记数据采用某一进制存储为压缩标记数据。
优选的是,所述位于服务器的目标象素组提取模块可以包括:
标记数据解析子模块,用于服务器解压所述压缩标记数据,获得标记数据;
目标象素组确定子模块,用于从标记数据中提取标记为1的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
优选的是,所述位于服务器的数据返回模块可以包括:
目标数据返回子模块,用于所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中0的象素。
本申请还提供了一种栅格数据写入的装置,具体可以包括:
位于客户端的信息确定与提交模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;并提交需要写入的栅格数据;
位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据;
位于客户端的发送模块;用于将所述压缩标记数据传给服务器;
位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
位于服务器的数据更新模块,用于服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,对所述需要写入的栅格数据进行更新;
所述地理信息几何边界数据采用多线段图形表示;所述位于客户端的标记数据生成模块包括:
位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块;
非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
与现有技术相比,本申请具有以下优点:
本申请通过指定范围的地理信息几何边界数据对栅格进行标记,生成包括目标象素组的标记数据;按预设的规则将标记数据压缩生成压缩标记数据,并传给服务器。并且通过对栅格进行标记,生成包括目标象素组信息的标记数据;在请求栅格数据时,服务器根据包括目标象素组信息的标记数据分辨出目标象素组进行传输;在写入栅格数据时,服务器根据包括目标象素组信息的标记数据分辨出目标象素组进行更新。因为对标记数据进行压缩后传输的是压缩标记数据,传输的速度大大提高;并且服务器只读写目标象素组的数据,对其他象素组数据不进行处理,所以解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。
附图说明
图1是本申请一种栅格读取的方法实施例的流程图;
图2是本申请一种栅格写入的方法实施例的流程图;
图3是本申请一种栅格读取的装置实施例的结构框图;
图4是本申请一种栅格写入的装置实施例的结构框图;
图5是本申请的一种示例中多线段对栅格块B的标记示意图;
图6是本申请的一种示例中压缩标记数据的示意图;
图7是本申请的一种示例中服务器提取栅格块B中目标象素组数据的示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请通过指定范围的地理信息几何边界数据对栅格进行标记,生成包括目标象素组的标记数据;按预设的规则将标记数据压缩生成压缩标记数据,并传给服务器。从而解决频繁读写栅格数据因为数据量大而降低系统处理效率和速度、以及占用系统过多空间的问题,提高栅格数据读写的处理效率和速度,并节省系统空间。
参照图1,示出了本申请一种栅格读取的方法实施例的流程图,具体可以包括:
步骤101、客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;
在具体实现中,栅格数据是为将空间分割成规则的网格,生成栅格数据块存储在数据服务器上,栅格包括的主要是象素块。
当客户端通过网络访问服务器上的栅格数据。如,某A市的工作人员要访问到远程网络数据服务器上全国DEM栅格数据的属于A市区范围内的那部分数据。为了更精确的提供栅格数据,要用A市的地理信息几何边界数据与栅格数据配对,即用地理信息几何边界数据包括的坐标对应寻找相同坐标位置的栅格数据。
步骤102、按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据;
在本申请的一种优选实施例中,所述地理信息几何边界数据采用多线段图形表示;所述步骤102具体可以包括以下子步骤:
子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13;
子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
子步骤S14、将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素分别组成目标象素组,所述目标栅格块中标记为0的象素分别组成非目标象素组;
子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
在具体实现中,由于服务器提供的栅格数据都是方格状的,使得数据不精确。比如,需要北京市的地图数据,但是由于北京市在地图上是一个不规则的多线段图形,所以提供的数据会包括周边河北省地区的地图数据。所以采用地理信息几何边界数据和栅格数据进行配对,地理信息几何边界数据可以采用多线段图形表示,将栅格中与多线段图形相离的象素标记做0,与多线段图形非相离的象素标记做1。所有的标记按预置的顺序记录,生成标记数据。
在具体实现中生成标记数据分两层处理。第一层首先要判断栅格块与多线段图形关系;只有当此栅格块与多线段图形相交时候,再往第二层次处理。因为栅格块是由多个象素组成,那就必须逐个判断其每个象素与多线段图形关系了,凡相离的象素都给标记0,否则标记1。假如,这个栅格文件数据有10000行,10000列,共1亿个象素。如果逐个的判断每个象素与多线段图形关系吧,然后再确定每个象素是用标记0,还是标记1,这样效率太低。因此,先从大点的范围开始判断,譬如,用100×100象素大小的栅格块作为最初的判断单元。这样的话,假如这个栅格块完全在多线段图形外,则立刻判定,这10000个象素标记都为0,不用进行10000次的判断其每个象素与多线段图形关系。再假如这个栅格块完全在多线段图形内,也可以立刻知道其10000个象素标记都为1。只有这个栅格块与多线段图形部分相交时候,才去真正的判断对应栅格块中10000个象素,每个象素与多线段图形关系。采用两层判断处理方式,可以使效率更高。
因此栅格是采用分成若干栅格块块方式进行处理,每个栅格块包含K×L个象素;K,L分别为≥1的整数。以栅格块B为例子,首先判断栅格块B中象素与多线段图形的关系。表示操作范围的多线段图形与成四边形的栅格有以下几种关系:
如果栅格块B中全部象素块都包含在多线段图形内,即栅格块B中全部象素块与多线段非相离,那么,结果标记为K×L个标记“1”,标记数据为{1,1,1,…,1,1,1…,1,1,1,1…,1,1,1,…}(K×L个1)。
如果栅格块B中全部象素块与多线段图形相离,那么,结果标记为K×L个标记“0”,标记数据为{0,0,0,…,0,0,0,…,0,0,0,0,…,0,0,0,…}(K×L个0)。
如果栅格块B中象素与多线段图形相交。块中相交的象素用“1”标记,象素完全在多线段图形的也用“1”标记,相交与包含都是非相离;在多线段图形外的象素用“0”标记。结果标记为K×L个标记“0”或“1”,标记数据如{0,0,0,…,0,0,0,…,1,0,0,1,…,0,0,1,…}(一共K×L个)。
假设以栅格块B大小为256×256象素块为例子。用多线段图形与栅格块进行划分后的结果如图5所示意。
步骤103、将所述标记数据进行压缩,获得压缩标记数据;
在本申请的一种优选实施例中,所述步骤103具体可以包括以下子步骤:
子步骤S21、将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;
子步骤S22、将转换的标记数据采用某一进制存储为压缩标记数据。
在具体实现中,客户端通过地理信息几何边界数据和栅格数据进行配对后,得到标记数据。将标记数据传输给服务器前,利用标记数据的特点,进行高效的压缩,以保证快速的网络传输。
压缩方法:对于标记数据的大量重复0或者重复1的特点,采用“当前数”+“其后面重复出现次数”的原则。具体是用一个或者多个16位的数来保存,最高的1位保存当前标记是“1”还是“0”,剩下的低15位全用来保存“当前标记后重复出现的次数“,这样,15位数能记录重复出现次数最大为32767次,这样,一个16位的数,最多可以表达连续32767+1个“1”或者是32767+1个“0”。如图6所示记录了用2组16位数记录的连续的标记1。
在具体实现中,压缩标记数据可以用某一进制转换记录,某一进制包括二进制、十进制等。如:
压缩标记数据后存储的数:二进制表示为{1111111111111111,1111111111111111}十进制表示为{65536,65536}(如果16进制表示则为{0xFFFF,0xFFFF})。
如果块的标记数据{0,接着重复20000个0,1,接着重复20000个1,0,接着重复25533个0},压缩标记数据后存储的数:{0[标记位]100111000100000[这15位表示前一位的标记“0”后面接着重复0的次数],1[标记位]100111000100000[这15位表示前一位的标记“1”后面接着重复1的次数],0110001110111101},十进制表示为{20000,52768,25533}。
如果块的标记数据{0,0,0,1,1,1,1,0,…。}
压缩标记数据后存储的数:{0[第一个0标记]00000000000000000000000000010[0标记后接着重复2个0],1[标记1]000000000000011[标记1后接着重复了3个1],…}。
步骤104、将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
在本申请的一种优选实施例中,所述步骤104具体可以包括:
子步骤S31、服务器解压所述压缩标记数据,获得标记数据;
子步骤S32、从标记数据中提取标记为1的象素块为目标象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
即服务器按照压缩方法反向操作,对所述压缩标记数据进行解压,即可获得目标象素组的信息。
步骤105、服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端。
在本申请的一种优选实施例中,所述步骤105具体可以包括:
所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中0的象素块。
在具体实现中,客户端获取的栅格数据,是服务器根据标记数据所指定范围,在栅格数据中提取的。并且提取数据时按照多线段图形指定的范围提取,使地理信息的边界更精确。以图5中的栅格块B为例子,服务程序传输给客户端的数据如图7所示,null表示此象素数据无效。
为了方便本领域技术人员更好地理解本申请,以下结合图3至图8,通过一个完整示例更进一步说明本申请:
1、客户端请求栅格中的指定范围的栅格数据,指定范围的地理信息几何边界数据为一个多线段图形。
2、先判断栅格中的栅格块与多线段图形的关系,若栅格块与多线段图形相离,则对应栅格块中的象素全部标记为0;若栅格块在多线段图形中,则对应栅格块中的象素全部标记为1;若栅格块与多线段图形相交,则进行下面的步骤。
3、将与多线段图形相交的栅格中象素的坐标和多线段图形的的坐标配对,得到栅格中象素块与多线段图形的关系为相离或非相离;将相离的象素用0标记,将非相离的象素块用1标记。将标记按预置的顺序记录,生成标记数据。
4、采用“当前数”+“其后面重复出现次数”的原则,用一个或者多个16位的数(即最高的1位保存当前标记是“1”还是“0”,剩下的低15位全用来保存“当前标记后重复出现的次数“)来压缩标记数据,获得压缩标记数据。
5、将压缩标记数据传输给服务器,服务器解压所述压缩标记数据,获得标记数据;将标记数据中标记为1的象素块作为目标象素组,把目标象素组中的数据返回给客户端,目标象素组中的数据就是客户端请求栅格中的指定范围的栅格数据。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
参照图2,示出了本申请一种栅格写入的方法实施例的流程图,具体可以包括:
步骤201、客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;并提交需要写入的栅格数据;
步骤202、按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
步骤203、将所述标记数据进行压缩,获得压缩标记数据;
步骤204、将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
步骤205、服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。
为了方便本领域技术人员更好地理解本申请,以下结合图3至图8,通过一个完整示例更进一步说明本申请:
1、客户端要写入数据的对象栅格,和写入数据的指定范围,指定范围的地理信息几何边界数据为一个多线段图形。客户端同时将要写入的数据传输给服务器。
2、先判断栅格中的栅格块与多线段图形的关系,若栅格块与多线段图形相离,则对应栅格块中的象素全部标记为0;若栅格块在多线段图形中,则对应栅格块中的象素全部标记为1;若栅格块与多线段图形相交,则进行下面的步骤。
3、将与多线段图形相交栅格块中象素的坐标和多线段图形的的坐标配对,得到栅格中象素与多线段图形的关系为相离或非相离;将相离的象素用0标记,将非相离的象素用1标记。将标记按预置的顺序记录,生成标记数据。
4、采用“当前数”+“其后面重复出现次数”的原则,用一个或者多个16位的数(即最高的1位保存当前标记是“1”还是“0”,剩下的低15位全用来保存“当前标记后重复出现的次数“)来压缩标记数据,获得压缩标记数据。
5、将压缩标记数据传输给服务器,服务器解压所述压缩标记数据,获得标记数据;将标记数据中标记为1的象素作为目标象素组,根据客户端传输的数据,对目标象素组中的数据进行更新,目标象素组中的数据就是客户端写入数据的指定范围对应的数据。
参照图3,示出了本申请一种栅格读取的装置实施例的结构框图,具体可以包括:
位于客户端的信息确定模块301,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;
位于客户端的标记数据生成模块302,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
在本申请的一种优选实施例中,所述地理信息几何边界数据采用多线段图形表示;所述位于客户端的标记数据生成模块302具体可以包括以下子模块:
位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块;
非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素分别组成目标象素组,所述目标栅格块中标记为0的象素分别组成非目标象素组;
标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
0位于客户端的压缩标记数据生成模块303,用于将所述标记数据进行压缩,获得压缩标记数据;
在本申请的一种优选实施例中,所述位于客户端的压缩标记数据生成模块303具体可以包括以下子模块:
标记数据转换子模块,用于将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;
标记数据压缩子模块,用于将转换的标记数据采用某一进制存储为压缩标记数据。
位于客户端的发送模块304,用于将所述压缩标记数据传给服务器;
位于服务器的目标象素组提取模块305,用于服务器解析所述压缩标记数据,提取目标象素组;
在本申请的一种优选实施例中,所述位于服务器的目标象素组提取模块305具体可以包括以下子模块:
标记数据解析子模块,用于服务器解压所述压缩标记数据,获得标记数据;
目标象素组确定子模块,用于从标记数据中提取标记为1的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
位于服务器的数据返回模块306,用于服务器根据所述目标象素组查找对应的栅格数据返回给客户端。
再本申请的一种优选实施例中,所述位于服务器的数据返回模块306具体可以包括以下子模块:
目标数据返回子模块,用于所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中0的象素。
参照图4,示出了本申请一种栅格写入的装置实施例的结构框图,具体可以包括:
位于客户端的信息确定与提交模块401,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;并提交需要写入的栅格数据;
位于客户端的标记数据生成模块402,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
位于客户端的压缩标记数据生成模块403,用于将所述标记数据进行压缩,获得压缩标记数据;
位于客户端的发送模块404;用于将所述压缩标记数据传给服务器;
位于服务器的目标象素组提取模块405,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
位于服务器的数据更新模块406,用于服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,获取对应的栅格数据进行更新。
由于所述装置实施例基本相应于前述方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上对本申请所提供的一种地图标注的方法和一种地图标注的装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种栅格数据读取的方法,其特征在于,包括:
客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;
按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组,生成标记数据;
将所述标记数据进行压缩,获得压缩标记数据;
将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端;
所述地理信息几何边界数据采用多线段图形表示;所述按照地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组的步骤包括:
子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13;
子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
子步骤S14、将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
2.如权利要求1所述的方法,其特征在于,所述将标记数据进行压缩,获得压缩标记数据的步骤包括:
将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;
将转换的标记数据采用某一进制存储为压缩标记数据。
3.如权利要求2所述的方法,其特征在于,所述服务器解析压缩标记数据,提取目标栅格块及对应的目标象素组的步骤包括:
服务器解压所述压缩标记数据,获得标记数据;
从标记数据中提取标记为1的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
4.如权利要求3所述的方法,其特征在于,所述服务器根据目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端的步骤包括:
所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中的象素。
5.一种栅格数据写入的方法,其特征在于,包括:
客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;并提交需要写入的栅格数据;
按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
将所述标记数据进行压缩,获得压缩标记数据;
将所述压缩标记数据传给服务器,服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,对所述需要写入的栅格数据进行更新;
所述地理信息几何边界数据采用多线段图形表示;所述按照地理信息几何边界数据在可操作栅格中标记出目标栅格块以及对应的目标象素组的步骤包括:
子步骤S11、判断所述多线段图形是否与某栅格块相离,若是,则执行子步骤S12,若否,则执行子步骤S13;
子步骤S12、确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
子步骤S13、确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
子步骤S14、将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
子步骤S15、按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
6.一种栅格数据读取的装置,其特征在于,包括:
位于客户端的信息确定模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;
位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据;
位于客户端的发送模块,用于将所述压缩标记数据传给服务器;
位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
位于服务器的数据返回模块,用于服务器根据所述目标栅格块及对应的目标象素组查找对应的栅格数据返回给客户端;
所述地理信息几何边界数据采用多线段图形表示;所述位于客户端的标记数据生成模块包括:
位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块;
非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
7.如权利要求6所述的装置,其特征在于,所述位于客户端的压缩标记数据生成模块包括:
标记数据转换子模块,用于将所述标记数据按照“当前数和其后重复次数”的格式进行转换,所述当前数包括标记数据的起始数,以及,每次变换的起始数;
标记数据压缩子模块,用于将转换的标记数据采用某一进制存储为压缩标记数据。
8.如权利要求7所述的装置,其特征在于,所述位于服务器的目标象素组提取模块包括:
标记数据解析子模块,用于服务器解压所述压缩标记数据,获得标记数据;
目标象素组确定子模块,用于从标记数据中提取标记为1的象素,并根据象素所在的栅格块确定目标栅格块及对应的目标象素组。
9.如权利要求8所述的装置,其特征在于,所述位于服务器的数据返回模块包括:
目标数据返回子模块,用于所述服务器提取目标象素组对应的栅格数据返回给客户端;不处理非目标栅格块及非目标象素组中的象素。
10.一种栅格数据写入的装置,其特征在于,包括:
位于客户端的信息确定与提交模块,用于客户端确定可操作栅格,以及,指定范围的地理信息几何边界数据;所述各个可操作栅格中包括多个栅格块,每个栅格块包括K行L列个象素,其中K≥1,L≥1;并提交需要写入的栅格数据;
位于客户端的标记数据生成模块,用于按照所述地理信息几何边界数据在可操作栅格中标记出目标栅格块及对应的目标象素组,生成标记数据;
位于客户端的压缩标记数据生成模块,用于将所述标记数据进行压缩,获得压缩标记数据;
位于客户端的发送模块;用于将所述压缩标记数据传给服务器;
位于服务器的目标象素组提取模块,用于服务器解析所述压缩标记数据,提取目标栅格块及对应的目标象素组;
位于服务器的数据更新模块,用于服务器根据所述目标栅格块及对应的目标象素组和所述需要写入的栅格数据,对所述需要写入的栅格数据进行更新;
所述地理信息几何边界数据采用多线段图形表示;所述位于客户端的标记数据生成模块包括:
位置判断子模块,用于判断所述多线段图形是否与某栅格块相离,若是,则调用非目标处理子模块,若否,则调用目标处理子模块;
非目标处理子模块,用于确定所述栅格块为非目标栅格块,并将所述非目标栅格块中的所有象素标记为0;
目标处理子模块,用于确定该栅格块为目标栅格块,所述目标栅格块包括包含栅格块和相交栅格块;
目标象素组生成子模块,用于将所述包含栅格块中的每个象素标记为1;以及,将所述相交栅格块中与多线段图形相交或包含在多线段图形之内的象素标记为1;将所述相交栅格块中与多线段图形相离的象素标记为0;所述目标栅格块中标记为1的象素组成目标象素组,所述目标栅格块中标记为0的象素组成非目标象素组;
标记数据生成子模块,用于按一定顺序记录可操作栅格中所有象素的标记,形成标记数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210008785.8A CN102708109B (zh) | 2012-01-12 | 2012-01-12 | 栅格数据的读取方法和装置,栅格数据的写入方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210008785.8A CN102708109B (zh) | 2012-01-12 | 2012-01-12 | 栅格数据的读取方法和装置,栅格数据的写入方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102708109A CN102708109A (zh) | 2012-10-03 |
CN102708109B true CN102708109B (zh) | 2014-05-14 |
Family
ID=46900902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210008785.8A Active CN102708109B (zh) | 2012-01-12 | 2012-01-12 | 栅格数据的读取方法和装置,栅格数据的写入方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102708109B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793494B (zh) * | 2014-01-22 | 2017-07-04 | 百度在线网络技术(北京)有限公司 | 一种空间数据的处理方法及系统 |
CN103886045B (zh) * | 2014-03-12 | 2017-02-15 | 鲁东大学 | 一种包含局部有效栅格数据的存取方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971560A (zh) * | 2006-09-28 | 2007-05-30 | 江苏天泽信息产业有限公司 | 栅格电子地图源数据生成、组织及目标数据生成的方法 |
CN102236721A (zh) * | 2011-08-02 | 2011-11-09 | 南京大学 | 空间数据引擎中复杂窗口空间信息提取方法 |
CN102265117A (zh) * | 2008-12-23 | 2011-11-30 | 摩托罗拉移动公司 | 提供用于注释和显示地图的基于位置的信息 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7801970B2 (en) * | 2005-12-08 | 2010-09-21 | International Business Machines Corporation | Method and system for efficiently handling navigational state in a portal |
-
2012
- 2012-01-12 CN CN201210008785.8A patent/CN102708109B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971560A (zh) * | 2006-09-28 | 2007-05-30 | 江苏天泽信息产业有限公司 | 栅格电子地图源数据生成、组织及目标数据生成的方法 |
CN102265117A (zh) * | 2008-12-23 | 2011-11-30 | 摩托罗拉移动公司 | 提供用于注释和显示地图的基于位置的信息 |
CN102236721A (zh) * | 2011-08-02 | 2011-11-09 | 南京大学 | 空间数据引擎中复杂窗口空间信息提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102708109A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741272B2 (en) | Interpreter framework for a computer file | |
US10281284B2 (en) | Hybrid road network and grid based spatial-temporal indexing under missing road links | |
CN103678705B (zh) | 一种VCT文件到shapefile文件的矢量数据并行转换方法 | |
CN105338358A (zh) | 对图像进行解码的方法及装置 | |
CN107451150B (zh) | 地理数据呈现方法及装置 | |
CN113272798A (zh) | 地图获取方法、装置、计算机设备和存储介质 | |
CN112487871A (zh) | 笔迹数据处理方法、装置及电子设备 | |
CN103488776A (zh) | 一种实时在线获取地图数据的方法 | |
CN103678578A (zh) | 一种数据可视化处理方法、服务器及数据可视化处理系统 | |
CN102708109B (zh) | 栅格数据的读取方法和装置,栅格数据的写入方法和装置 | |
CN113901166A (zh) | 电子地图构建方法、装置、设备及存储介质 | |
CN111611438B (zh) | 图片标注方法、装置、处理设备及系统 | |
CN102103600B (zh) | 地图建立方法及地图系统 | |
CN113190551A (zh) | 特征检索系统的构建方法、特征检索方法、装置及设备 | |
CN115002011B (zh) | 流量双向测试方法、装置、电子设备及存储介质 | |
CN108133029B (zh) | 地图元素的调整方法、装置、设备及计算机可读存储介质 | |
CN102855115A (zh) | 一种基于拼接墙显示文字标注的方法及系统 | |
CN116228923A (zh) | 基于Geohash算法的热力图绘制方法与系统 | |
US9436715B2 (en) | Data management apparatus and data management method | |
CN104156475A (zh) | 地理信息读取方法及装置 | |
CN109492068A (zh) | 预定区域中的对象定位方法、装置和电子设备 | |
KR101768913B1 (ko) | 지리 정보 데이터 분할 방법, 분할 장치 및 이를 수행하는 프로그램을 기록하는 기록매체 | |
CN103870543A (zh) | 一种用于文档文件重构的方法及装置 | |
CN103714562A (zh) | 一种复杂区域绘制点的确定方法及装置 | |
CN116861013B (zh) | 一种cim数据可信性提升方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |