CN104572755B - 一种建立数据索引的方法、数据查询方法及相关装置 - Google Patents
一种建立数据索引的方法、数据查询方法及相关装置 Download PDFInfo
- Publication number
- CN104572755B CN104572755B CN201310508457.9A CN201310508457A CN104572755B CN 104572755 B CN104572755 B CN 104572755B CN 201310508457 A CN201310508457 A CN 201310508457A CN 104572755 B CN104572755 B CN 104572755B
- Authority
- CN
- China
- Prior art keywords
- character string
- row
- spatial data
- pixel
- data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/44—Browsing; Visualisation therefor
- G06F16/444—Spatial browsing, e.g. 2D maps, 3D or virtual spaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Library & Information Science (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
本发明实施例公开了一种建立数据索引的方法、数据查询方法及相关装置:将电子地图分割成大小相同的地图瓦片并分配唯一的ID号;针对每一个地图瓦片,建立瓦片坐标系;对地图瓦片中包含的空间数据进行编号;针对所述像素矩阵的每一行,生成行像素索引字符串;将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串;可见,将地图瓦片中每个空间数据分布在哪些像素点上描述出来,使得用户在后续的数据查询过程中,只要点击的位置点与描述该空间数据的其中一个像素点匹配即可准确的查询到相应的空间数据,从而提高数据查询准确率。
Description
技术领域
本发明涉及地理信息技术领域,特别是涉及一种建立数据索引的方法、数据查询方法及相关装置。
背景技术
目前,在服务器端设置有空间数据库,在该空间数据库中存储电子地图中各元素(如道路、建筑物、花园等)的空间数据。在空间数据库中存储各元素的空间数据为该元素在地理区域上的部分经纬度,如一条道路,在空间数据库中存储的该道路的空间数据是该道路中心位置的经纬度,并不存储该道路在地理区域上的其他经纬度,因此,在后续查询该道路的空间数据时,需要用户非常准确的点击到该道路的中心位置才能从空间数据库中获取到该道路的空间数据;若用户点击的位置为道路的非中心位置,则无法从空间数据库中查找到该道路的空间数据。
目前,用户在客户端查询电子地图中某一元素的空间数据的流程如下:用户对客户端展示的电子地图进行点击操作时,客户端将点击位置的像素值转换成经纬度坐标,并生成携带所述经纬度坐标的空间数据查询请求;客户端通过互联网将所述空间数据查询请求发送给服务器端,等待服务器端返回查询结果;服务器端接收到空间数据查询请求后,根据该空间数据查询请求中的经纬度坐标,从空间数据库中获取与该经纬度坐标对应的空间数据,并将获取的空间数据反馈给客户端。
综上可知,现有的空间数据查询方案,存在以下技术缺陷:
缺陷1)客户端上传给服务器端的经纬度坐标是通过对像素值转换得到,由于这种转换本身会存在失真,尤其是电子地图比例尺越小失真度越大,因此,导致通过像素值转换得到的经纬度坐标存在一定误差,因此,服务器端根据该存在一定误差的经纬度坐标获取到的空间数据可能不准确;
缺陷2)服务器端的空间数据库存储电子地图中各元素的空间数据为该元素的部分经纬度坐标,若用户在客户端点击该元素时,点击的位置若不是空间数据库中存储的经纬度位置,则无法从空间数据库查找到准确的空间数据,很有可能用户点击的位置对应的经纬度为另一个元素存储在空间数据库中的经纬度坐标,从而导致从空间数据库中获取的空间数据错误;
缺陷3)用户在不同的比例尺的电子地图中,查询空间数据的准确性不一致,用户在比例尺较大的电子地图中查询空间数据的准确性比在比例尺较小的电子地图中查询空间数据的准确性高。
发明内容
为了解决上述在电子地图中进行数据查询时,查询的空间数据不准确的问题,本发明提供了一种建立数据索引的方法、数据查询方法及相关装置,提高空间数据查询的准确性。
本发明实施例公开了如下技术方案:
一种建立数据索引的方法,针对每个比例尺的电子地图,执行以下步骤:
按照预置的地图瓦片尺寸,将电子地图分割成大小相同的地图瓦片,并为分割得到的每个地图瓦片分配唯一的ID号;
针对每一个地图瓦片,建立瓦片坐标系,该瓦片坐标系以像素为单位将所述地图瓦片划分为像素矩阵;
对地图瓦片中包含的空间数据进行编号,得到每个空间数据的数据编号;
针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串;
将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,所述行索引字符串用于指示每一行对应的行像素索引字符串的首个字符在所述地图瓦片对应的索引字符串中的位置;
关联存储所述电子地图比例尺、该电子地图比例尺下地图瓦片的ID号及索引字符串。
一种数据查询方法,电子地图被按照预置的地图瓦片尺寸分割成大小相同的地图瓦片,且每个地图瓦片建立有对应的瓦片坐标系,该瓦片坐标系以像素为单位将该地图瓦片划分为像素矩阵,所述方法包括:
接收数据查询请求,所述查询请求包括待查询位置的经纬度坐标和电子地图比例尺;
从预存的电子地图比例尺、地图瓦片的关联关系中,获取所述查询请求中的电子地图比例尺对应的地图瓦片,并从该地图瓦片中确定出包含所述经纬度坐标的地图瓦片;
从预存的电子地图比例尺、地图瓦片ID号以及地图瓦片索引字符串的关联关系中,获取包含所述经纬度坐标的地图瓦片对应的索引字符串;
根据获取的索引字符串中的地图瓦片尺寸字符串以及所述待查询位置的经纬度坐标,确定所述待查询位置在所述地图瓦片的瓦片坐标系中的像素坐标;
根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,并从该行索引字符串所指示的行像素索引字符串的首个字符在所述索引字符串的位置处开始,获取行像素索引字符串;
根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号;
当解析出数据编号时,获取与所述数据编号对应的空间数据。
一种建立数据索引的装置,针对一固定比例尺的电子地图,包括:
地图瓦片分割单元,用于按照预置的地图瓦片尺寸,将电子地图分割成大小相同的地图瓦片,并为分割得到的每个地图瓦片分配唯一的ID号;
瓦片坐标系建立单元,用于针对每一个地图瓦片,建立瓦片坐标系,该瓦片坐标系以像素为单位将所述地图瓦片划分为像素矩阵;
空间数据编号单元,用于对地图瓦片中包含的空间数据进行编号,得到每个空间数据的数据编号;
行像素索引字符串生成单元,用于针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串;
索引字符串生成单元,用于将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,所述行索引字符串用于指示每一行对应的行像素索引字符串的首个字符在所述地图瓦片对应的索引字符串中的位置;
存储单元,用于关联存储所述电子地图比例尺、该电子地图比例尺下地图瓦片的ID号及索引字符串。
一种数据查询装置,电子地图被按照预置的地图瓦片尺寸分割成大小相同的地图瓦片,且每个地图瓦片建立有对应的瓦片坐标系,该瓦片坐标系以像素为单位将该地图瓦片划分为像素矩阵,所述装置包括:
数据查询请求接收单元,用于接收数据查询请求,所述查询请求包括待查询位置的经纬度坐标和电子地图比例尺;
地图瓦片确定单元,用于从预存的电子地图比例尺、地图瓦片的关联关系中,获取所述查询请求中的电子地图比例尺对应的地图瓦片,并从该地图瓦片中确定出包含所述经纬度坐标的地图瓦片;
索引字符串获取单元,用于从预存的电子地图比例尺、地图瓦片ID号以及地图瓦片索引字符串的关联关系中,获取包含所述经纬度坐标的地图瓦片对应的索引字符串;
像素坐标确定单元,用于根据获取的索引字符串中的地图瓦片尺寸字符串以及所述待查询位置的经纬度坐标,确定所述待查询位置在所述地图瓦片的瓦片坐标系中的像素坐标;
行像素索引字符串获取单元,用于根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,并从该行索引字符串所指示的行像素索引字符串的首个字符在所述索引字符串的位置处开始,获取行像素索引字符串;
数据编号解析单元,用于根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号;
空间数据获取单元,用于当解析出数据编号时,获取与所述数据编号对应的空间数据。
本发明技术方案中,一方面,针对每个地图瓦片,在该地图瓦片中以像素为单位建立瓦片坐标系,即将该地图瓦片划分为像素矩阵,并针对像素矩阵中的每一个行,生成用于描述所述地图瓦片中在该行像素有数据分布的空间数据在该行像素的数据分布情况和该空间数据的数据编号的行像素索引字符串,因此,采用本发明技术方案,能够将地图瓦片中每个空间数据的数据分布在哪些像素点上描述出来,即描述同一空间数据的像素点数量较多,精确度较高,提高数据索引的精确度,使得用户在后续的数据查询过程中,只要点击的位置点与描述该空间数据的其中一个像素点匹配即可准确的查询到相应的空间数据,从而提高数据查询准确率;另一方面,在查询位置点对应的空间数据时,直接将该位置点定位到某一行像素,通过分析该行像素对应的行像素索引字符串,即可解析得到该位置点对应的空间数据的数据编号,从而可以快速的获取到与该位置点对应的空间数据,提高空间数据查询速度;再一方面,针对不同的比例尺下的电子地图,建立与各比例尺对应的精确到像素级的数据索引,使得在后续的数据查询中,不管用户是在哪个比例尺的电子地图中查询空间数据,均可以从与该比例尺对应的数据索引中查找到准确的空间数据,从而解决了现有技术对于大比例尺电子地图中检索数据较为准确而在小比例尺电子地图中检索数据的准确性较低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种建立数据索引方法的方法流程图;
图1A为本发明实施例中,在地图瓦片中建立瓦片坐标系的示意图;
图1B为本发明实施例中,对地图瓦片中的空间数据进行编号的示意图;
图2为本发明实施例中空间数据在一行像素分布的示意图之一;
图3为本发明实施例中空间数据在一行像素分布的示意图之二;
图4为本发明实施例中空间数据在一行像素分布的示意图之三;
图5为本发明实施例中空间数据在一行像素分布的示意图之四;
图6为本发明实施例中空间数据在一行像素分布的示意图之五;
图7为本发明实施例中空间数据在一行像素分布的示意图之六;
图8为本发明实施例中空间数据在一行像素分布的示意图之七;
图9为本发明一种数据索引查询方法的方法流程图;
图10为本发明地图瓦片展示图;
图11为本发明一种建立数据索引装置的装置结构图;
图12为本发明一种数据查询装置的装置结构图。
具体实施方式
本发明实施例提供了一种建立数据索引的方法、数据查询方法及相关装置。一方面,针对每个地图瓦片,在该地图瓦片中以像素为单位建立瓦片坐标系,即将所述地图瓦片划分为像素矩阵,并针对像素矩阵中的每一行,生成用于描述所述地图瓦片中在该行像素有数据分布的空间数据在该行像素的数据分布情况和该空间数据的数据编号的行像素索引字符串,因此,采用本发明技术方案,能够将地图瓦片中每个空间数据的数据分布在哪些像素点上描述出来,即描述同一空间数据的像素点数量较多,精确度较高,提高数据索引的精确度,使得用户在后续的数据查询过程中,只要点击的位置点与描述该空间数据的其中一个像素点匹配即可准确的查询到相应的空间数据,从而提高数据查询准确率;另一方面,在查询位置点对应的空间数据时,直接将该位置点定位到某一行像素,通过分析该行像素对应的行像素索引字符串,即可解析得到该位置点对应的空间数据的数据编号,从而可以快速的获取到与该位置点对应的空间数据,提高空间数据查询速度;再一方面,针对不同的比例尺下的电子地图,建立与各比例尺对应的精确到像素级的数据索引,使得在后续的数据查询中,不管用户是在哪个比例尺的电子地图中查询空间数据,均可以从与该比例尺对应的数据索引中查找到准确的空间数据,从而解决了现有技术对于大比例尺电子地图中检索数据较为准确而在小比例尺电子地图中检索数据的准确性较低的问题。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例进行详细描述。
实施例一
请参阅图1,其为本发明一种建立数据索引方法的方法流程图,针对一固定比例尺的电子地图,该方法包括以下步骤:
S101:按照预置的地图瓦片尺寸,将电子地图分割成大小相同的地图瓦片,并为分割得到的每个地图瓦片分配唯一的ID号。
本发明实施例中,针对不同比例尺下的电子地图,在每个比例尺下的电子地图按照指定尺寸(如256像素×256像素等)从电子地图的一角开始进行分割,进行分割的常用顺序一般来说是从电子地图的左上角开始,从上至下,从左至右的顺序进行分割,由此得到若干矩形数据,这些矩形数据称为地图瓦片。由于针对不同比例尺的电子地图,对电子地图进行分割所采用的指定尺寸一致,故比例尺越小,在该比例尺下获得的地图瓦片的数量也越多,比例尺越大,在该比例尺下获得的地图瓦片的数量越少。同时为每一个分割得到的地图瓦片分配唯一对应的ID号,这样在服务器端接收到客户端的初始化请求时,服务器端会将存储在服务器端的对应地图瓦片的索引数据全部下载到客户端,后续直接在客户端进行空间数据的查询,无需与服务器端进行交互,避免由于与服务器端进行交互所带来的时延以及由于网络原因可能导致数据查询失败的问题,因此提高数据查询的效率和成功率。
S102:针对每一个地图瓦片,建立瓦片坐标系,该瓦片坐标系以像素为单位将所述地图瓦片划分为像素矩阵;
瓦片坐标系具体为:坐标系的原点设定在地图瓦片的一角,x轴与y轴分别为所述地图瓦片的两个相邻边;在单张地图瓦片上建立的瓦片坐标系的作用是用于后续生成针对单张地图瓦片的索引字符串,瓦片坐标系的坐标轴单位均为像素,以256像素×256像素的矩形地图瓦片为例,x轴和y轴的最大值均为256,在建立数据索引时,地图瓦片内每个像素,不论是否具有空间数据,均能表现在索引字符串中。如图1A为在一个地图瓦片中建立瓦片坐标系的示意图。
S103:对地图瓦片中包含的空间数据进行编号,得到每个空间数据的数据编号;
一个地图瓦片里面包含哪些空间数据是已知的,对这些空间数据进行编号是根据该空间数据的最小行号和最小列号来确定得到,如果不同的空间数据其最小行号是一样的,则将列号较小的空间数据的编号编在前面。如图1B所示,地图瓦片中包含4个空间数据,分别为图1B中的A、B、C、D,该4个空间数据的最小行号分别为1、6、6、12;由于C的最小列号小于B的最小列号,因此,C的编号小于B的编号,依次比较该4个空间数据的最小行号,按照最小行号从小到大的顺序对空间数据进行依次编号为1、3、2、4。
S104:针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串;
S105:将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,所述行索引字符串用于指示每一行对应的行像素索引字符串的首个字符在所述地图瓦片对应的索引字符串中的位置。
优选的,前述S105将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,具体包括:
将地图瓦片尺寸字符串、像素矩阵各行的行索引字符串和各行的行像素索引字符串依次拼接得到所述地图瓦片的索引字符串,其中,拼接后的行索引字符串的对应的行顺序与拼接后的行像素索引字符串对应的行顺序相同。
S106:关联存储所述电子地图比例尺、该电子地图比例尺下地图瓦片的ID号及索引字符串。
优选地,本发明实施例中,前述S104中,针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串,可分为以下几种情况:
首先,依次遍历该行的第一个像素到该行的最后一个像素;
情况1,遍历得到该行像素均无空间数据,如图2所示,则将表示占位像素字符串标识的字符和该行中无空间数据的像素总数的字符拼接,得到占位像素索引字符串,并将该占位像素索引字符串作为该行的行像素索引字符串;
情况2,遍历得到该行像素均有空间数据且不同的空间数据占据的像素互不重叠,如图3所示,则按照空间数据在该行的分布顺序,将各空间数据对应的空间字符串拼接成行像素索引字符串,一个空间数据字符串包括:起点字符串、占位像素索引字符串、终点字符串,所述占位像素索引字符串包括表示占位像素字符串标识的字符和空间数据在该行所占据的像素总数的字符;所述起点字符串包括表示空间数据的起点标识字符和空间数据的数据编号的字符,所述终点字符串包括表示所述空间数据的终点标识字符和空间数据的数据编号的字符;
情况3,遍历得到该行像素均有空间数据且不同的空间数据之间均存在重叠的像素,如图4所示,则生成重叠空间数据字符串,并将所述重叠空间数据字符串作为该行的行像素索引字符串,所述重叠空间数据字符串包括:起点字符串、占位像素索引字符串及终点字符串,其中,在重叠空间数据字符串中每个空间数据的起点字符串按照所述空间数据的起点在该行的排列顺序进行排列,若两个起点字符串对应的两个空间数据的起点不重合,则在两个起点字符串之间加入一个占位像素索引字符串,在位于起点字符串与终点字符串之间的占位像素索引字符串之后将每个空间数据的终点字符串按照空间数据的终点在该行的排列顺序进行排列,若两个终点字符串对应的两个空间数据的终点不重合,则在两个终点字符串之间加入一个占位像素索引字符串;其中,位于两个起点字符串之间的占位像素索引字符串表示的是位于两个起点字符串对应的两个空间数据的起点之间的数据在该行占据的像素总数;位于起点字符串和终点字符串之间的占位像素索引字符串表示的是:位于起点字符串对应的空间数据的起点和终点字符串对应的空间数据的终点之间的数据在该行占据的像素总数;位于终点字符串之间的占位像素索引字符串表示的是:位于两个终点字符串对应的两个空间数据的终点之间的数据在该行占据的像素总数;
情况4,遍历得到该行像素均有空间数据且不同的空间数据既有重叠也有不重叠,如图5所示,则:针对不重叠的空间数据,生成该不重叠的空间数据对应的空间字符串;针对重叠的空间数据,生成与重叠的空间数据对应的重叠空间数据字符串;按照不重叠的空间数据、重叠的空间数据在该行的分布顺序,拼接相应的空间字符串与重叠空间数据字符串,得到行像素索引字符串;
情况5,遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据占据的像素互不重叠,如图6所示,则:生成各空间数据对应的空间字符串,若该行的第一空间数据之前存在无空间数据的像素则生成表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,若该行的最后一空间数据之后存在无空间数据的像素则生成表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照空间数据、无空间数据的像素的分布顺序,拼接相应的空间字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
图6所示的空间数据分布情况,只是情况5的其中一个空间数据分布情况,情况5至少还包括以下多种空间数据分布情况:
分布情况1、相邻的空间数据之间包括无空间数据的像素,且该行的第一个空间数据之前不存在无空间数据的像素,该行的最后一个空间数据之后不存在无空间数据的像素;
分布情况2、相邻的空间数据之间包括无空间数据的像素,且该行的第一个空间数据之前存在无空间数据的像素,该行的最后一个空间数据之后不存在无空间数据的像素;
分布情况3、相邻的空间数据之间包括无空间数据的像素,且该行的第一个空间数据之前不存在无空间数据的像素,该行的最后一个空间数据之后存在无空间数据的像素;
分布情况4、相邻的空间数据之间不包括无空间数据的像素,且该行的第一个空间数据之前不存在无空间数据的像素,该行的最后一个空间数据之后不存在无空间数据的像素;
分布情况5、相邻的空间数据之间不包括无空间数据的像素,且该行的第一个空间数据之前存在无空间数据的像素,该行的最后一个空间数据之后不存在无空间数据的像素;
分布情况6、相邻的空间数据之间不包括无空间数据的像素,且该行的第一个空间数据之前不存在无空间数据的像素,该行的最后一个空间数据之后存在无空间数据的像素。
情况5还包括其他多种分布情况,这里不再一一穷举。
优选的,前述情况5中,所述按照空间数据、无空间数据的像素的分布顺序,拼接空间字符串和占位像素索引字符串,得到该行对应的行像素索引字符串,具体包括:
按照该行的空间数据的分布顺序,拼接各空间数据对应的空间字符串,得到第一待定字符串;
若相邻的空间数据之间存在无空间数据的像素,则在所述第一待定字符串中相应的两个空间字符串之间加入所述表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串,得到第二待定字符串;
若该行的第一个空间数据之前以及最后一个空间数据之后均不存在无空间数据的像素,则将所述第二待定字符串作为该行的行像素索引字符串;
若该行的第一个空间数据之前存在无空间数据的像素,以及最后一个空间数据之后不存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前不存在无空间数据的像素,以及该行最后一个空间数据之后存在无空间数据的像素,则在所述第二待定字符串的后面加入所述表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前以及最后一个空间数据之后均存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该行中在所述第一个空间数据之前的无空间数据的像素的总数的占位像素索引字符串,以及在所述第二待定字符串的后面加入所述表示该行中在所述最后一个空间数据之后的无空间数据的像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
情况6,遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据之间均存在重叠的像素,如图7所示,则:针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串;按照该行的重叠的空间数据、无空间数据的像素的分布顺序,拼接相应的重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
图7所示的空间数据分布情况,只是情况6的其中一个空间数据分布情况,情况6至少还包括以下多种空间数据分布情况:
分布情况1、该行的第一个空间数据之前存在无空间数据的像素,且该行的最后一个空间数据不存在无空间数据的像素;
分布情况2、该行的第一个空间数据之前不存在无空间数据的像素,且该行的最后一个空间数据存在无空间数据的像素。
优选的,所述情况6中,按照该行的重叠的空间数据、无空间数据的像素的分布顺序,拼接重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串,具体包括:
若该行的第一个空间数据之前和最后一个终点的空间数据之后均存在无空间数据的像素,则将所述表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串和表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前存在无空间数据的像素,且该行的最后一个终点的空间数据之后不存在无空间数据的像素,则将表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串,按此顺序拼接得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前不存在无空间数据的像素,且该行最后一个终点的空间数据之后存在无空间数据的像素,则将重叠空间数据字符串、表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串。
情况7,遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据既有重叠也有不重叠,如图8所示,则:针对不重叠的空间数据生成空间字符串,针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照该行的无重叠的空间数据、重叠的空间数据以及无空间数据的像素的分布顺序,拼接相应的空间字符串、重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串。
图8所示的空间数据分布情况,只是情况7的其中一个空间数据分布情况,情况7至少还包括以下多种空间数据分布情况:
分布情况1、不重叠的相邻的空间数据之间均存在无空间数据的像素,且该行的第一个空间数据的前面存在无空间数据的像素,该行的最后一个空间数据的后面不存在无空间数据的像素;
分布情况2、不重叠的相邻的空间数据之间均存在无空间数据的像素,且该行的第一个空间数据的前面不存在无空间数据的像素,该行的最后一个空间数据的后面不存在无空间数据的像素;
分布情况3、不重叠的相邻的空间数据之间均存在无空间数据的像素,且该行的第一个空间数据的前面存在无空间数据的像素,该行的最后一个空间数据的后面存在无空间数据的像素;
分布情况4、不重叠的相邻的空间数据之间均不存在无空间数据的像素,且该行的第一个空间数据的前面存在无空间数据的像素,该行的最后一个空间数据的后面不存在无空间数据的像素;
分布情况5、不重叠的相邻的空间数据之间均不存在无空间数据的像素,且该行的第一个空间数据的前面不存在无空间数据的像素,该行的最后一个空间数据的后面存在无空间数据的像素;
分布情况6、有部分不重叠的相邻的空间数据之间存在无空间数据的像素,有部分不重叠的相邻的空间数据之间不存在无空间数据的像素,且该行的第一个空间数据的前面存在无空间数据的像素,该行的最后一个空间数据的后面不存在无空间数据的像素;
分布情况7、有部分不重叠的相邻的空间数据之间存在无空间数据的像素,有部分不重叠的相邻的空间数据之间不存在无空间数据的像素,且该行的第一个空间数据的前面不存在无空间数据的像素,该行的最后一个空间数据的后面不存在无空间数据的像素;
分布情况8、有部分不重叠的相邻的空间数据之间存在无空间数据的像素,有部分不重叠的相邻的空间数据之间不存在无空间数据的像素,且该行的第一个空间数据的前面存在无空间数据的像素,该行的最后一个空间数据的后面存在无空间数据的像素。
情况7还包括其他多种分布情况,这里不再一一穷举。
优选的,前述情况7中,按照该行的无重叠的空间数据、重叠的空间数据以及无空间数据的像素的分布顺序,拼接空间字符串、重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串,具体包括:
按照重叠的空间数据与不重叠的空间数据在该行的分布顺序,拼接空间字符串和重叠空间数据字符串,得到第三待定字符串;
若该行的相邻的两个无重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个空间字符串之间加入用于表示该两个相邻的无重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若该行的相邻的两个重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个重叠空间数据字符串之间加入表示该两个相邻的重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若相邻的重叠空间数据与不重叠的空间数据之间存在无空间数据的像素时,在所述第三待定字符串中相应的重叠空间数据字符串和空间字符串之间加入表示该两个相邻的重叠空间数据与不重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;以得到第四待定字符串;
若该行的第一个空间数据之前和该行的最后一个终点的空间数据之后均不存在无空间数据的像素,则将所述第四待定字符串作为该行的行像素索引字符串;
若该行的第一个空间数据之前存在无空间数据的像素,该行最后一个终点的空间数据之后不存在无空间数据的像素,则在第四待定字符串之前加入所述表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前不存在无空间数据的像素,该行最后一个终点的空间数据之后存在无空间数据的像素,则在第四待定字符串之后加入所述表示该行最后一个终点的空间数据之后存在的无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
优选地,本发明实施例中的索引字符串中的字符均为Unicode码,若需要从字符中解析出数据编号,可以根据现有的Unicode编码表将字符转换成数字。如将一个字符转换成数字,可采用以下方式:从Unicode编码表中查找该字符对应的编号,将编号转为十进制后减去63之后得出的结果即为该字符代表的数字。还如,将两个字符转换成一个数字,可采用以下方式:从Unicode编码表中查找两个字符各自对应的编号,将第一个字符对应的编号转为十进制后减去63,得到的结果进行左移6位的运算得到第一结果,将第二个字符对应的编号转为十进制后减去63得到第二结果,将第一结果与第二结果进行位或(即OR)运算,得到的结果即为该两个字符所对应的数字。还如将三个字符转换成一个数字,可采用以下方式:从Unicode编码表中查找三个字符各自对应的编号;将第一个字符对应的编号转为十进制后减去63,得到的结果进行左移12位的运算得到第一结果;将第二个字符对应的编号转为十进制后减去63,得到的结果进行左移6位的运算得到第二结果;将第一结果与第二结果进行位或(OR)运算,得到第三结果;将第三个字符对应的编号转为十进制后减去63,得到的第四结果;将第三结果与第四结果进行位或(OR)运算,得到的结果即为该三个字符所代表的数字。
可对上述方法进行逆运算将数字转换成字符。
当然,以上仅仅是一种优选的字符与数字的转换方法,本发明并不对如何在字符和数字之间的转换进行限定,只要确保在建立数据索引的过程中字符与数字的转换规则,与后续通过索引字符串反查空间数据时所使用的字符和数字的转换规则一致即可。
为便于本领域技术人员更清楚、详细的了解本发明技术方案,下面以地图瓦片的尺寸为256像素×256像素为例,对索引字符串的结构进行详细的描述,以下实施例仅仅是一个具体的例子,并不代表本发明技术方案只有以下一种具体实现方式,本领域技术人员可以根据以下实施例进行灵活的调整、修改。
1)地图瓦片的地图瓦片尺寸字符串。本发明实施例中的地图瓦片尺寸字符串由五个字符拼接而成。
第一个字符固定为“?”,其没有数字含义,后四个字符为Unicode表中的标准字符。第二个字符和第三个字符用于表示地图瓦片的像素宽度,即地图瓦片的像素列数。第四个字符和第五个字符用于表示地图瓦片的像素高度,即地图瓦片的像素行数。后续,若需要从地图瓦片尺寸字符串中解析出地图瓦片的列数时,可以通过前述“将两个字符转换成一个数字”的方式,将地图瓦片尺寸字符串中的第二个字符和第三个字符转换成所述地图瓦片的列数;同理,若需要从地图瓦片尺寸字符串中解析出地图瓦片的行数时,可以通过前述“将两个字符转换成一个数字”的方式,将地图瓦片尺寸字符串中的第四个字符和第五个字符转换成所述地图瓦片的列数。
例:地图瓦片尺寸字符串为??C?C,其代表的含义即为地图瓦片的宽和高均为256个像素。
当然,本发明并不对具体使用何种字符组合描述地图瓦片的宽、高进行限定。
2)地图瓦片中每一行对应的行索引字符串。本发明实施例中,行索引字符串可以为三个字符拼接。
例如:将某行的行索引字符串中的三个字符转换成数字,该数字减去(5+3*总行数)所得的结果即为该行对应的行像素索引字符串的第一个字符在像素全索引字符串(像素全索引是指将地图瓦片对应的像素矩阵中的各行对应的行像素索引字符串按照行号从小到大的顺序拼接而成的字符串)中的位置,这里的“5+3*总行数”中,5为地图瓦片尺寸字符串的长度,3是每个行索引字符串的长度。
3)地图瓦片中每一行对应的行像素索引字符串。本发明实施例中,行像素索引字符串的结构分两种情况:情况1、当某行的像素均无空间数据时,该行的行像素索引字符串只有一个占位像素索引字符串,该占位像素索引字符串由表示占位像素字符串标识的字符和该行中无空间数据的像素总数的字符拼接所得到;情况2、当某行的像素有空间数据时,该行的行像素索引字符串包括占位像素索引字符串、起点字符串和终点字符串,而且在一个行像素索引中,起点字符串和终点字符串成对出现,若在该行中分布有多个空间数据,则该行的行像素索引字符串中会包括多对起点字符串和终点字符串。
1、占位像素索引字符串。占位像素索引字符串由用于表示占位像素字符串标识的字符和用于表示像素总数的字符拼接而成,本发明实施例中提供的占位像素索引字符串的结构可以包括以下几种,可以根据具体的情况采用以下任一种或多种结构:
结构11、占位像素索引字符串为单个字符“@”:
“@”为类型编码(即用于表示占位像素索引字符串标识),通过上述“一个字符转成数字”的方法转换的结果为1。
该字符的含义为无空间数据或有空间数据的像素总数为1。
结构12、占位像素索引字符串由字符“A”和某一个字符拼接成而成:
“A”为类型编码(标识占位像素字符串),通过上述“一个字符转成数字”的方法转换的结果为2。
字符“A”后面的一个字符转换得到的数字即为无空间数据或有空间数据的像素的总数。例:Ab、Ay、A}等。
结构13、占位像素索引字符串由字符“B”和某两个字符拼接而成:
“B”为类型编码(标识占位像素字符串),通过上述“一个字符转成数字”的方法转换的结果为3。
字符“B”后面的两个字符转换得到的数字即为无空间数据或有空间数据的像素的总数。例:Bbc、ByH、B}}等。
2、起点字符串。起点字符串由表示空间数据的起点标识字符和空间数据的数据编号的字符拼接而成,包括以下几种结构:
结构21、起点字符串由字符“D”和某一个字符拼接而成:
“D”为类型编码(标识空间数据的起点),通过上述“一个字符转成数字”的方法转换的结果为5。
字符“D”后面的一个字符转换得到的数字即为空间数据的数据编号。例:Db、DY、D}等。
结构22、起点字符串由字符“E”和某两个字符拼接而成:
“E”为类型编码(标识空间数据的起点),通过上述“一个字符转成数字”的方法转换的结果为6。
字符“E”后面的两个字符转换得到的数字即为空间数据的数据编号。例:Ebc、EyH、E}}等。
结构23、起点字符串由字符“F”和某三个字符拼接而成:
“F”为类型编码(标识空间数据的起点),通过上述“一个字符转成数字”的方法转换的结果为7。
字符“F”后面的三个字符转换得到的数字即为空间数据的数据编号。例:Fccc、FyHg、F}}}等。
3、终点字符串:
结构31、终点字符串仅由字符“G”组成,此种结构适用于该行仅有一个空间数据的情况。
“G”为类型编码(标识空间数据的终点),通过上述“一个字符转成数字”的方法转换的结果为8。
结构32、终点字符串由字符“H”和某一个字符拼接而成:
“H”为类型编码(标识空间数据的终点),通过上述“一个字符转成数字”的方法转换的结果为9。
字符“H”后面的一个字符转换得到的数字即为空间数据的数据编号。例:Hb、HJ、H}等。
结构33、终点字符串由字符“I”和某两个字符拼接而成:
“I”为类型编码(标识空间数据的终点),通过上述“一个字符转成数字”的方法转换的结果为10。
字符“I”后面的两个字符转换得到的数字即为空间数据的数据编号。例:Icc、IHJ、I}}等。
结构34、终点字符串由字符“J”和某三个字符拼接而成:
“J”为类型编码(标识空间数据的终点),通过上述“一个字符转成数字”的方法转换的结果为11。
字符“J”后面的三个字符转换得到的数字即为空间数据的数据编号。例:Jggg、JHJn、J}}}等。
本发明实施例中,占位像素索引字符串、起点字符串、终点字符串使用哪些字符作为类型编码,本申请并不做具体限定,只要确保本申请中占位像素索引字符串、起点字符串和终点字符串所使用的作为类型编码的字符不重叠即可。
由于建立的索引字符串是针对像素位置的,而像素是构成各种几何图形的基本元素,使得索引字符串的建立和查询不用考虑空间数据的几何形状,从而带来了可以对多种复杂几何图形同时进行快速准确查询和对跨瓦片数据进行良好的查询处理的有益效果。
由上述实施例可见,针对每个地图瓦片,在该地图瓦片中以像素为单位建立瓦片坐标系得到像素矩阵,并针对该地图瓦片的每一行,生成用于描述所述地图瓦片中在该行像素有数据分布的空间数据在该行像素的数据分布情况和该空间数据的数据编号的行像素索引字符串,因此,采用本发明技术方案,能够将地图瓦片中每个空间数据的数据分布在哪些像素点上描述出来,即描述同一空间数据的像素点数量较多,精确度较高,提高数据索引的精确度,使得用户在后续的数据查询过程中,只要点击的位置点与描述该空间数据的其中一个像素点匹配即可准确的查询到相应的空间数据,从而提高数据查询准确率;再一方面,针对不同的比例尺下的电子地图,建立与各比例尺对应的精确到像素级的数据索引,使得在后续的数据查询中,不管用户是在哪个比例尺的电子地图中查询数据,均可以从与该比例尺对应的数据索引中查找到准确的数据,从而解决了现有技术对于大比例尺电子地图中检索数据较为准确而在小比例尺电子地图中检索数据的准确性较低的问题。
另外,由于生成的索引字符串中字符均为Unicode字符,使得实现该方法的终端设备或服务器端的平台和语言只需要具备基本的字符串处理功能、基本的整形运算和位运算的功能即可,对终端设备或服务器端的性能要求不高,带来了该方法对平台和语言的要求较低、实现成本较低、使该数据索引具有良好的跨平台特性和跨语言性的有益效果。
实施例二
请参阅图9,其为本发明一种数据索引查询方法的方法流程图,应用于电子地图中,电子地图被按照预置的地图瓦片尺寸分割成大小相同的地图瓦片,且每个地图瓦片建立有对应的瓦片坐标系,该瓦片坐标系以像素为单位将该地图瓦片划分为像素矩阵,该方法包括以下步骤:
S901:接收数据查询请求,所述查询请求包括待查询位置的经纬度坐标和电子地图比例尺。
本发明实施例中,数据查询请求由用户在电子界面进行操作后,客户端根据用户的操作所生成的请求,如,用户将鼠标移动到电子地图中,并进行点击,则客户端生成包括被点击位置的经纬度坐标和当前电子地图的比例尺的数据查询请求。
S902:从预存的电子地图比例尺、地图瓦片的关联关系中,获取所述查询请求中的电子地图比例尺对应的地图瓦片,并从该地图瓦片中确定出包含所述经纬度坐标的地图瓦片。
S903:从预存的电子地图比例尺、地图瓦片ID号以及地图瓦片索引字符串的关联关系中,获取包含所述经纬度坐标的地图瓦片对应的索引字符串。
S904:根据获取的索引字符串中的地图瓦片尺寸字符串以及所述待查询位置的经纬度坐标,确定所述待查询位置在所述地图瓦片的瓦片坐标系中的像素坐标。
S904中,确定所述待查询位置在所述地图瓦片的瓦片坐标系中的像素坐标,可参见实施例一描述的方式,在此不再赘述。
S905:根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,并从该行索引字符串所指示的行像素索引字符串的首个字符在所述索引字符串的位置处开始,获取行像素索引字符串。
优选的,所述行索引字符串由地图瓦片尺寸字符串、地图瓦片的像素矩阵各行的行索引字符串和各行的行像素索引字符串依次拼接得到,且各行的行索引字符串的长度相同,则根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,具体包括:
依次遍历行索引字符串,当遍历完D+(N-1)*L个字符后,开始从索引字符串中获取该待查询位置的行坐标对应行的行索引字符串,所述D为地图瓦片尺寸字符串的长度,N为所述待查询位置的行坐标,所述L为一个行索引字符串的长度。
S906:根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号。
S907:当解析出数据编号时,获取与所述数据编号对应的空间数据。
优选的,S906中,根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号,具体包括:
预置变量N,N的初始值为零;
依次遍历所述行像素索引字符串;
若遍历得到所述行像素索引字符串仅包含占位像素字符串时,确定不能从所述行像素索引字符串中解析得到数据编号;
若遍历得到所述行像素索引字符串包含起点字符串、占位像素索引字符串和终点字符串时,在每遍历到一个起点字符串时则从该起点字符串中解析数据编号,并缓存该数据编号;在每遍历到一个占位像素索引字符串时,对该占位像素索引字符串进行解析得到像素总数n,则调整N=N+n;以及在每遍历到一个终点字符串时,则从该终点字符串中解析出数据编号,并判断N值是否大于或等于所述待查询位置的像素坐标的列坐标;若否,则将缓存的与从所述终点字符串中解析出的数据编号一致的数据编号删除,并继续遍历所述行像素索引字符串中的下一个字符;若是,则将缓存的数据编号确定为从所述行像素索引字符串中解析得到的数据编号。
本申请提供的一种数据索引查询方法,可以应用于服务器端,也可以应用于用户终端。当应用于服务器端时,所述数据查询请求由用户终端发送给服务器端,前述S901~S906的操作步骤均由服务器端完成,并且服务器端在获取到空间数据之后,将该空间数据反馈给用户终端。当应用于用户终端时,所述数据查询请求由用户终端的前端生成,发送给用户终端的后端,前述S901~S906的操作步骤均由用户终端的后端完成。
为便于本领域技术人员清楚、详细的理解本技术方案,对数据查询流程做更进一步细致的描述。
首先,建立一个空数组,用于缓存从行像素索引字符串中解析得到的数据编号。
其次,预置变量N,用于记录遍历行像素索引字符串过程中像素矩阵的列数,变量N的初始值为0。
再其次,根据地图瓦片的地图瓦片尺寸字符串和数据查询请求中的经纬度,确定出待查询位置所在位置在地图瓦片的系统坐标中的像素坐标;以及,根据像素坐标的行坐标确定该行对应的行索引字符串,并根据获取的行索引字符串所指示的位置,从索引字符串中相应位置获取该行对应的行像素索引字符串;
然后,依次遍历获取的行像素索引字符串,并根据不同的字符进行相应的操作,以从行像素索引字符串中解析出数据编号,根据数据编号获取需要查询的空间数据,具体的操作如下:
从第一个字符开始执行1)的操作。
1)利用“一个字符转成数字”的方法把当前遍历的字符转换成数字,然后根据不同的数字进行执行2)~11)的操作。
2)数字为1时:
含义为遍历到了占位像素索引字符串,表示其占一个像素,将所述N调整为N=N+1,继续遍历下一个字符,执行1)的操作;
3)数字为2时:
含义为遍历到了占位像素索引字符串,表示其占多个像素,继续向后遍历一个字符,并将该字符转换成数字n,其表示占n个像素,将所述N调整为N=N+n,继续遍历下一个字符,执行1)的操作。
4)数字为3时:
含义为遍历到了占位像素索引字符串,表示其占多位像素,继续向后遍历两个字符,并将该两个字符转换成数字n,其表示占n个像素,将所述N调整为N=N+n,继续遍历下一个字符,执行1)的操作。
5)数字为5时:
含义为遍历到了起点字符串,其表示某一空间数据在该行的起点,继续向后遍历一个字符,并将该字符转换成数字m,该m表示该空间数据的数据编号,将该数据编号缓存至数组中,继续遍历下一个字符,执行1)的操作。
6)数字为6时:
含义为遍历到了起点字符串,其表示某一空间数据在该行的起点,继续向后遍历两个字符,并将该两个字符转换成数字m,该m表示该空间数据的数据编号,将该数据编号缓存至数组中,继续遍历下一个字符,执行1)的操作。
7)数字为7时:
含义为遍历到了起点字符串,其表示某一空间数据在该行的起点,继续向后遍历三个字符,并将该三个字符转换成数字m,该m表示该空间数据的数据编号,将该数据编号缓存至数组中,继续遍历下一字符,执行1)的操作。
8)数字为9时:
含义为遍历到了终点字符串,其表示某一空间数据在该行的终点,继续向后遍历一个字符,并将该字符转换成数字m,该m表示该空间数据的数据编号,判断所述N是否大于或等于所述像素坐标的列坐标,若是,则根据缓存中的数据编号获取与数据编号对应的空间数据,若否,则将数组中与所述转换得到的数据编号相同的数据编号删除,并继续遍历下一字符,执行1)的操作。
9)数字为10时:
含义为遍历到了终点字符串,其表示某空间数据在该行的终点,向后继续遍历两个字符,并将该两个字符转换成数字m,该m表示该空间数据的数据编号,判断所述N是否大于或等于所述像素坐标的列坐标,若是,则根据缓存中的数据编号获取与数据编号对应的空间数据,若否,将数组中与所述转换得到的数据编号相同的数据编号删除,并则继续遍历下一字符,执行1)的操作。
10)数字为11时:
含义为遍历到了终点字符串,其表示某空间数据在该行的终点,向后继续遍历三个字符,并将该三个字符转换成数字m,该m表示该空间数据的数据编号,判断所述N是否大于或等于所述像素坐标的列坐标,若是,则根据缓存中的数据编号获取与数据编号对应的空间数据,若否,将数组中与所述转换得到的数据编号相同的数据编号删除,并则继续遍历下一字符,执行1)的操作。
实施例三
在实施例一和实施例二的基础上,本实施例三以一个实际的应用场景为例,详描述如何建立一个地图瓦片的索引字符串以及利用索引字符串对这一地图瓦片上的一个待查询位置进行数据查询的过程,其中字符的设定规则均与实施例一与实施例二相同。
优选地,本发明实施例中,为进一步减少索引字符串的长度,当一地图瓦片中的连续k行(k大于1)的空间数据分布一致时,由于该k行的行像素索引字符串相同,因此,在生成索引字符串时,并不将该k行分别对应的行像素索引字符串均拼接到索引字符串中,而是只拼接该k行中的其中一行的行像素索引字符串,只要确保该k行分别对应的行索引字符串一致即可。
请参阅图10,其为本发明地图瓦片展示图。
其中,地图瓦片1000大小为16像素x16像素,该地图瓦片1000中包含一个空间数据1001,所建立的地图瓦片坐标系统的原点在地图瓦片的左上角,x轴正方向向右,y轴正方向向下。
空间数据1001的左上角的像素坐标为(6,11),右上角的像素坐标为(12,11),左下角为的像素坐标为(6,15),右下角的像素坐标为(12,15),由于只有一个数据,所以该数据的数据编号为0。
一、为该地图瓦片生成索引字符串:
1、生成地图瓦片尺寸字符串为??O?O。
2、生成每行的行像素索引字符串:
由于第一行到第十行的每一行的像素均无空间数据,因此,第一行到第十行每一行对应的行像素索引字符串相同,均为一个占位像素索引字符串,占16个像素,即前十行的行像素索引字符串均为AO,为减少索引字符串的长度,在后续拼接该前十行对应的行像素索引字符串时,仅拼接该前十行中的其中一行的行像素索引字符串,即前十行只拼接一个AO;由于空间数据1001为一个矩形数据,因此,第十一行到第十五行每一行的空间数据的分布一致,每一行的第一个像素到第五个像素为无空间数据的像素,生成一个表示无空间数据的像素总数为5的占位像素索引字符串AD,每一行的第六个像素到第十二个像素为有空间数据的像素,且该空间数据的数据编号为0,则生成一个起点字符串D?、占位像素索引字符串AE和终点字符串G,每一行的第十三个像素到第十六个像素为无空间数据的像素,生成一个表示无空间数据的像素总数为4的占位像素索引字符串AC,因此第十一行到第十五行分别对应的行像素索引字符串均为ADD?GAC,为减少索引字符串的长度,在后续拼接该第十一行到第十五行对应的行像素索引字符串时,仅拼接该第十一行到第十五行中的其中一行的行像素索引字符串,即第十一行到第十五行只拼接一个ADD?GAC;第十六行的像素均无空间数据,因此该第十六行的行像素索引字符串为AO;
3、生成每行的行索引字符串:
由于地图瓦片的第一行到第十行的像素均没有空间数据,且该前十行对应的行像素索引字符串一致,所以第一行到第十行的每行的行索引数值均为5+3*16=53,转换为三个字符为??t,即第一行到第十行的每一行的行索引字符串为??t。第十一行到第十五行的空间数据分布一致,其对应的行像素索引字符串一致,因此,每行的行索引数值为53+2=55,转换为三个字符为??v,即第十一行到第十五行的每一行的行索引字符串为??v。第十六行的行索引数值为55+9=64,转换为三个字符为?@?,即第十六行的行索引字符串为?@?。
4、依次拼接地图瓦片尺寸字符串、各行的行索引字符串、各行的行像素索引字符串,得到地图瓦片对应的索引字符串为:
??O?O??t??t??t??t??t??t??t??t??t??t??v??v??v??v??v?@?AOADD?AEGACAO。
二、根据地图瓦片对应的索引字符串进行空间数据查询:
用户通过鼠标在客户端的电子地图中进行点击操作,将点击操作的位置确定为待查询位置,根据待查询位置的经纬度坐标和电子地图当前的比例尺,确定包含该经纬度坐标的地图瓦片1000,将待查询位置转换为该地图瓦片1000的瓦片坐标系中的像素坐标为(9,12),并获取该地图瓦片对应的索引字符串,获取该待查询位置处的空间数据的流程如下:
建立数组a,该数组a中无数据,并预置变量N,N的初始值为0;
获取第十二行的行索引字符串,即计算5+12*3=41,从索引字符串中获取下标为41、42、43的字符,为“??v”,转换为数字为53。
从索引字符串中读取下标为53的字符,为“A”,该字符转换的数字为2即为占位像素索引字符串,继续读取下一个字符为“D”,将“D”转换为数字为5,即无空间数据的像素为5个,调整N=5。遍历的下标数加2,得55。
从索引字符串中读取下标为55的字符,为“D”,该字符转换的数字为5即为某一空间数据的起点字符串,继续读取下一字符为“?”,将“?”转换为数字0,即该空间数据的数据编号为0,将该数据编号缓存至数组a中。遍历的下标数加2,得57。
从索引字符串中读取下标为57的字符,为“A”,该字符转换的数字为2即为占位像素索引字符串,继续读取下一字符为“E”,将“E”转换为数字6,即该空间数据占的像素总数为6个,调整N=5+11,判断N大于9,因此,将数组a中的数据编号确定为从索引字符串中解析出来的数据编号。根据数据编号,获取对应的空间数据。
实施例四
与上述一种建立数据索引的方法相对应,本发明实施例还提供了一种建立数据索引的装置。请参阅图11,其为本发明一种建立数据索引装置的结构图,包括:
地图瓦片分割单元1101,用于按照预置的地图瓦片尺寸,将电子地图分割成大小相同的地图瓦片,并为分割得到的每个地图瓦片分配唯一的ID号;
瓦片坐标系建立单元1102,用于针对每一个地图瓦片,建立瓦片坐标系,该瓦片坐标系以像素为单位将所述地图瓦片划分为像素矩阵;
空间数据编号单元1103,用于对地图瓦片中包含的空间数据进行编号,得到每个空间数据的数据编号;
行像素索引字符串生成单元1104,用于针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串;
索引字符串生成单元1105,用于将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,所述行索引字符串用于指示每一行对应的行像素索引字符串的首个字符在所述地图瓦片对应的索引字符串中的位置;
存储单元1106,用于关联存储所述电子地图比例尺、该电子地图比例尺下地图瓦片的ID号及索引字符串。
优选的,前述图11所示的建立数据索引装置中的行像素索引字符串生成单元1104具体包括第一遍历单元、第一拼接单元、第二拼接单元、第三拼接单元、第四拼接单元、第五拼接单元、第六拼接单元和第七拼接单元:
第一遍历单元,用于依次遍历该行的第一个像素到该行的最后一个像素;
第一拼接单元,用于若所述第一遍历单元遍历得到该行像素均无空间数据,则将表示占位像素字符串标识的字符和该行中无空间数据的像素总数的字符拼接,得到占位像素索引字符串,并将该占位像素索引字符串作为该行的行像素索引字符串;
第二拼接单元,用于若所述第一遍历单元遍历得到该行像素均有空间数据且不同的空间数据占据的像素互不重叠,则按照空间数据在该行的分布顺序,将各空间数据对应的空间字符串拼接成行像素索引字符串,一个空间数据字符串包括:起点字符串、占位像素索引字符串、终点字符串,所述占位像素索引字符串包括表示占位像素字符串标识的字符和空间数据在该行所占据的像素总数的字符;所述起点字符串包括表示空间数据的起点标识字符和空间数据的数据编号的字符,所述终点字符串包括表示所述空间数据的终点标识字符和空间数据的数据编号的字符;
第三拼接单元,用于若所述第一遍历单元遍历得到该行像素均有空间数据且不同的空间数据之间均存在重叠的像素,则生成重叠空间数据字符串,并将所述重叠空间数据字符串作为该行的行像素索引字符串,所述重叠空间数据字符串包括:起点字符串、占位像素索引字符串及终点字符串,其中,在重叠空间数据字符串中每个空间数据的起点字符串按照所述空间数据的起点在该行的排列顺序进行排列,若两个起点字符串对应的两个空间数据的起点不重合,则在两个起点字符串之间加入一个占位像素索引字符串,在位于起点字符串与终点字符串之间的占位像素索引字符串之后将每个空间数据的终点字符串按照空间数据的终点在该行的排列顺序进行排列,若两个终点字符串对应的两个空间数据的终点不重合,则在两个终点字符串之间加入一个占位像素索引字符串;其中,位于两个起点字符串之间的占位像素索引字符串表示的是位于两个起点字符串对应的两个空间数据的起点之间的数据在该行占据的像素总数;位于起点字符串和终点字符串之间的占位像素索引字符串表示的是:位于起点字符串对应的空间数据的起点和终点字符串对应的空间数据的终点之间的数据在该行占据的像素总数;位于终点字符串之间的占位像素索引字符串表示的是:位于两个终点字符串对应的两个空间数据的终点之间的数据在该行占据的像素总数;
第四拼接单元,用于若所述第一遍历单元遍历得到该行像素均有空间数据且不同的空间数据既有重叠也有不重叠,则:针对不重叠的空间数据,生成该不重叠的空间数据对应的空间字符串;针对重叠的空间数据,生成与重叠的空间数据对应的重叠空间数据字符串;按照不重叠的空间数据、重叠的空间数据在该行的分布顺序,拼接相应的空间字符串与重叠空间数据字符串,得到行像素索引字符串;
第五拼接单元,用于若所述第一遍历单元遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据占据的像素互不重叠,则:生成各空间数据对应的空间字符串,若该行的第一空间数据之前存在无空间数据的像素则生成表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,若该行的最后一空间数据之后存在无空间数据的像素则生成表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照空间数据、无空间数据的像素的分布顺序,拼接相应的空间字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
第六拼接单元,用于若所述第一遍历单元遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据之间均存在重叠的像素,则:针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串;按照该行的重叠的空间数据、无空间数据的像素的分布顺序,拼接相应的重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
第七拼接单元,用于若所述第一遍历单元遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据既有重叠也有不重叠,则:针对不重叠的空间数据生成空间字符串,针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照该行的无重叠的空间数据、重叠的空间数据以及无空间数据的像素的分布顺序,拼接相应的空间字符串、重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串。
优选的,第五拼接单元具体包括第一待定字符串生成单元、第二待定字符串生成单元、第五拼接单元第一生成子单元、第五拼接单元第二生成子单元、第五拼接单元第三生成子单元和第五拼接单元第四生成子单元:
第一待定字符串生成单元,用于按照该行的空间数据的分布顺序,拼接各空间数据对应的空间字符串,得到第一待定字符串;
第二待定字符串生成单元,用于若相邻的空间数据之间存在无空间数据的像素,则在所述第一待定字符串中相应的两个空间字符串之间加入所述表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串,得到第二待定字符串;
第五拼接单元第一生成子单元,用于若该行的第一个空间数据之前以及最后一个空间数据之后均不存在无空间数据的像素,则将所述第二待定字符串作为该行的行像素索引字符串;
第五拼接单元第二生成子单元,用于若该行的第一个空间数据之前存在无空间数据的像素,以及最后一个空间数据之后不存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
第五拼接单元第三生成子单元,用于若该行的第一个空间数据之前不存在无空间数据的像素,以及该行最后一个空间数据之后存在无空间数据的像素,则在所述第二待定字符串的后面加入所述表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
第五拼接单元第四生成子单元,用于若该行的第一个空间数据之前以及最后一个空间数据之后均存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该行中在所述第一个空间数据之前的无空间数据的像素的总数的占位像素索引字符串,以及在所述第二待定字符串的后面加入所述表示该行中在所述最后一个空间数据之后的无空间数据的像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
优选的,第六拼接单元具体包括第六拼接单元第一生成子单元、第六拼接单元第二生成子单元和第六拼接单元第三生成子单元:
第六拼接单元第一生成子单元,用于若该行的第一个空间数据之前和最后一个终点的空间数据之后均存在无空间数据的像素,则将所述表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串和表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串;
第六拼接单元第二生成子单元,用于若该行的第一个空间数据之前存在无空间数据的像素,且该行的最后一个终点的空间数据之后不存在无空间数据的像素,则将表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串,按此顺序拼接得到该行对应的行像素索引字符串;
第六拼接单元第三生成子单元,用于若该行的第一个空间数据之前不存在无空间数据的像素,且该行最后一个终点的空间数据之后存在无空间数据的像素,则将重叠空间数据字符串、表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串。
优选的,第七拼接单元具体包括第三待定字符串生成单元、第四待定字符串生成单元、第七拼接单元第一生成子单元、第七拼接单元第二生成子单元和第七拼接单元第三生成子单元:
第三待定字符串生成单元,用于按照重叠的空间数据与不重叠的空间数据在该行的分布顺序,拼接空间字符串和重叠空间数据字符串,得到第三待定字符串;
第四待定字符串生成单元,用于若该行的相邻的两个无重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个空间字符串之间加入用于表示该两个相邻的无重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若该行的相邻的两个重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个重叠空间数据字符串之间加入表示该两个相邻的重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若相邻的重叠空间数据与不重叠的空间数据之间存在无空间数据的像素时,在所述第三待定字符串中相应的重叠空间数据字符串和空间字符串之间加入表示该两个相邻的重叠空间数据与不重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;以得到第四待定字符串;
第七拼接单元第一生成子单元,用于若该行的第一个空间数据之前和该行的最后一个终点的空间数据之后均不存在无空间数据的像素,则将所述第四待定字符串作为该行的行像素索引字符串;
第七拼接单元第二生成子单元,用于若该行的第一个空间数据之前存在无空间数据的像素,该行最后一个终点的空间数据之后不存在无空间数据的像素,则在第四待定字符串之前加入所述表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
第七拼接单元第三生成子单元,用于若该行的第一个空间数据之前不存在无空间数据的像素,该行最后一个终点的空间数据之后存在无空间数据的像素,则在第四待定字符串之后加入所述表示该行最后一个终点的空间数据之后存在的无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
优选的,所述索引字符串生成单元1105,具体用于:将地图瓦片尺寸字符串、像素矩阵各行的行索引字符串和各行的行像素索引字符串依次拼接得到所述地图瓦片的索引字符串,其中,拼接后的行索引字符串的对应的行顺序与拼接后的行像素索引字符串对应的行顺序相同。
与上述一种数据查询的方法相对应,本发明实施例还提供了一种数据查询的装置。请参阅图12,其为本发明一种数据查询装置的装置结构图,电子地图被按照预置的地图瓦片尺寸分割成大小相同的地图瓦片,且每个地图瓦片建立有对应的瓦片坐标系,该瓦片坐标系以像素为单位将该地图瓦片划分为像素矩阵,包括:
数据查询请求接收单元1201,用于接收数据查询请求,所述查询请求包括待查询位置的经纬度坐标和电子地图比例尺;
地图瓦片确定单元1202,用于从预存的电子地图比例尺、地图瓦片的关联关系中,获取所述查询请求中的电子地图比例尺对应的地图瓦片,并从该地图瓦片中确定出包含所述经纬度坐标的地图瓦片;
索引字符串获取单元1203,用于从预存的电子地图比例尺、地图瓦片ID号以及地图瓦片索引字符串的关联关系中,获取包含所述经纬度坐标的地图瓦片对应的索引字符串;
像素坐标确定单元1204,用于根据获取的索引字符串中的地图瓦片尺寸字符串以及所述待查询位置的经纬度坐标,确定所述待查询位置在所述地图瓦片的瓦片坐标系中的像素坐标;
行像素索引字符串获取单元1205,用于根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,并从该行索引字符串所指示的行像素索引字符串的首个字符在所述索引字符串的位置处开始,获取行像素索引字符串;
数据编号解析单元1206,用于根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号;
空间数据获取单元1207,用于当解析出数据编号时,获取与所述数据编号对应的空间数据。
优选的,所述行像素索引字符串获取单元1205,从所述索引字符串中获取所述行坐标对应行的行索引字符串,具体用于:
依次遍历行索引字符串,当遍历完D+(N-1)*L个字符后,开始从索引字符串中获取该待查询位置的行坐标对应行的行索引字符串,所述D为地图瓦片尺寸字符串的长度,N为所述待查询位置的行坐标,所述L为一个行索引字符串的长度。
优选的,数据编号解析单元1206具体包括预置单元、第二遍历单元、数据编号解析第一子单元和数据编号解析第一子单元:
预置单元,用于预置变量N,N的初始值为零;
第二遍历单元,用于依次遍历所述行像素索引字符串;
数据编号解析第一子单元,用于若遍历得到所述行像素索引字符串仅包含占位像素字符串时,确定不能从所述行像素索引字符串中解析得到数据编号;
数据编号解析第二子单元,用于若遍历得到所述行像素索引字符串包含起点字符串、占位像素索引字符串和终点字符串时,在每遍历到一个起点字符串时则从该起点字符串中解析数据编号,并缓存该数据编号;在每遍历到一个占位像素索引字符串时,对该占位像素索引字符串进行解析得到像素总数n,调整N=N+n;以及在每遍历到一个终点字符串时,则从该终点字符串中解析出数据编号,并判断N值是否大于或等于所述待查询位置的像素坐标的列坐标;若否,则将缓存的与从所述终点字符串中解析出的数据编号一致的数据编号删除,并触发所述第二遍历单元继续遍历所述行像素索引字符串中的下一个字符;若是,则将缓存的数据编号确定为从所述行像素索引字符串中解析得到的数据编号。
由本实施例可以看出,一方面,针对每个地图瓦片,在该地图瓦片中以像素为单位建立瓦片坐标系,并针对该地图瓦片的每行像素,生成用于描述所述地图瓦片中在该行像素有数据分布的空间数据在该行像素的数据分布情况和该空间数据的数据编号的行像素索引字符串,因此,采用本发明技术方案,能够将地图瓦片中每个空间数据的数据分布在哪些像素点上描述出来,即描述同一空间数据的像素点数量较多,精确度较高,提高数据索引的精确度,使得用户在后续的数据查询过程中,只要点击的位置点与描述该空间数据的其中一个像素点匹配即可准确的查询到相应的空间数据,从而提高数据查询准确率;另一方面,在查询位置点对应的空间数据时,直接将该位置点定位到某一行像素,通过分析该行像素对应的行像素索引字符串,即可解析得到该位置点对应的空间数据的数据编号,从而可以快速的获取到与该位置点对应的空间数据,提高空间数据查询速度;再一方面,针对不同的比例尺下的电子地图,建立与各比例尺对应的精确到像素级的数据索引,使得在后续的数据查询中,不管用户是在哪个比例尺的电子地图中查询空间数据,均可以从与该比例尺对应的数据索引中查找到准确的空间数据,从而解决了现有技术对于大比例尺电子地图中检索数据较为准确而在小比例尺电子地图中检索数据的准确性较低的问题。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上对本发明所提供的一种建立数据索引的方法、数据查询方法及相关装置进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种建立数据索引的方法,其特征在于,针对一固定的电子地图比例尺的电子地图,执行以下步骤:
按照预置的地图瓦片尺寸,将电子地图分割成大小相同的地图瓦片,并为分割得到的每个地图瓦片分配唯一的ID号;
针对每一个地图瓦片,建立瓦片坐标系,该瓦片坐标系以像素为单位将所述地图瓦片划分为像素矩阵;
对地图瓦片中包含的空间数据进行编号,得到每个空间数据的数据编号;
针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串;
将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,所述行索引字符串用于指示每一行对应的行像素索引字符串的首个字符在所述地图瓦片对应的索引字符串中的位置;
关联存储所述电子地图比例尺、该电子地图比例尺下地图瓦片的ID号及索引字符串。
2.根据权利要求1所述的方法,其特征在于,针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串,具体包括:
依次遍历该行的第一个像素到该行的最后一个像素;
若遍历得到该行像素均无空间数据,则将表示占位像素字符串标识的字符和该行中无空间数据的像素总数的字符拼接,得到占位像素索引字符串,并将该占位像素索引字符串作为该行的行像素索引字符串;
若遍历得到该行像素均有空间数据且不同的空间数据占据的像素互不重叠,则按照空间数据在该行的分布顺序,将各空间数据对应的空间字符串拼接成行像素索引字符串,一个空间数据字符串包括:起点字符串、占位像素索引字符串、终点字符串,所述占位像素索引字符串包括表示占位像素字符串标识的字符和空间数据在该行所占据的像素总数的字符;所述起点字符串包括表示空间数据的起点标识字符和空间数据的数据编号的字符,所述终点字符串包括表示所述空间数据的终点标识字符和空间数据的数据编号的字符;
若遍历得到该行像素均有空间数据且不同的空间数据之间均存在重叠的像素,则生成重叠空间数据字符串,并将所述重叠空间数据字符串作为该行的行像素索引字符串,所述重叠空间数据字符串包括:起点字符串、占位像素索引字符串及终点字符串,其中,在重叠空间数据字符串中每个空间数据的起点字符串按照所述空间数据的起点在该行的排列顺序进行排列,若两个起点字符串对应的两个空间数据的起点不重合,则在两个起点字符串之间加入一个占位像素索引字符串,在位于起点字符串与终点字符串之间的占位像素索引字符串之后将每个空间数据的终点字符串按照空间数据的终点在该行的排列顺序进行排列,若两个终点字符串对应的两个空间数据的终点不重合,则在两个终点字符串之间加入一个占位像素索引字符串;其中,位于两个起点字符串之间的占位像素索引字符串表示的是位于两个起点字符串对应的两个空间数据的起点之间的数据在该行占据的像素总数;位于起点字符串和终点字符串之间的占位像素索引字符串表示的是:位于起点字符串对应的空间数据的起点和终点字符串对应的空间数据的终点之间的数据在该行占据的像素总数;位于终点字符串之间的占位像素索引字符串表示的是:位于两个终点字符串对应的两个空间数据的终点之间的数据在该行占据的像素总数;
若遍历得到该行像素均有空间数据且不同的空间数据既有重叠也有不重叠,则:针对不重叠的空间数据,生成该不重叠的空间数据对应的空间字符串;针对重叠的空间数据,生成与重叠的空间数据对应的重叠空间数据字符串;按照不重叠的空间数据、重叠的空间数据在该行的分布顺序,拼接相应的空间字符串与重叠空间数据字符串,得到行像素索引字符串;
若遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据占据的像素互不重叠,则:生成各空间数据对应的空间字符串,若该行的第一空间数据之前存在无空间数据的像素则生成表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,若该行的最后一空间数据之后存在无空间数据的像素则生成表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照空间数据、无空间数据的像素的分布顺序,拼接相应的空间字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
若遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据之间均存在重叠的像素,则:针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串;按照该行的重叠的空间数据、无空间数据的像素的分布顺序,拼接相应的重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
若遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据既有重叠也有不重叠,则:针对不重叠的空间数据生成空间字符串,针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照该行的无重叠的空间数据、重叠的空间数据以及无空间数据的像素的分布顺序,拼接相应的空间字符串、重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串。
3.根据权利要求2所述的方法,其特征在于,所述按照空间数据、无空间数据的像素的分布顺序,拼接空间字符串和占位像素索引字符串,得到该行对应的行像素索引字符串,具体包括:
按照该行的空间数据的分布顺序,拼接各空间数据对应的空间字符串,得到第一待定字符串;
若相邻的空间数据之间存在无空间数据的像素,则在所述第一待定字符串中相应的两个空间字符串之间加入所述表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串,得到第二待定字符串;
若该行的第一个空间数据之前以及最后一个空间数据之后均不存在无空间数据的像素,则将所述第二待定字符串作为该行的行像素索引字符串;
若该行的第一个空间数据之前存在无空间数据的像素,以及最后一个空间数据之后不存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前不存在无空间数据的像素,以及该行最后一个空间数据之后存在无空间数据的像素,则在所述第二待定字符串的后面加入所述表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前以及最后一个空间数据之后均存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该行中在所述第一个空间数据之前的无空间数据的像素的总数的占位像素索引字符串,以及在所述第二待定字符串的后面加入所述表示该行中在所述最后一个空间数据之后的无空间数据的像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
4.根据权利要求2所述的方法,其特征在于,所述按照该行的重叠的空间数据、无空间数据的像素的分布顺序,拼接重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串,具体包括:
若该行的第一个空间数据之前和最后一个终点的空间数据之后均存在无空间数据的像素,则将所述表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串和表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前存在无空间数据的像素,且该行的最后一个终点的空间数据之后不存在无空间数据的像素,则将表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串,按此顺序拼接得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前不存在无空间数据的像素,且该行最后一个终点的空间数据之后存在无空间数据的像素,则将重叠空间数据字符串、表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串。
5.根据权利要求2所述的方法,其特征在于,按照该行的无重叠的空间数据、重叠的空间数据以及无空间数据的像素的分布顺序,拼接空间字符串、重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串,具体包括:
按照重叠的空间数据与不重叠的空间数据在该行的分布顺序,拼接空间字符串和重叠空间数据字符串,得到第三待定字符串;
若该行的相邻的两个无重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个空间字符串之间加入用于表示该两个相邻的无重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若该行的相邻的两个重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个重叠空间数据字符串之间加入表示该两个相邻的重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若相邻的重叠空间数据与不重叠的空间数据之间存在无空间数据的像素时,在所述第三待定字符串中相应的重叠空间数据字符串和空间字符串之间加入表示该两个相邻的重叠空间数据与不重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;以得到第四待定字符串;
若该行的第一个空间数据之前和该行的最后一个终点的空间数据之后均不存在无空间数据的像素,则将所述第四待定字符串作为该行的行像素索引字符串;
若该行的第一个空间数据之前存在无空间数据的像素,该行最后一个终点的空间数据之后不存在无空间数据的像素,则在第四待定字符串之前加入所述表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
若该行的第一个空间数据之前不存在无空间数据的像素,该行最后一个终点的空间数据之后存在无空间数据的像素,则在第四待定字符串之后加入所述表示该行最后一个终点的空间数据之后存在的无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
6.根据权利要求1~5任一项所述的方法,其特征在于,将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,具体包括:
将地图瓦片尺寸字符串、像素矩阵各行的行索引字符串和各行的行像素索引字符串依次拼接得到所述地图瓦片的索引字符串,其中,拼接后的行索引字符串的对应的行顺序与拼接后的行像素索引字符串对应的行顺序相同。
7.一种数据查询方法,其特征在于,电子地图被按照预置的地图瓦片尺寸分割成大小相同的地图瓦片,且每个地图瓦片建立有对应的瓦片坐标系,该瓦片坐标系以像素为单位将该地图瓦片划分为像素矩阵,所述方法包括:
接收数据查询请求,所述查询请求包括待查询位置的经纬度坐标和电子地图比例尺;
从预存的电子地图比例尺、地图瓦片的关联关系中,获取所述查询请求中的电子地图比例尺对应的地图瓦片,并从该地图瓦片中确定出包含所述经纬度坐标的地图瓦片;
从预存的电子地图比例尺、地图瓦片ID号以及地图瓦片索引字符串的关联关系中,获取包含所述经纬度坐标的地图瓦片对应的索引字符串;
根据获取的索引字符串中的地图瓦片尺寸字符串以及所述待查询位置的经纬度坐标,确定所述待查询位置在所述地图瓦片的瓦片坐标系中的像素坐标;
根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,并从该行索引字符串所指示的行像素索引字符串的首个字符在所述索引字符串的位置处开始,获取行像素索引字符串;
根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号;
当解析出数据编号时,获取与所述数据编号对应的空间数据。
8.根据权利要求7所述的方法,其特征在于,所述根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号,具体包括:
预置变量N;
依次遍历所述行像素索引字符串;
若遍历得到所述行像素索引字符串仅包含占位像素字符串时,确定不能从所述行像素索引字符串中解析得到数据编号;
若遍历得到所述行像素索引字符串包含起点字符串、占位像素索引字符串和终点字符串时,在每遍历到一个起点字符串时则从该起点字符串中解析数据编号,并缓存该数据编号;在每遍历到一个占位像素索引字符串时,对该占位像素索引字符串进行解析得到像素总数n,则调整N=N+n;以及在每遍历到一个终点字符串时,则从该终点字符串中解析出数据编号,并判断N值是否大于或等于所述待查询位置的像素坐标的列坐标;若否,则将缓存的与从所述终点字符串中解析出的数据编号一致的数据编号删除,并继续遍历所述行像素索引字符串中的下一个字符;若是,则将缓存的数据编号确定为从所述行像素索引字符串中解析得到的数据编号。
9.根据权利要求7所述的方法,其特征在于,所述行索引字符串由地图瓦片尺寸字符串、地图瓦片的像素矩阵各行的行索引字符串和各行的行像素索引字符串依次拼接得到,且各行的行索引字符串的长度相同,则根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,具体包括:
依次遍历行索引字符串,当遍历完D+(N-1)*L个字符后,开始从索引字符串中获取该待查询位置的行坐标对应行的行索引字符串,所述D为地图瓦片尺寸字符串的长度,N为所述待查询位置的行坐标,所述L为一个行索引字符串的长度。
10.一种建立数据索引的装置,其特征在于,针对一固定的电子地图比例尺的电子地图,包括:
地图瓦片分割单元,用于按照预置的地图瓦片尺寸,将电子地图分割成大小相同的地图瓦片,并为分割得到的每个地图瓦片分配唯一的ID号;
瓦片坐标系建立单元,用于针对每一个地图瓦片,建立瓦片坐标系,该瓦片坐标系以像素为单位将所述地图瓦片划分为像素矩阵;
空间数据编号单元,用于对地图瓦片中包含的空间数据进行编号,得到每个空间数据的数据编号;
行像素索引字符串生成单元,用于针对所述像素矩阵的每一行,根据地图瓦片中空间数据在该行的分布情况和空间数据的数据编号,生成行像素索引字符串;
索引字符串生成单元,用于将所述像素矩阵各行的行像素索引字符串、行索引字符串及地图瓦片尺寸字符串按预置规则拼接,得到用于索引所述地图瓦片中的空间数据的索引字符串,所述行索引字符串用于指示每一行对应的行像素索引字符串的首个字符在所述地图瓦片对应的索引字符串中的位置;
存储单元,用于关联存储所述电子地图比例尺、该电子地图比例尺下地图瓦片的ID号及索引字符串。
11.根据权利要求10所述的装置,其特征在于,所述行像素索引字符串生成单元,具体包括:
第一遍历单元,用于依次遍历该行的第一个像素到该行的最后一个像素;
第一拼接单元,用于若所述第一遍历单元遍历得到该行像素均无空间数据,则将表示占位像素字符串标识的字符和该行中无空间数据的像素总数的字符拼接,得到占位像素索引字符串,并将该占位像素索引字符串作为该行的行像素索引字符串;
第二拼接单元,用于若所述第一遍历单元遍历得到该行像素均有空间数据且不同的空间数据占据的像素互不重叠,则按照空间数据在该行的分布顺序,将各空间数据对应的空间字符串拼接成行像素索引字符串,一个空间数据字符串包括:起点字符串、占位像素索引字符串、终点字符串,所述占位像素索引字符串包括表示占位像素字符串标识的字符和空间数据在该行所占据的像素总数的字符;所述起点字符串包括表示空间数据的起点标识字符和空间数据的数据编号的字符,所述终点字符串包括表示所述空间数据的终点标识字符和空间数据的数据编号的字符;
第三拼接单元,用于若所述第一遍历单元遍历得到该行像素均有空间数据且不同的空间数据之间均存在重叠的像素,则生成重叠空间数据字符串,并将所述重叠空间数据字符串作为该行的行像素索引字符串,所述重叠空间数据字符串包括:起点字符串、占位像素索引字符串及终点字符串,其中,在重叠空间数据字符串中每个空间数据的起点字符串按照所述空间数据的起点在该行的排列顺序进行排列,若两个起点字符串对应的两个空间数据的起点不重合,则在两个起点字符串之间加入一个占位像素索引字符串,在位于起点字符串与终点字符串之间的占位像素索引字符串之后将每个空间数据的终点字符串按照空间数据的终点在该行的排列顺序进行排列,若两个终点字符串对应的两个空间数据的终点不重合,则在两个终点字符串之间加入一个占位像素索引字符串;其中,位于两个起点字符串之间的占位像素索引字符串表示的是位于两个起点字符串对应的两个空间数据的起点之间的数据在该行占据的像素总数;位于起点字符串和终点字符串之间的占位像素索引字符串表示的是:位于起点字符串对应的空间数据的起点和终点字符串对应的空间数据的终点之间的数据在该行占据的像素总数;位于终点字符串之间的占位像素索引字符串表示的是:位于两个终点字符串对应的两个空间数据的终点之间的数据在该行占据的像素总数;
第四拼接单元,用于若所述第一遍历单元遍历得到该行像素均有空间数据且不同的空间数据既有重叠也有不重叠,则:针对不重叠的空间数据,生成该不重叠的空间数据对应的空间字符串;针对重叠的空间数据,生成与重叠的空间数据对应的重叠空间数据字符串;按照不重叠的空间数据、重叠的空间数据在该行的分布顺序,拼接相应的空间字符串与重叠空间数据字符串,得到行像素索引字符串;
第五拼接单元,用于若所述第一遍历单元遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据占据的像素互不重叠,则:生成各空间数据对应的空间字符串,若该行的第一空间数据之前存在无空间数据的像素则生成表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,若该行的最后一空间数据之后存在无空间数据的像素则生成表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照空间数据、无空间数据的像素的分布顺序,拼接相应的空间字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
第六拼接单元,用于若所述第一遍历单元遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据之间均存在重叠的像素,则:针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串;按照该行的重叠的空间数据、无空间数据的像素的分布顺序,拼接相应的重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串;
第七拼接单元,用于若所述第一遍历单元遍历得到该行像素中既存在分布了空间数据的像素,又存在无空间数据的像素,且分布在该行的不同空间数据既有重叠也有不重叠,则:针对不重叠的空间数据生成空间字符串,针对重叠的空间数据生成重叠空间数据字符串,若该行的第一个空间数据之前存在无空间数据的像素则生成表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,若该行的最后一个终点的空间数据之后存在无空间数据的像素则生成表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,若相邻的两个空间数据之间存在无空间数据的像素则生成表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串;按照该行的无重叠的空间数据、重叠的空间数据以及无空间数据的像素的分布顺序,拼接相应的空间字符串、重叠空间数据字符串和占位像素索引字符串,得到该行对应的行像素索引字符串。
12.根据权利要求11所述的装置,其特征在于,所述第五拼接单元,具体包括:
第一待定字符串生成单元,用于按照该行的空间数据的分布顺序,拼接各空间数据对应的空间字符串,得到第一待定字符串;
第二待定字符串生成单元,用于若相邻的空间数据之间存在无空间数据的像素,则在所述第一待定字符串中相应的两个空间字符串之间加入所述表示该相邻两个空间数据之间无空间数据的像素总数的占位像素索引字符串,得到第二待定字符串;
第五拼接单元第一生成子单元,用于若该行的第一个空间数据之前以及最后一个空间数据之后均不存在无空间数据的像素,则将所述第二待定字符串作为该行的行像素索引字符串;
第五拼接单元第二生成子单元,用于若该行的第一个空间数据之前存在无空间数据的像素,以及最后一个空间数据之后不存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该第一空间数据之前无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
第五拼接单元第三生成子单元,用于若该行的第一个空间数据之前不存在无空间数据的像素,以及该行最后一个空间数据之后存在无空间数据的像素,则在所述第二待定字符串的后面加入所述表示该最后一个空间数据之后无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
第五拼接单元第四生成子单元,用于若该行的第一个空间数据之前以及最后一个空间数据之后均存在无空间数据的像素,则在所述第二待定字符串的前面加入所述表示该行中在所述第一个空间数据之前的无空间数据的像素的总数的占位像素索引字符串,以及在所述第二待定字符串的后面加入所述表示该行中在所述最后一个空间数据之后的无空间数据的像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
13.根据权利要求11所述的装置,其特征在于,所述第六拼接单元,具体包括:
第六拼接单元第一生成子单元,用于若该行的第一个空间数据之前和最后一个终点的空间数据之后均存在无空间数据的像素,则将所述表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串和表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串;
第六拼接单元第二生成子单元,用于若该行的第一个空间数据之前存在无空间数据的像素,且该行的最后一个终点的空间数据之后不存在无空间数据的像素,则将表示第一空间数据之前无空间数据的像素的总数的占位像素索引字符串、重叠空间数据字符串,按此顺序拼接得到该行对应的行像素索引字符串;
第六拼接单元第三生成子单元,用于若该行的第一个空间数据之前不存在无空间数据的像素,且该行最后一个终点的空间数据之后存在无空间数据的像素,则将重叠空间数据字符串、表示该行最后一个终点的空间数据之后无空间数据的像素总数的占位像素索引字符串,按此顺序拼接得到该行对应的行像素索引字符串。
14.根据权利要求11所述的装置,其特征在于,所述第七拼接单元,具体包括:
第三待定字符串生成单元,用于按照重叠的空间数据与不重叠的空间数据在该行的分布顺序,拼接空间字符串和重叠空间数据字符串,得到第三待定字符串;
第四待定字符串生成单元,用于若该行的相邻的两个无重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个空间字符串之间加入用于表示该两个相邻的无重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若该行的相邻的两个重叠空间数据之间存在无空间数据的像素,则在所述第三待定字符串中相应的两个重叠空间数据字符串之间加入表示该两个相邻的重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;若相邻的重叠空间数据与不重叠的空间数据之间存在无空间数据的像素时,在所述第三待定字符串中相应的重叠空间数据字符串和空间字符串之间加入表示该两个相邻的重叠空间数据与不重叠空间数据之间无空间数据的像素总数的占位像素索引字符串;以得到第四待定字符串;
第七拼接单元第一生成子单元,用于若该行的第一个空间数据之前和该行的最后一个终点的空间数据之后均不存在无空间数据的像素,则将所述第四待定字符串作为该行的行像素索引字符串;
第七拼接单元第二生成子单元,用于若该行的第一个空间数据之前存在无空间数据的像素,该行最后一个终点的空间数据之后不存在无空间数据的像素,则在第四待定字符串之前加入所述表示该行第一个空间数据之前无空间数据像素的总数的占位像素索引字符串,得到该行对应的行像素索引字符串;
第七拼接单元第三生成子单元,用于若该行的第一个空间数据之前不存在无空间数据的像素,该行最后一个终点的空间数据之后存在无空间数据的像素,则在第四待定字符串之后加入所述表示该行最后一个终点的空间数据之后存在的无空间数据的像素总数的占位像素索引字符串,得到该行对应的行像素索引字符串。
15.根据权利要求11~14任一项所述的装置,其特征在于,所述索引字符串生成单元,具体用于:
将地图瓦片尺寸字符串、像素矩阵各行的行索引字符串和各行的行像素索引字符串依次拼接得到所述地图瓦片的索引字符串,其中,拼接后的行索引字符串的对应的行顺序与拼接后的行像素索引字符串对应的行顺序相同。
16.一种数据查询装置,其特征在于,电子地图被按照预置的地图瓦片尺寸分割成大小相同的地图瓦片,且每个地图瓦片建立有对应的瓦片坐标系,该瓦片坐标系以像素为单位将该地图瓦片划分为像素矩阵,所述装置包括:
数据查询请求接收单元,用于接收数据查询请求,所述查询请求包括待查询位置的经纬度坐标和电子地图比例尺;
地图瓦片确定单元,用于从预存的电子地图比例尺、地图瓦片的关联关系中,获取所述查询请求中的电子地图比例尺对应的地图瓦片,并从该地图瓦片中确定出包含所述经纬度坐标的地图瓦片;
索引字符串获取单元,用于从预存的电子地图比例尺、地图瓦片ID号以及地图瓦片索引字符串的关联关系中,获取包含所述经纬度坐标的地图瓦片对应的索引字符串;
像素坐标确定单元,用于根据获取的索引字符串中的地图瓦片尺寸字符串以及所述待查询位置的经纬度坐标,确定所述待查询位置在所述地图瓦片的瓦片坐标系中的像素坐标;
行像素索引字符串获取单元,用于根据所述待查询位置对应的像素坐标的行坐标,从所述索引字符串中获取所述行坐标对应行的行索引字符串,并从该行索引字符串所指示的行像素索引字符串的首个字符在所述索引字符串的位置处开始,获取行像素索引字符串;
数据编号解析单元,用于根据所述行像素索引字符串以及所述像素坐标的列坐标,从所述行像素索引字符串中解析数据编号;
空间数据获取单元,用于当解析出数据编号时,获取与所述数据编号对应的空间数据。
17.根据权利要求16所述的装置,其特征在于,所述数据编号解析单元,具体包括:
预置单元,用于预置变量N;
第二遍历单元,用于依次遍历所述行像素索引字符串;
数据编号解析第一子单元,用于若所述第二遍历单元遍历得到所述行像素索引字符串仅包含占位像素字符串时,确定不能从所述行像素索引字符串中解析得到数据编号;
数据编号解析第二子单元,用于若所述第二遍历单元遍历得到所述行像素索引字符串包含起点字符串、占位像素索引字符串和终点字符串时,在每遍历到一个起点字符串时则从该起点字符串中解析数据编号,并缓存该数据编号;在每遍历到一个占位像素索引字符串时,对该占位像素索引字符串进行解析得到像素总数n,则调整N=N+n;以及在每遍历到一个终点字符串时,则从该终点字符串中解析出数据编号,并判断N值是否大于或等于所述待查询位置的像素坐标的列坐标;若否,则将缓存的与从所述终点字符串中解析出的数据编号一致的数据编号删除,并触发所述第二遍历单元继续遍历所述行像素索引字符串中的下一个字符;若是,则将缓存的数据编号确定为从所述行像素索引字符串中解析得到的数据编号。
18.根据权利要求16所述的装置,其特征在于,所述行像素索引字符串获取单元,从所述索引字符串中获取所述行坐标对应行的行索引字符串,具体用于:
依次遍历行索引字符串,当遍历完D+(N-1)*L个字符后,开始从索引字符串中获取该待查询位置的行坐标对应行的行索引字符串,所述D为地图瓦片尺寸字符串的长度,N为所述待查询位置的行坐标,所述L为一个行索引字符串的长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310508457.9A CN104572755B (zh) | 2013-10-24 | 2013-10-24 | 一种建立数据索引的方法、数据查询方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310508457.9A CN104572755B (zh) | 2013-10-24 | 2013-10-24 | 一种建立数据索引的方法、数据查询方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572755A CN104572755A (zh) | 2015-04-29 |
CN104572755B true CN104572755B (zh) | 2018-01-30 |
Family
ID=53088835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310508457.9A Active CN104572755B (zh) | 2013-10-24 | 2013-10-24 | 一种建立数据索引的方法、数据查询方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572755B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447152A (zh) * | 2015-11-30 | 2016-03-30 | 明博教育科技股份有限公司 | 一种基础教育电子课本编码的方法 |
CN109074622B (zh) | 2016-04-27 | 2022-04-05 | 北京嘀嘀无限科技发展有限公司 | 确定运输服务路线的系统及方法 |
CN107316094A (zh) * | 2016-04-27 | 2017-11-03 | 滴滴(中国)科技有限公司 | 一种通勤线路挖掘方法及装置 |
CN106126565B (zh) * | 2016-06-17 | 2019-04-02 | 成都新橙北斗智联有限公司 | 一种沿轨迹线生成地图瓦片坐标的方法 |
CN110019336B (zh) * | 2017-10-30 | 2021-04-30 | 北京京东尚科信息技术有限公司 | 一种查询数据的方法和装置 |
CN108671541B (zh) * | 2018-04-27 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种数据存储方法和装置以及存储介质 |
CN109302451A (zh) * | 2018-09-03 | 2019-02-01 | 视联动力信息技术股份有限公司 | 一种图片文件的展示方法和系统 |
CN109726257B (zh) * | 2018-12-18 | 2021-01-12 | 北京旷视机器人技术有限公司 | 索引地图的构建方法、自主导航的方法、装置和电子设备 |
CN110515942B (zh) * | 2019-07-12 | 2023-08-04 | 同济大学 | 一种序列化车道线地图的存储及检索方法 |
CN110610539A (zh) * | 2019-08-13 | 2019-12-24 | 北京中色地科测绘有限公司 | 地层曲面构建方法和装置、设备及储存介质 |
CN110660029B (zh) * | 2019-09-12 | 2022-05-06 | 深兰科技(上海)有限公司 | 一种图像处理方法、装置、设备及存储介质 |
CN111782425A (zh) * | 2020-07-07 | 2020-10-16 | 北京无线电测量研究所 | 基于索引队列的任务间通信方法、装置、计算机设备 |
WO2022095010A1 (en) * | 2020-11-09 | 2022-05-12 | Qualcomm Incorporated | Methods and apparatus for rasterization of compute workloads |
CN112765422B (zh) * | 2021-01-18 | 2024-04-05 | 深轻(上海)科技有限公司 | 一种二维数据表格的查表方法 |
CN112990182B (zh) * | 2021-05-10 | 2021-09-21 | 北京轻松筹信息技术有限公司 | 筹款信息审核方法、系统及电子设备 |
CN114994673B (zh) * | 2022-08-04 | 2022-10-21 | 南京隼眼电子科技有限公司 | 用于雷达的道路地图生成方法、装置及存储介质 |
CN115344740B (zh) * | 2022-10-15 | 2023-01-10 | 深圳安德空间技术有限公司 | 一种基于三维探地雷达数据的全时空检索方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622349A (zh) * | 2011-01-26 | 2012-08-01 | 北京四维图新科技股份有限公司 | 空间位置信息数据库的处理方法及装置 |
CN103049461A (zh) * | 2011-10-12 | 2013-04-17 | 天眼卫星科技有限公司 | 空间索引的产生方法与图形对象显示方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945569B2 (en) * | 2004-03-31 | 2011-05-17 | Hewlett-Packard Development Company, L.P. | Method and apparatus for querying spatial data |
US8352480B2 (en) * | 2010-12-20 | 2013-01-08 | Nokia Corporation | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
-
2013
- 2013-10-24 CN CN201310508457.9A patent/CN104572755B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622349A (zh) * | 2011-01-26 | 2012-08-01 | 北京四维图新科技股份有限公司 | 空间位置信息数据库的处理方法及装置 |
CN103049461A (zh) * | 2011-10-12 | 2013-04-17 | 天眼卫星科技有限公司 | 空间索引的产生方法与图形对象显示方法 |
Non-Patent Citations (2)
Title |
---|
An index and retrieval method of spatial data based on GeoSOT global discrete grid system;Nan Lu et al;《IEEE International Conference on Geoscience and Remote Sensing Symposium》;20130721;第4519-4522页 * |
面向集聚分布空间数据的混合式索引方法研究;周侗等;《地理与地理信息科学》;20100131;第26卷(第1期);第7-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104572755A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572755B (zh) | 一种建立数据索引的方法、数据查询方法及相关装置 | |
CN102819530A (zh) | 电子地图的显示方法及装置 | |
CN107451150B (zh) | 地理数据呈现方法及装置 | |
CN110110248B (zh) | 一种实现电子地图沿线展示全景图像的计算机系统 | |
CN109299298A (zh) | 多尺度影像模型的构建方法、装置、应用方法及系统 | |
CN101364310A (zh) | 一种三维模型图形的生成方法和装置 | |
CN102135972A (zh) | 业务树数据处理方法、系统、客户端和服务器 | |
CN110297924A (zh) | 点云数据的处理及渲染方法、装置、设备及存储介质 | |
CN110399441A (zh) | 一种海量点数据聚合渲染方法、装置、设备及存储介质 | |
CN114020756B (zh) | 遥感影像实时地图服务发布方法和装置 | |
CN103885983A (zh) | 一种旅游线路的确定方法、优化方法以及装置 | |
CN107220274A (zh) | 一种可视化数据接口集市实现方法 | |
CN107885767A (zh) | 一种页面操作方法及装置 | |
CN103839479A (zh) | 一种高效电子地图注记交互方法 | |
CN108491445A (zh) | 区域内指标数据的展示方法及系统 | |
CN103942258A (zh) | 基于道路编码的街景影像存储方法及装置 | |
CN109325089A (zh) | 一种非定点对象查询方法、装置、终端设备及存储介质 | |
CN107423037A (zh) | 应用程序接口定位方法及设备 | |
CN115114356A (zh) | 一种基于矢量数据前端展示的实时脱密化方法 | |
CN103299297A (zh) | 文件目录存储方法、检索方法和设备 | |
CN111913951B (zh) | 一种叠加电网数据的地图矢量数据切片方法 | |
CN108959439B (zh) | 一种数据模板生成方法及系统 | |
CN104298764B (zh) | 一种多时相遥感影像数据库的创建方法、访问方法及系统 | |
CN104991993A (zh) | 一种场地信息图形的处理方法 | |
CN102402567A (zh) | 局部对应抽出装置以及局部对应抽出方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200514 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 102200, No. 8, No., Changsheng Road, Changping District science and Technology Park, Beijing, China. 1-5 Patentee before: AUTONAVI SOFTWARE Co.,Ltd. |