CN113821539A - 区域查询方法、装置、电子设备和可读存储介质 - Google Patents
区域查询方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN113821539A CN113821539A CN202111045178.4A CN202111045178A CN113821539A CN 113821539 A CN113821539 A CN 113821539A CN 202111045178 A CN202111045178 A CN 202111045178A CN 113821539 A CN113821539 A CN 113821539A
- Authority
- CN
- China
- Prior art keywords
- target
- index
- region
- character string
- data 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000013507 mapping Methods 0.000 claims abstract description 31
- 238000006243 chemical reaction Methods 0.000 claims description 57
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 201000011243 gastrointestinal stromal tumor Diseases 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种区域查询方法、装置、电子设备和可读存储介质,涉及空间索引技术领域。本发明实施例通过构建包括字符串与区域编码的映射关系的字典树,在获取目标设备的轨迹点数据后,通过确定轨迹点数据对应的目标字符串索引,根据目标字符串索引,即可在字典树中查找目标字符串索引对应的目标区域编码,并根据目标区域编码,确定得到目标设备所属的区域,如此,大大提升了轨迹的定位效率,能够快速高效的定位出轨迹所属的区域,满足实时的统计需求。
Description
技术领域
本发明涉及空间索引技术领域,具体而言,涉及一种区域查询方法、装置、电子设备和可读存储介质。
背景技术
随着地图行业定位技术的发展,每日产生的轨迹数据量已突破100亿级别,而每秒最高可产生18万以上的轨迹数据量。目前,现有空间索引的计算性能效率不高,无法短时间内运算大量数据,无法满足实时地分区域统计设备的日活量以及轨迹量的统计需求。
发明内容
基于此,本发明实施例提供一种区域查询方法、装置、电子设备和可读存储介质,可以大大提升轨迹定位效率,能够快速高效地定位轨迹所属的区域,满足统计需求。
本发明的实施例可以通过以下方式实现:
第一方面,本发明实施例提供一种区域查询方法,所述方法包括:
获取目标设备的轨迹点数据,并确定所述轨迹点数据对应的目标字符串索引;
根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码;其中,所述字典树中包括字符串与区域编码的映射关系;
根据所述目标区域编码,确定所述目标设备所属的区域。
在可选的实施方式中,所述确定所述轨迹点数据对应的目标字符串索引,包括:
基于H3地理索引,确定得到所述轨迹点数据的目标空间索引;
对所述目标空间索引进行转换,得到所述轨迹点数据对应的目标字符串索引。
在可选的实施方式中,所述对所述目标空间索引进行转换,得到所述轨迹点数据对应的目标字符串索引,包括:
对所述目标空间索引进行二进制转换,得到所述目标空间索引的二进制值;
根据索引层级,对所述目标空间索引的二进制值进行转换,得到所述轨迹点数据对应的目标字符串索引。
在可选的实施方式中,所述根据索引层级,对所述目标空间索引的二进制值进行转换,得到所述轨迹点数据对应的目标字符串索引,包括:
根据索引层级,将所述目标空间索引的二进制值划分为多个数据组;
分别将各所述数据组包括的二进制值进行转换,得到各所述数据组对应的转换数值;
将各所述数据组对应的转换数值进行拼接,得到所述轨迹点数据对应的目标字符串索引。
在可选的实施方式中,所述根据索引层级,将所述目标空间索引的二进制值划分为多个数据组,包括:
根据所述索引层级,将所述目标空间索引的二进制值划分为第一数据组以及第二数据组;其中,所述第一数据组包括的二进制值表征所述目标空间索引对应的基础单元格的位置,所述目标空间索引对应的不同层级的网格的位置;
所述分别将各所述数据组包括的二进制值进行转换,得到各所述数据组对应的转换数值,包括:
将所述第一数据组包括的二进制值进行转换,得到所述第一数据组对应的转换数值;
将各所述第二数据组包括的二进制值进行转换,得到各所述第二数据组对应的转换数值。
在可选的实施方式中,所述根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码的步骤包括:
将所述目标字符串索引与所述字典树中的预设索引进行比对,得到所述字典树中与所述目标字符串索引匹配的目标预设索引;
根据所述映射关系,获取所述目标预设索引对应的区域编码,将所述目标预设索引对应的区域编码设置为所述目标字符串索引对应的目标区域编码。
在可选的实施方式中,所述根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码之前,所述方法包括:
将预设范围划分为预设层级的网格,确定得到所述预设范围内各区域对应的目标网格;
根据各所述区域对应的目标网格的索引,得到各所述区域的空间索引;
对各所述区域的空间索引进行转换,得到各所述区域对应的字符串索引;
建立各所述区域的区域编码与各所述区域的字符串索引的映射关系,根据所述映射关系,构建字典树。
在可选的实施方式中,所述将预设范围划分为预设层级的网格,确定得到所述预设范围内各区域对应的目标网格,包括:
将预设范围划分为预设层级的网格,得到所述预设范围内各区域在预设层级的网格;
将各所述区域在预设层级的网格进行逐级压缩,得到各所述区域对应的目标网格,所述区域对应的目标网格包括至少一个层级的网格。
第二方面,本发明实施例提供一种区域查询装置,所述区域查询装置包括:
索引确定模块,用于获取目标设备的轨迹点数据,并确定所述轨迹点数据对应的目标字符串索引;
编码查询模块,用于根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码,根据所述目标区域编码,确定所述目标设备所属的区域;其中,所述字典树中包括字符串与区域编码的映射关系。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述任一实施方式所述的区域查询方法。
第四方面,本发明实施例提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行前述任一实施方式所述的区域查询方法。
本发明实施例提供的区域查询方法、装置、电子设备和可读存储介质,通过构建包括字符串与区域编码的映射关系的字典树,在获取目标设备的轨迹点数据后,通过确定轨迹点数据对应的目标字符串索引,根据目标字符串索引,即可在字典树中查找目标字符串索引对应的目标区域编码,进而根据目标区域编码,确定得到目标设备所属的区域,如此,大大提升了轨迹的定位效率,能够快速高效的定位出轨迹所属的区域,满足实时的统计需求。
附图说明
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
图1为本发明实施例所提供的电子设备的一种结构示意图。
图2为本发明实施例所提供的区域查询方法的一种流程示意图。
图3为本发明实施例所提供的区域网格划分的一种示意图。
图4为本发明实施例所提供的区域查询方法的一种示例应用图。
图5为本发明实施例所提供的区域查询装置的一种方框示意图。
图标:100-电子设备;10-区域查询装置;11-索引确定模块;12-编码查询模块;20-存储器;30-处理器;40-通信单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
如背景技术所述,随着地图行业定位技术的发展,每日产生的轨迹数据量已突破100亿级别,而每秒最高可产生18万以上的轨迹数据量。目前,现有的空间索引大多采用两种:一是直接通过数据库内置空间函数(如Postgresql中的st_contains)来判断点与多边形的空间关系,该方案使用了成熟的数据库空间索引(如Postgresql中的GIST索引),但是每秒钟18万以上的数据库访问调用,对数据库来说负载压力过大,容易导致数据库系统崩溃。二是可以通过对行政区域创建Rtree索引,采取先模糊判断再精确多边形包含判断的方式,这种方式由于最终的多边形空间包含点的判断速度较慢,也不能满足统计的效率需求。
也就是说,现有技术中的空间索引的计算性能效率不高,无法短时间内运算大量数据,无法满足实时地分区域统计设备的日活量以及轨迹量的统计需求。
基于此,本实施例提供的区域查询方法、装置、电子设备和可读存储介质,通过构建包括字符串与区域编码的映射关系的字典树,在获取目标设备的轨迹点数据后,通过确定轨迹点数据对应的目标字符串索引,根据目标字符串索引,即可在字典树中查找目标字符串索引对应的目标区域编码,进而根据目标区域编码,确定得到目标设备所属的区域,如此,大大提升了轨迹的定位效率,能够快速高效的定位出轨迹所属的区域,满足了实时地分区域统计设备的日活量以及轨迹量的统计需求。
请参阅图1,图1为本实施例所提供的电子设备的一种结构示意图。如图1所示,电子设备100包括区域查询装置10、存储器20、处理器30及通信单元40,存储器20存储有处理器30可执行的机器可读指令,当电子设备100运行时,处理器30与存储器20之间通过总线通信,处理器30执行机器可读指令,并执行区域查询方法。
存储器20、处理器30以及通信单元40各元件相互之间直接或间接地电性连接,以实现信号的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。区域查询装置10包括至少一个可以软件或固件(firmware)的形式存储于存储器20中的软件功能模块。处理器30用于执行存储器20中存储的可执行模块(例如区域查询装置10所包括的软件功能模块或计算机程序)。
其中,存储器20可以是,但不限于,随机读取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
在一些实施例中,处理器30用以执行本实施例中描述的一个或多个功能。在一些实施例中,处理器30可以包括一个或多个处理核(例如,单核处理器(S)或多核处理器(S))。仅作为举例,处理器30可以包括中央处理单元(Central Processing Unit,CPU)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用指令集处理器(Application Specific Instruction-setProcessor,ASIP)、图形处理单元(GraphicsProcessing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field Programmable GateArray,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、简化指令集计算机(ReducedInstruction Set Computing,RISC)或微处理器等,或其任意组合。
本实施例中,存储器20用于存储程序,处理器30用于在接收到执行指令后,执行程序。本实施例任一实施方式所揭示的流程定义的方法可以应用于处理器30中,或者由处理器30实现。
通信单元40用于通过网络建立电子设备100与其他设备之间的通信连接,并用于通过网络收发数据。
在一些实施方式中,网络可以是任何类型的有线或者无线网络,或者是他们的结合。仅作为示例,网络可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(Near Field Communication,NFC)网络等,或其任意组合。
在本实施例中,电子设备可以是笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等设备,也可以是由多台物理服务器组成的服务集群,本实施例对电子设备的具体类型不作任何限制。
可以理解地,图1所示的结构仅为示意。电子设备还可以具有比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。图1所示的各组件可以采用硬件、软件或其组合实现。
基于图1的实现架构,本实施例提供一种区域查询方法,由图1所示的电子设备执行,下面对本实施例提供的区域查询方法的步骤进行详细阐述。请结合参阅图2,本实施例所提供的区域查询方法包括步骤S101至步骤S103。
步骤S101:获取目标设备的轨迹点数据,并确定轨迹点数据对应的目标字符串索引。
其中,目标设备可以是包括定位功能的移动设备,如移动终端,目标设备也可以设置于移动物体上的定位设备,如设置于车辆上的定位设备。
在本实施例中,目标设备可以包括惯性测量单元(Inertial Measurement Unit,IMU)、RTK测量单元、Lidar计算单元以及定位系统单元(Global Positioning System)等。目标设备可以通过这些功能单元实时获取轨迹点数据。在本实施例中,目标设备的轨迹点数据包括目标设备的经纬度坐标。
为了有序且快速地对目标设备的轨迹点数据进行处理,在本实施例中,可以通过消息队列,如kafka消息队列,获取目标设备的轨迹点数据。其中,目标设备在产生轨迹点数据后,可以将轨迹点数据发送至消息队列,电子设备可以通过读取消息队列中的轨迹点数据,对轨迹点数据进行处理,得到目标设备所属的区域。
在本实施例中,在获取得到目标设备的轨迹点数据后,通过对轨迹点数据进行转换或编码,即可确定得到轨迹点数据对应的目标字符串索引。
步骤S102:根据目标字符串索引,在预先构建的字典树中查找目标字符串索引对应的目标区域编码。
其中,在得到轨迹点数据对应的目标字符串索引后,即可在字典树中查找目标字符串索引对应的目标区域编码。
在本实施例中,字典树中包括各字符串与各区域编码的映射关系,在字典树中查找目标字符串索引对应的目标区域编码时,可以先查找字典树中是否存在与目标字符串索引匹配的字符串索引,若存在与目标字符串索引匹配的字符串索引,则根据映射关系,获取与目标字符串索引匹配的字符串索引对应的区域代码,在获取得到与目标字符串索引匹配的字符串索引对应的区域代码后,即可将该区域代码设置目标字符串对应的目标区域代码。
若字典树中未存在与目标字符串索引匹配的字符串索引,则判定轨迹点数据未属于任何预先划分的区域或者判定轨迹点数据有误,从而可以将轨迹点数据舍弃,或者对轨迹点数据进行报错提示。
步骤S103:根据目标区域编码,确定目标设备所属的区域。
在本实施例中,每一个区域都对应设置有区域编码,每个区域的区域编码对应一个字符串索引。在基于目标字符串索引查找到对应的目标区域编码后,即可将目标区域编码与每个区域的区域编码进行对比,查找出与目标区域编码相同的区域编码,然后将查找出的区域编码对应的区域,作为目标设备所属的区域。
本实施例所提供的区域查询方法,通过构建包括字符串与区域编码的映射关系的字典树,在获取目标设备的轨迹点数据后,通过确定轨迹点数据对应的目标字符串索引,根据目标字符串索引,即可在字典树中查找目标字符串索引对应的目标区域编码,进而根据目标区域编码,确定得到目标设备所属的区域,如此,大大提升了轨迹的索引计算效率,提升了轨迹的定位效率,能够快速高效的定位出轨迹所属的区域。
本实施例通过对目标设备实时产生的轨迹点进行定位,得到目标设备的轨迹点所属的区域,而在得到目标设备每个轨迹点所属的区域后,即可分区域聚类统计目标设备的轨迹点,满足了实时地分区域统计设备的日活量以及轨迹量的统计需求。
由于字典树是对于字典的一种存储方式,是一种数据结构,字典树的本质是把很多字符串拆成单个字符的形式,以树的方式存储起来,其中,根节点不包含字符,除根节点外每一个节点都只包含一个字符,从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串,且每个节点的所有子节点包含的字符都不相同。
在本实施例中,在构建字典树时,可先确定得到每个区域的字符串索引,然后将每个区域的字符串索引与每个区域的区域编码进行关联,即建立映射关系,然后基于映射关系,构建字典数据。可选地,可通过以下步骤构建得到字典树:
(1)将预设范围划分为预设层级的网格,确定得到预设范围内各区域对应的目标网格。
(2)根据各区域对应的目标网格的索引,得到各区域的空间索引。
(3)对各区域的空间索引进行转换,得到各区域对应的字符串索引。
(4)建立各区域的区域编码与各区域的字符串索引的映射关系,根据映射关系,构建字典树。
其中,预设范围指的是预设的地理范围,其具体范围可以根据实际需求而设定,例如,预设范围可以是一个省所包括的地理范围,也可以是一个市包括的地理范围,还可以是一个国家包括的地理范围,具体的本实施例不做限定。
预设范围内的各区域可以表征在预设的地理范围内划分的各行政区域,如镇、县、街道等等,也可以表征在预设的地理范围内自定义划分的地理区域。
在本实施例中,对预设范围进行网格划分时,采用H3地理索引进行划分。H3地理索引为一种六边形地理空间索引,通过H3地理索引对预设范围进行网格划分时,可以将预设范围划分为多个六边形网格。
H3地理索引可以提供多个层级的网格划分,通过H3地理索引对预设范围进行网格划分时,可以逐级划分,先确定第一层级包括的网格,然后对第一层级的每个网格进行细分,即将第一层级的每个网格继续划分为多个网格,得到第二层级包括的网格,之后,又对第二层级的每个网格进行细分,即将第二层级的每个网格又继续划分为多个网格,得到第三层级包括的网格,以此类推,直至划分到预先设置的层级。
需要说明的是,H3地理索引划分的每一层级的每一个网格,均设置有唯一索引,且对于每个网格,该网格的索引根据与该网格对应的上一层级的网格的索引得到,例如,第5层级的A_1网格,由第4层级的A网格划分得到,设第4层级的A网格的索引为abcd,则第5层级的A_1网格的索引为abcde。
在本实施例中,在将预设范围划分为预设层级的网格时,预设层级可以根据实际需求而设定,可以是第5层级、第6层级等等,具体本实施例不做限制。为了提高计算精度,在本实施例中,可以将预设范围划分为第11层级的网格。
在将预设范围划分网格后,即可得到预设范围内各区域对应的网格,然后根据各区域对应的网格的索引,得到各区域的空间索引。
由于每个区域的范围不同,导致每个区域对应的网格数量也不同,而对于范围较大的区域,其对应的网格数量较多,为了简化且准确地表示每个区域的空间索引,在本实施例中,可以通过以下步骤确定预设范围内各区域对应的目标网格:
将预设范围划分为预设层级的网格,得到预设范围内各区域对应的在预设层级的网格。
将各区域对应的在预设层级的网格进行逐级压缩,得到各区域对应的目标网格。
其中,在将预设范围划分为预设层级的网格后,即可得到预设范围内各区域对应的在预设层级的网格。例如,将预设范围划分为第11层级的网格后,即可得到预设范围内各区域对应的在第11层级的网格。
在得到各区域对应的在预设层级的网格后,将各区域在预设层级的网格进行逐级压缩时,针对每个区域,可根据该区域对应的在预设层级的网格的索引进行逐级压缩。
首先,根据该区域对应的在预设层级的网格的索引,在预设层级的网格中,查找出属于上一层级同一网格划分得到的网格,然后,对查找到的网格进行压缩,得到第一网格,其中,第一网格属于预设层级的上一层级。在得到第一网格后,又继续在第一网格中,根据第一网格的索引,查找出属于上一层级同一网格划分得到的网格,并对查找到的网格继续进行压缩,得到第二网格,其中,第二网格属于第一网格所属层级的上一层级。之后,又继续在第二网格中,根据第二网格的索引,查找属于上一层级同一网格划分得到的网格,以此类推,直至无法查找到属于上一层级同一网格划分得到的网格。
其中,根据该区域对应的在预设层级的网格的索引,在预设层级的网格中,查找出属于上一层级同一网格划分得到的网格时,由于对于每个网格来说,该网格的索引根据与该网格对应的上一层级的网格的索引得到,因此,针对预设层级的网格,只需要判断该预设层级的网格的索引的前序(即对应的上一层级的网格的索引)是否相同,对于前序相同的网格,则可以判定属于上一层级同一网格划分得到的网格。可以理解地,对于其他层级的网格,也可采用相同的方式进行判断。
需要说明的是,在查找出属于上一层级同一网格划分得到的网格后,若查找到的网格的数量不满足网格划分的数量,则对查找到的网格不进行压缩。例如,设定每一个网格可以划分为七个网格,假设查找出属于上一层级同一网格划分得到的网格只有四个,不满足网格划分的数量,因此,对查找出的网格不进行压缩。又例如,查找出属于上一层级同一网格划分得到的网格有10个,其中7个网格属于上一层级A网格划分得到的网格,3个网格属于上一层级B网格划分得到的网格,则只需对属于上一层级A网格划分得到的网格进行压缩,对属于上一层级B网格划分得到的网格不进行压缩。
在本实施例中,通过上述过程,将各区域对应的在预设层级的网格进行逐级压缩后,即可得到各区域对应的不同层级的网格,如图3所示,图3为某区域对应的网格,图3中包括多个层级的网格,同一层级的网格的大小相同。
在得到各区域对应的不同层级的网格后,即得到各区域对应的目标网格后,根据各区域对应的目标网格的索引,即可确定得到各区域的空间索引。在一种可选的实施方式中,针对每个区域,可将该区域对应的目标网格的索引进行拼接组合,得到该区域的空间索引。
在得到各区域的空间索引后,对各区域的空间索引进行转换,即可得到各区域对应的字符串索引。
在本实施例中,各区域的空间索引包含了所属每一层级的网格的位置信息(包括顶级的基础单元格的位置信息)以及每一层级的网格对应上一层级的网格的位置关系信息,因此,在得到各区域的空间索引后,可通过位运算的方式,将各区域的空间索引转换成具有层级递归关系的字符串索引。
可选的,通过位运算的方式,将各区域的空间索引转换成具有层级递归关系的字符串索引时,可先将各区域的空间索引进行二进制转换,得到各区域的空间索引的二进制值,然后根据索引层级,对各区域的空间索引的二进制值进行转换,得到各区域对应的字符串索引。
其中,索引层级表征进行网格划分时可划分的层级,例如,对于H3地理索引,由于H3地理索引支持十六种分辨率,进而,采用H3地理索引进行网格划分时,可以划分16个层级的网格,因此,索引层级即表示16个层级。
由于区域的空间索引包括了所属每一层级的网格的位置信息,因此,对空间索引进行二进制转换得到二进制值也同样包括了所属每一层级的网格的位置信息。基于此,针对每个区域,在根据索引层级,对该区域的空间索引的二进值进行转换时,先确定出各层级在该区域的空间索引的二进制值中对应的位数,然后对确定出的位数进行转换,得到转换数值,根据转换数值,即可确定得到该区域的字符串索引。
例如,设定存在三个层级,第一层级在该区域的空间索引的二进制值中对应的位数为第1位到第7位,即第1位到第7位的二进制值表征该区域在第一层级的网格的位置信息。第二层级在该区域的空间索引的二进值中对应的位数为第8位到第10位,即第8位到第10位的二进制值表征该区域在第二层级的网格的位置信息。第三层级在该区域的空间索引的二进值中对应的位数为第11位到第13位,即第11位到第13位的二进制值表征该区域在第三层级的网格的位置信息。在确定出第一层级至第三层级在该区域的空间索引的二进制值中对应的位数后,即可以对二进制值中的第1位至第13位的二进制值进行转换,得到转换数值,然后将转换数值作为该区域的字符串索引。
可选的,对确定出的位数进行转换时,即将确定出的位数对应的二进制值转换为其他进制的值。
为了快速对空间索引进行转换,得到具有层级意义的字符串索引,在本实施例中,根据索引层级,对各区域的空间索引的二进制值进行转换时,针对每个区域,可以根据索引层级,对该区域的空间索引的二进制值划分为多个数据组,然后分别将各数据组包括的二进制值进行转换,得到各数据组对应的转换数值,将各数据组对应的转换数值进行拼接,得到该区域对应的字符串索引。
其中,根据索引层级,对该区域的空间索引的二进制值划分为多个数据组时,可以先确定出各层级在该区域的空间索引的二进制值中对应的位数,然后根据各层级在该区域的空间索引的二进制值中对应的位数进行分组。例如,第一层级在该区域的空间索引的二进制值中对应的位数为第1位到第7位,第二层级在该区域的空间索引的二进值中对应的位数为第8位到第10位,则可将第1位到第7位划分为一个数据组,将第8位到第10位划分为一个数据组,以此类推,对各区域的空间索引的二进制值进行分组。
针对每个区域,在根据索引层级,对该区域的空间索引的二进制值进行分组,得到多个数据组后,对于不同层级对应的数据组,可以采用不同的进制转换方式对数据组包括的二进制值进行转换,例如,可以对第一层级对应的数据组采用十进制进行转换,对第二层级对应的数据组采用八进制进行转换,对第三层级对应的数据组采用十六进制进行转换,也可以采用同一进制进行转换,例如,对所有层级对应的数据组均采用十六进制进行转换。
对于H3地理索引,其划分得到的16个层级的网格中包括位于第一层级的基础单元格,以及根据基础单元格逐级划分得到的位于不同层级的网格。其中,第一层级的基础单元格有122个,每个基础单元格又可划分得到属于下一层级的7个网格,而划分得到的每个网格又可继续划分得到属于下一层级的7个网格,以此类推,逐级划分。为了提高转换效率,在本实施例中,根据索引层级,将各区域的空间索引的二进制值划分为多个数据组时,针对每个区域,可根据索引层级,将该区域的空间索引的二进制值划分为第一数据组以及第二数据组。
其中,第一数据组包括的二进制值表征区域的空间索引对应的基础单元格的位置,第二数据组包括的二进制值表征区域的空间索引对应的不同层级的网格的位置。
在本实施例中,针对每个区域,在根据索引层级,将该区域的空间索引的二进制值划分时,先确定第一层级,即基础单元格所属的层级在该区域的空间索引的二进制值中对应的位数,根据确定得到的第一层级在该区域的空间索引的二进制值中对应的位数,得到第一数据组。然后依次确定其余层级在该区域的空间索引的二进制值中对应的位数,根据确定得到的其余层级在该区域的空间索引的二进制值中对应的位数,得到第二数据组。
由于基础单元格的个数为122个,每个网格又可细分为7个网格,为了能包含每个网格的信息,在本实施例中,第一层级在各区域的空间索引的二进制值中对应的位数为7位,其余各个层级在各区域的空间索引的二进制值中对应的位数分别为3位,相应地,其余层级(15个层级)在该区域的空间索引的二进制值中对应的位数为45位。
因此,在将各区域的空间索引的二进制值划分为第一数据组以及第二数据组时,可以先确定得到第一层级在各区域的空间索引的二进制值中对应的7位数值,将确定得到的7位数值划分为第一数据组,然后将接下来的45位数值划分为第二数据组,以此,将各区域的空间索引的二进制值划分为第一数据组以及第二数据组。例如,对于某区域,其空间索引为600115802229702655,将空间索引进行二进制转换后,得到空间索引的二进制值为:
100001010100000010100010010001111111111111111111111111111111
设定第一数据组对应的位数为第10位至第16位,即第一数据组包括的二进制值为1000000,设定第二数据组对应的位数为第17位至第61位,即第二数据组包括的二进制值为10100010010001111111111111111111111111111。
在将各区域的空间索引的二进制值划分为第一数据组和第二数据组后,即可将将第一数据组包括的二进制值进行转换,得到第一数据组对应的转换数值,以及各第二数据组包括的二进制值进行转换,得到第二数据组对应的转换数值。
在对第一数据组包括的二进制值以及第二数据组包括的二进值进行转换时,可以采用同一种进制对第一数据组包括的二进制值以及第二数据组包括的二进值进行转换,例如,将第一数据组包括的二进制值以及第二数据组包括的二进值均转换为十进制值,也可以采用不同进制对第一数据组包括的二进制值以及第二数据组包括的二进值进行转换,例如,将第一数据组包括的二进制值转换为十进制值,将第二数据组包括的二进制值转换为十六进制值。
可选的,在本实施例中,将第一数据组包括的二进制值转换为十进制值,将第二数据组包括的二进制值转换为八进制值。
针对每个区域,在对该区域对应的各数据组进行转换,得到各数据组对应的转换数值后,将各数据组的转换数值进行拼接,即可得到该区域对应的字符串。
例如,以第一数据组包括的二进制值为1000000,第二数据组包括的二进制值为10100010010001111111111111111111111111111为进行举例说明。
将第一数据组包括的二进制值转换为十进制,可以得到第一数据组对应的转换值为64,将第二数据组包括的二进制值转换为八进制,可以得到第二数据组对应的转换值为24221777777777,其中,7为无效值,可以舍弃。将第一数据组对应的转换值以及第二数据组对应的转换值进行拼接后,可得到该区域的字符串索引为“06424221”。其中,“064”表示该区域位于第一层级的第64个基础单元格,“24221”中的第一个“2”表示该区域位于第64个基础单元格划分得到的第2个网格中,设定网格标识为a,“24221”中的“4”表示该区域位于a网格划分得到的第4个网格中,设定网格标识为b,“24221”中的第二个“2”表示该区域位于b网格划分得到的第2个网格中,设定网格标识为c,“24221”中的第三个“2”表示该区域位于c网格划分得到的第2个网格中,设定网格标识为d,而“24221”中的“1”表示该区域位于d网格划分得到的第1个网格中。
在通过上述过程,得到各区域对应的字符串索引后,将各区域的字符串索引与各区域的区域编码进行关联,建立各区域的字符串索引与各区域的区域编码的映射关系,然后根据映射关系,构建字典树,其中字典树中的每个节点表示字符串索引中的一个字符。
在构建得到字典树后,针对目标设备的轨迹点数据,确定得到轨迹点数据对应的目标字符串索引后,即可根据目标字符串索引,在字典树中查找目标字符串索引对应的目标区域编码,然后根据目标区域编码,确定目标设备所属的区域。
在本实施例中,在获取得到目标设备的轨迹点数据后,可以通过以下步骤确定得到轨迹点数据对应的目标字符串索引:
基于H3地理索引,确定得到轨迹点数据的目标空间索引。
对目标空间索引进行转换,得到轨迹点数据对应的目标字符串索引。
其中,对于目标设备的轨迹点数据,同样采用H3地理索引,确定得到轨迹点数据的目标空间索引。
由于在本实施例中,在确定各区域的空间索引时,是将预设范围划分为第11层级的网格,得到了各区域在第11层级对应的空间索引,因此,为了能准确定位出轨迹点数据所属的区域,在本实施例中,将确定轨迹点数据的目标空间索引时,采用H3地理索引,计算得到轨迹点数据在第12层级对应的空间索引,将第12层级对应的空间索引作为该轨迹点数据的目标空间索引。
在得到轨迹点数据的目标空间索引后,即可对目标空间索引进行转换,得到轨迹点数据对应的目标字符串索引。
在本实施例中,对目标空间索引进行转换时,也是通过位运算的方式进行转换,即对目标空间索引进行二进制转换,得到目标空间索引的二进制值,然后根据索引层级,对目标空间索引的二进制值进行转换,得到轨迹点数据对应的目标字符串索引。
其中,根据索引层级,对目标空间索引的二进制值进行转换,得到轨迹点数据对应的目标字符串索引时,同样可以先确定出各层级在目标空间索引的二进制值中对应的位数,然后对确定出的位数进行转换,得到转换数值,根据转换数值,即可确定得到轨迹点数据对应的目标字符串索引。具体步骤可以参照上述根据索引层级,对各区域的空间索引的二进制值进行转换,得到各区域对应的字符串索引的过程,在此不过多赘述。
为了快速对目标空间索引进行转换,得到具有层级路由意义的字符串索引,在本实施例中,根据索引层级,对目标空间索引的二进制值进行转换,得到轨迹点数据对应的目标字符串索引的步骤还可以包括:
根据索引层级,将目标空间索引的二进制值划分为多个数据组。
分别将各数据组包括的二进制值进行转换,得到各数据组对应的转换数值。
将各数据组对应的转换数值进行拼接,得到轨迹点数据对应的目标字符串索引。
其中,根据索引层级,对目标空间索引的二进制值划分为多个数据组时,同样可以先确定出各层级在目标空间索引的二进制值中对应的位数,然后根据各层级在目标空间索引的二进制值中对应的位数进行分组。
需要说明的是,在将目标空间索引的二进制值划分为多个数据组后,对每个数据组包括的二进制值进行转换时,需要采用与计算区域对应的字符串索引时相同的转换方式。例如,在计算区域对应的字符串索引时,针对每个区域,在根据索引层级,对该区域的空间索引的二进制值进行分组,得到多个数据组后,对第一层级对应的数据组采用十进制进行转换,对第二层级对应的数据组采用八进制进行转换,对第三层级对应的数据组采用十六进制进行转换,则在对目标空间索引对应的数据组包括的二进制值进行转换时,对于第一层级对应的数据组也需要采用十进制进行转换,对于第二层级对应的数据组也需要采用八进制进行转换,对于第三层级对应的数据组也需要采用十六进制进行转换。
在将目标空间索引的二进制值划分得到的多个数据组进行转换,得到各数据组对应的转换数值后,将各数据组对应的转换数值进行拼接,即可得到轨迹点数据对应的目标字符串索引。
为了提高转换效率,在本实施例中,根据索引层级,将目标空间索引的二进制值划分为多个数据组的步骤同样可以通过以下过程实现:
根据索引层级,将目标空间索引的二进制值划分为第一数据组以及第二数据组。
相应地,分别将各数据组包括的二进制值进行转换,得到各数据组对应的转换数值的步骤包括:
将第一数据组包括的二进制值进行转换,得到第一数据组对应的转换数值。
将第二数据组包括的二进制值进行转换,得到第二数据组对应的转换数值。
其中,第一数据组包括的二进制值表征目标空间索引对应的基础单元格的位置,第二数据组包括的二进制值表征目标空间索引对应的不同层级的网格的位置。
在本实施例中,在根据索引层级,将目标空间索引的二进制值划分时,同样可以先确定第一层级,即基础单元格所属的层级在目标空间索引的二进制值中对应的位数,根据确定得到的第一层级在目标空间索引的二进制值中对应的位数,得到第一数据组。然后依次确定其余层级在目标空间索引的二进制值中对应的位数,根据确定得到的其余层级在目标空间索引的二进制值中对应的位数,得到第二数据组,具体可参照将各区域的空间索引的二进制值划分为第一数据组和第二数据组的过程,在此不过多赘述。
在将目标空间索引的二进制值划分为第一数据组以及第二数据组后,即可将第一数据组包括的二进制值转换为十进制值,将第二数据组包括的二进制值转换为八进制值,然后将第一数据组对应的转换数值与第二数据组对应的转换数据进行拼接,即可得到轨迹点数据对应的目标字符串索引。
在得到轨迹点数据对应的目标字符串索引后,即可根据目标字符串索引,在字典树中查找目标字符串索引对应的目标区域编码,然后根据目标区域编码,确定目标设备所属的区域。
为了提高定位精度,保证能准确定位轨迹点所属的区域,在本实施例中,根据目标字符串索引,在预先构建的字典树中查找目标字符串索引对应的目标区域编码的步骤可以包括:
将目标字符串索引与字典树中的预设索引进行比对,得到字典树中与目标字符串索引匹配的目标预设索引。
根据映射关系,获取目标预设索引对应的区域编码,将目标预设索引对应的区域编码设置为目标字符串索引对应的目标区域编码。
其中,在得到目标字符串索引后,即可将目标字符串索引与字典树中的预设索引一一进行比对。可以理解地,字典树中的预设索引即为各区域的字符串索引。
在将目标字符串索引与字典树中的预设索引一一进行比对时,可以先查询字典树中是否存在与目标字符串索引的第一个字符相同的第一节点,若不存在与目标字符串索引的第一个字符相同的第一节点,则停止查询,判定轨迹点数据未属于任何预先划分的区域或者判定轨迹点数据有误,从而可以将轨迹点数据舍弃,或者对轨迹点数据进行报错提示。
若存在与目标字符串索引的第一个字符相同的第一节点,则继续查询第一节点是否存在与目标字符串索引的第二个字符相同的目标子节点,若不存在与目标字符串索引的第二个字符相同的目标子节点,则返回第一节点,将第一节点的字符作为与目标字符串索引匹配的预设索引。
若存在与目标字符串索引的第二个字符相同的目标子节点,则继续往下查询,直至无法找到与目标字符串索引中的字符相同的子节点,返回查找到的节点,根据查找到的节点的字符,得到与目标字符串索引匹配的预设索引。
在得到与目标字符串索引匹配的预设索引后,选择最长预设索引作为与目标字符串索引匹配的预设索引,即选择匹配路径最长的预设索引作为目标字符串索引匹配的预设索引。例如,目标字符串索引为123456789,匹配到的预设索引有12、123、1234、12345,其中,12345的匹配路径最长,即包含的字符数最多,则将预设索引12345作为目标预设索引。
在得到与目标字符串索引匹配的目标预设索引后,根据映射关系,获取目标预设索引对应的区域编码,将目标预设索引对应的区域编码作为目标字符串索引对应的目标区域编码,根据目标区域编码即可得到轨迹点数据所属的区域。
在一种可选的实施方式中,对目标设备实时产生的轨迹点进行定位,得到目标设备的轨迹点所属的区域后,可以分区域聚类统计目标设备的轨迹点,得到目标设备在各区域的日活和轨迹量,之后还可以对统计结果进行存储或者展示等。
下面一具体实施方式进行举例说明,如图4所示,区域A的空间索引为600115809745895400,转换后得到的字符串索引为03224230,图4中的黑点为轨迹点数据,其坐标(经纬度)为(113.158569,32.115359),在对轨迹点数据进行定位时,计算得到轨迹点数据的空间索引为631641006152144895,在对轨迹点数据的空间索引进行转换后,得到轨迹点数据的字符串索引为032242300521153,将轨迹点数据的字符串索引在字典树中进行匹配时,可以得到区域A的字符串索引与轨迹点数据的字符串索引的前缀(03224230)匹配,进而获取区域A的字符串索引关联的区域编码421321,根据区域编码421321,得到轨迹点数据属于区域A。
本实施例提供的区域查询方法,通过构建包括字符串与区域编码的映射关系的字典树,在获取目标设备的轨迹点数据后,通过确定轨迹点数据对应的目标字符串索引,根据目标字符串索引,即可在字典树中查找目标字符串索引对应的目标区域编码,进而根据目标区域编码,确定得到目标设备所属的区域,大大提高了轨迹的定位效率,且计算精度高,其计算误差只会在区域边界的70米范围产生误差。
本实施例提供的区域查询方法,在4核8G内存的服务器上执行时,单机单线程下,本实施例提供的索引方式能够支撑每秒15万以上的轨迹点所属区域的计算。而相同配置下,传统的多边形加Rtree索引的方式,每秒钟只能够支撑每秒1万个轨迹点的计算,多边形切分成规则矩形网格加Rtree索引的方式,每秒钟也只能支撑3万个轨迹点的计算。相比于现有技术,本实施例可大大提高了索引效率,能够快速高效的定位出轨迹所属的区域,并使用多线程后能够支撑现有的每秒峰值18万以上轨迹点处理需求,为实时统计提供了基础支撑。
基于同一发明构思,请结合参阅图5,本实施例还提供一种区域查询装置10,应用于图1所示的电子设备,如图5所示,本实施例提供的区域查询装置10包括索引确定模块11以及编码查询模块12。
索引确定模块11,用于获取目标设备的轨迹点数据,并确定轨迹点数据对应的目标字符串索引。
编码查询模块12,用于根据目标字符串索引,在预先构建的字典树中查找目标字符串索引对应的目标区域编码,根据目标区域编码,确定目标设备所属的区域;其中,字典树中包括字符串与区域编码的映射关系。
在可选的实施方式中,索引确定模块11用于:
基于H3地理索引,确定得到轨迹点数据的目标空间索引。
对目标空间索引进行转换,得到轨迹点数据对应的目标字符串索引。
在可选的实施方式中,索引确定模块11用于:
对目标空间索引进行二进制转换,得到目标空间索引的二进制值。
根据索引层级,对目标空间索引的二进制值进行转换,得到轨迹点数据对应的目标字符串索引。
在可选的实施方式中,索引确定模块11用于:
根据索引层级,将目标空间索引的二进制值划分为多个数据组。
分别将各数据组包括的二进制值进行转换,得到各数据组对应的转换数值。
将各数据组对应的转换数值进行拼接,得到轨迹点数据对应的目标字符串索引。
在可选的实施方式中,索引确定模块11用于:
根据索引层级,将目标空间索引的二进制值划分为第一数据组以及第二数据组;其中,第一数据组包括的二进制值表征目标空间索引对应的基础单元格的位置,第二数据组包括的二进制值表征目标空间索引对应的不同层级的网格的位置。
分别将各数据组包括的二进制值进行转换,得到各数据组对应的转换数值,包括:
将第一数据组包括的二进制值进行转换,得到第一数据组对应的转换数值。
将第二数据组包括的二进制值进行转换,得到第二数据组对应的转换数值。
在可选的实施方式,编码查询模块12用于:
将目标字符串索引与字典树中的预设索引进行比对,得到字典树中与目标字符串索引匹配的目标预设索引。
根据映射关系,获取目标预设索引对应的区域编码,将目标预设索引对应的区域编码设置为目标字符串索引对应的目标区域编码。
在可选的实施方式中,区域查询装置还包括字典树构建模块,在根据目标字符串索引,在预先构建的字典树中查找目标字符串索引对应的目标区域编码之前,字典树构建模块用于:
将预设范围划分为预设层级的网格,确定得到预设范围内各区域对应的目标网格。
根据各区域对应的目标网格的索引,得到各区域的空间索引。
对各区域的空间索引进行转换,得到各区域对应的字符串索引。
建立各区域的区域编码与各区域的字符串索引的映射关系,根据映射关系,构建字典树。
在可选的实施方式中,字典树构建模块用于:
将预设范围划分为预设层级的网格,得到预设范围内各区域对应的在预设层级的网格。
将各区域对应的在预设层级的网格进行逐级压缩,得到各区域对应的目标网格,区域对应的目标网格包括至少一个层级的网格。
本实施例提供的区域查询装置,通过构建包括字符串与区域编码的映射关系的字典树,在获取目标设备的轨迹点数据后,通过确定轨迹点数据对应的目标字符串索引,根据目标字符串索引,即可在字典树中查找目标字符串索引对应的目标区域编码,进而根据目标区域编码,确定得到目标设备所属的区域,如此,大大提升了轨迹的定位效率,能够快速高效的定位出轨迹所属的区域,满足实时的统计需求。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
在上述基础上,本实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施方式所述的区域查询方法。
其中,可读存储介质可以是,但不限于,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的可读存储介质的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上,本发明实施例提供的区域查询方法、装置、电子设备和可读存储介质,通过构建包括字符串与区域编码的映射关系的字典树,在获取目标设备的轨迹点数据后,通过确定轨迹点数据对应的目标字符串索引,根据目标字符串索引,即可在字典树中查找目标字符串索引对应的目标区域编码,进而根据目标区域编码,确定得到目标设备所属的区域,如此,大大提升了轨迹的定位效率,能够快速高效的定位出轨迹所属的区域,满足实时的统计需求。
在本发明实施例所提供的几个实施方式中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的各种实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种区域查询方法,其特征在于,所述方法包括:
获取目标设备的轨迹点数据,并确定所述轨迹点数据对应的目标字符串索引;
根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码;其中,所述字典树中包括字符串与区域编码的映射关系;
根据所述目标区域编码,确定所述目标设备所属的区域。
2.根据权利要求1所述的区域查询方法,其特征在于,所述确定所述轨迹点数据对应的目标字符串索引,包括:
基于H3地理索引,确定得到所述轨迹点数据的目标空间索引;
对所述目标空间索引进行转换,得到所述轨迹点数据对应的目标字符串索引。
3.根据权利要求2所述的区域查询方法,其特征在于,所述对所述目标空间索引进行转换,得到所述轨迹点数据对应的目标字符串索引,包括:
对所述目标空间索引进行二进制转换,得到所述目标空间索引的二进制值;
根据索引层级,对所述目标空间索引的二进制值进行转换,得到所述轨迹点数据对应的目标字符串索引。
4.根据权利要求3所述的区域查询方法,其特征在于,所述根据索引层级,对所述目标空间索引的二进制值进行转换,得到所述轨迹点数据对应的目标字符串索引,包括:
根据索引层级,将所述目标空间索引的二进制值划分为多个数据组;
分别将各所述数据组包括的二进制值进行转换,得到各所述数据组对应的转换数值;
将各所述数据组对应的转换数值进行拼接,得到所述轨迹点数据对应的目标字符串索引。
5.根据权利要求4所述的区域查询方法,其特征在于,所述根据索引层级,将所述目标空间索引的二进制值划分为多个数据组,包括:
根据所述索引层级,将所述目标空间索引的二进制值划分为第一数据组以及第二数据组;其中,所述第一数据组包括的二进制值表征所述目标空间索引对应的基础单元格的位置,所述第二数据组包括的二进制值表征所述目标空间索引对应的不同层级的网格的位置;
所述分别将各所述数据组包括的二进制值进行转换,得到各所述数据组对应的转换数值,包括:
将所述第一数据组包括的二进制值进行转换,得到所述第一数据组对应的转换数值;
将所述第二数据组包括的二进制值进行转换,得到所述第二数据组对应的转换数值。
6.根据权利要求1所述的区域查询方法,其特征在于,所述根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码的步骤包括:
将所述目标字符串索引与所述字典树中的预设索引进行比对,得到所述字典树中与所述目标字符串索引匹配的目标预设索引;
根据所述映射关系,获取所述目标预设索引对应的区域编码,将所述目标预设索引对应的区域编码设置为所述目标字符串索引对应的目标区域编码。
7.根据权利要求1所述的区域查询方法,其特征在于,所述根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码之前,所述方法包括:
将预设范围划分为预设层级的网格,确定得到所述预设范围内各区域对应的目标网格;
根据各所述区域对应的目标网格的索引,得到各所述区域的空间索引;
对各所述区域的空间索引进行转换,得到各所述区域对应的字符串索引;
建立各所述区域的区域编码与各所述区域的字符串索引的映射关系,根据所述映射关系,构建字典树。
8.根据权利要求7所述的区域查询方法,其特征在于,所述将预设范围划分为预设层级的网格,确定得到所述预设范围内各区域对应的目标网格,包括:
将预设范围划分为预设层级的网格,得到所述预设范围内各区域对应的在预设层级的网格;
将各所述区域对应的在预设层级的网格进行逐级压缩,得到各所述区域对应的目标网格,所述区域对应的目标网格包括至少一个层级的网格。
9.一种区域查询装置,其特征在于,所述区域查询装置包括:
索引确定模块,用于获取目标设备的轨迹点数据,并确定所述轨迹点数据对应的目标字符串索引;
编码查询模块,用于根据所述目标字符串索引,在预先构建的字典树中查找所述目标字符串索引对应的目标区域编码,根据所述目标区域编码,确定所述目标设备所属的区域;其中,所述字典树中包括字符串与区域编码的映射关系。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至8任一项所述的区域查询方法。
11.一种可读存储介质,其特征在于,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在电子设备执行权利要求1至8任一项所述的区域查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111045178.4A CN113821539A (zh) | 2021-09-07 | 2021-09-07 | 区域查询方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111045178.4A CN113821539A (zh) | 2021-09-07 | 2021-09-07 | 区域查询方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821539A true CN113821539A (zh) | 2021-12-21 |
Family
ID=78922157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111045178.4A Pending CN113821539A (zh) | 2021-09-07 | 2021-09-07 | 区域查询方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821539A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115147934A (zh) * | 2022-09-01 | 2022-10-04 | 中科星图股份有限公司 | 行为分析方法、装置、设备和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090930A1 (en) * | 2000-05-24 | 2001-11-29 | Web Wombat Pty Ltd | Indexing and searching ideographic characters on a networked system of computers |
WO2021068346A1 (zh) * | 2019-10-12 | 2021-04-15 | 平安科技(深圳)有限公司 | 基于Geohash算法的位置查询方法、装置、计算机设备及存储介质 |
WO2021072874A1 (zh) * | 2019-10-14 | 2021-04-22 | 平安科技(深圳)有限公司 | 基于双数组的位置查询方法、装置、计算机设备及存储介质 |
-
2021
- 2021-09-07 CN CN202111045178.4A patent/CN113821539A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001090930A1 (en) * | 2000-05-24 | 2001-11-29 | Web Wombat Pty Ltd | Indexing and searching ideographic characters on a networked system of computers |
WO2021068346A1 (zh) * | 2019-10-12 | 2021-04-15 | 平安科技(深圳)有限公司 | 基于Geohash算法的位置查询方法、装置、计算机设备及存储介质 |
WO2021072874A1 (zh) * | 2019-10-14 | 2021-04-22 | 平安科技(深圳)有限公司 | 基于双数组的位置查询方法、装置、计算机设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115147934A (zh) * | 2022-09-01 | 2022-10-04 | 中科星图股份有限公司 | 行为分析方法、装置、设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502599B (zh) | 地图数据的查询方法、装置和计算机可读存储介质 | |
CN110427360A (zh) | 轨迹数据的处理方法、处理装置、处理系统及计算机程序产品 | |
CN111160617A (zh) | 一种电力日负荷预测方法及装置 | |
CN105786822A (zh) | 电子地图中查询空间对象和建立空间索引的方法及装置 | |
WO2021072874A1 (zh) | 基于双数组的位置查询方法、装置、计算机设备及存储介质 | |
CN113821539A (zh) | 区域查询方法、装置、电子设备和可读存储介质 | |
CN114997547B (zh) | 气象采集终端布点方法和装置 | |
CN115586557B (zh) | 一种基于路网数据的车辆行驶轨迹纠偏方法及装置 | |
CN112905125A (zh) | 一种基于计算机高精度计算的数据存储及读取方法 | |
CN109885638B (zh) | 一种三维立体空间索引方法及系统 | |
CN108197347B (zh) | 连续不规则区域采样点的地理空间分布均匀度检测方法 | |
CN111414445B (zh) | 一种应用地理信息的地址反解析方法 | |
CN110909260A (zh) | 车辆显示方法、装置、计算机可读存储介质和计算机设备 | |
CN111460237B (zh) | 一种数据查询的方法、装置、可读存储介质和电子设备 | |
CN115658836A (zh) | 区域搜索方法、装置、电子设备及可读存储介质 | |
CN111506576B (zh) | 一种基于区域四叉树的地块编码方法及装置 | |
Hao et al. | A keyword-aware optimal route query algorithm on large-scale road networks | |
CN111222672B (zh) | 空气质量指数aqi的预测方法和装置 | |
CN111949706A (zh) | 面向土地大数据分布式挖掘分析的存储方法 | |
CN117312471B (zh) | 海量位置点的海陆属性判断方法及装置 | |
CN117251486B (zh) | 一种基于GeoHash编码的信息处理方法及装置 | |
CN107688567B (zh) | 一种索引存储方法及相关装置 | |
CN111417067A (zh) | 定位用户到访位置的方法和装置 | |
CN111460775B (zh) | 贸易特征网格图生成方法及装置 | |
CN117454122B (zh) | 基于定点定面关系的山洪灾害雨量预警分析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |