CN117251486B - 一种基于GeoHash编码的信息处理方法及装置 - Google Patents
一种基于GeoHash编码的信息处理方法及装置 Download PDFInfo
- Publication number
- CN117251486B CN117251486B CN202311490478.2A CN202311490478A CN117251486B CN 117251486 B CN117251486 B CN 117251486B CN 202311490478 A CN202311490478 A CN 202311490478A CN 117251486 B CN117251486 B CN 117251486B
- Authority
- CN
- China
- Prior art keywords
- data
- geohash
- cache
- target
- geohash code
- 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
- 230000010365 information processing Effects 0.000 title claims abstract description 27
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000006243 chemical reaction Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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
- G06F16/24552—Database cache management
-
- 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
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/909—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Telephone Function (AREA)
Abstract
本申请提供了一种基于GeoHash编码的信息处理方法及装置,该方法包括:获取由终端设备提供的位置数据,其中,位置数据包括经纬度数据,经纬度数据包括经度数据和维度数据;对位置数据进行第一转换处理,得到当前位置数据对应的GeoHash编码;将GeoHash编码上传至缓存库,若缓存库中存在与GeoHash编码相匹配的第一目标数据,通过第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,通过第三方接口获取位置数据对应的位置信息;本申请能够对第三方接口的依赖。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种基于GeoHash编码的信息处理方法及装置。
背景技术
立即定位平台中,地址解析是指将设备的经纬度转化为具体地址,返回的信息包含省份、城市、区县、街道、门牌号码等信息的字符串。
该功能主要是通过调用第三方服务,进行封装实现。基于外部服务每日调用总额度会有限制,且会产生较大费用。
发明内容
有鉴于此,本申请实施例提供了一种基于GeoHash编码的信息处理方法及装置,能够减少对第三方接口的依赖。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种基于GeoHash编码的信息处理方法,包括以下步骤:
获取由终端设备提供的位置数据,其中,所述位置数据包括经纬度数据,所述经纬度数据包括经度数据和维度数据;
对所述位置数据进行第一转换处理,得到所述位置数据对应的GeoHash编码;
将所述GeoHash编码上传至缓存库,若所述缓存库中存在与所述GeoHash编码相匹配的第一目标数据,通过所述第一目标数据确定所述位置数据对应的位置信息;若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息。
第二方面,本申请实施例还提供一种基于GeoHash编码的信息处理装置,所述装置包括:
获取模块,用于获取由终端设备提供的位置数据,其中,所述位置数据包括经纬度数据,所述经纬度数据包括经度数据和维度数据;
转换模块,用于对所述位置数据进行第一转换处理,得到所述位置数据对应的GeoHash编码;
匹配模块,用于将所述GeoHash编码上传至缓存库,若所述缓存库中存在与所述GeoHash编码相匹配的第一目标数据,通过所述第一目标数据确定所述位置数据对应的位置信息;若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的基于GeoHash编码的信息处理方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面任一项所述的基于GeoHash编码的信息处理方法。
本申请实施例具有以下有益效果:
通过获取由终端设备提供的位置数据,对位置数据进行第一转换处理,得到当前位置数据对应的GeoHash编码;然后将GeoHash编码上传至缓存库,若缓存库中存在与GeoHash编码相匹配的第一目标数据,通过第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,通过第三方接口获取位置数据对应的位置信息;这样,在不调用第三方接口的情况下,也可以获取到对应的位置信息,并且GeoHash编码的形式便于存储;通过不断地更新缓存库,缓存库中的数据会越来越多,逐步减少对第三方接口的依赖。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例提供的步骤S101-S103的流程示意图;
图2是本申请实施例提供的步骤S201-S202的流程示意图;
图3是本申请实施例提供的步骤S301-S302的流程示意图;
图4是本申请实施例提供的步骤S401-S402的流程示意图;
图5是本申请实施例提供的步骤S501-S503的流程示意图;
图6是本申请实施例提供的步骤S601-S602的流程示意图;
图7是本申请实施例提供的基于GeoHash编码的信息处理装置的结构示意图;
图8是本申请实施例提供的电子设备的组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语是为了描述本申请实施例的目的,不是在限制本申请。
参见图1,图1是本申请实施例提供的基于GeoHash编码的信息处理方法步骤S101-S103的流程示意图,将结合图1示出的步骤S101-S103进行说明。
步骤S101、获取由终端设备提供的位置数据,其中,所述位置数据包括经纬度数据,所述经纬度数据包括经度数据和维度数据;
步骤S102、对所述位置数据进行第一转换处理,得到所述位置数据对应的GeoHash编码;
步骤S103、将所述GeoHash编码上传至缓存库,若所述缓存库中存在与所述GeoHash编码相匹配的第一目标数据,通过所述第一目标数据确定所述位置数据对应的位置信息;若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息。
上述基于GeoHash编码的信息处理方法,通过获取由终端设备提供的位置数据,对位置数据进行第一转换处理,得到当前位置数据对应的GeoHash编码;然后将GeoHash编码上传至缓存库,若缓存库中存在与GeoHash编码相匹配的第一目标数据,通过第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,通过第三方接口获取位置数据对应的位置信息;这样,在不调用第三方接口的情况下,也可以获取到对应的位置信息,并且GeoHash编码的形式便于存储;通过不断地更新缓存库,缓存库中的数据会越来越多,逐步减少对第三方接口的依赖。
下面分别对本申请实施例的上述示例性的各步骤进行说明。
在步骤S101中,获取由终端设备提供的位置数据,其中,所述位置数据包括经纬度数据,所述经纬度数据包括经度数据和维度数据。
在步骤S102中,对所述位置数据进行第一转换处理,得到所述位置数据对应的GeoHash编码。
在步骤S103中,将所述GeoHash编码上传至缓存库,若所述缓存库中存在与所述GeoHash编码相匹配的第一目标数据,通过所述第一目标数据确定所述位置数据对应的位置信息;若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息。
结合步骤S101-S103,在用户需要获取当前所在的位置信息时,可以通过终端设备获取当前的经纬度数据,并将经纬度数据上报至经纬度平台,由经纬度平台进行第一转换处理,转换为GeoHash编码。为了减少对第三方接口的调用,可以在预设的缓存库中进行查找,若缓存库中已经存在与GeoHash编码相匹配的第一目标数据,便可以基于第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,则调用第三方接口进行获取。
在一些实施例中,参见图2,图2是本申请实施例提供的步骤S201-S202的流程示意图,所述若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息之后,还可以执行步骤S201-S202,将结合各步骤进行说明。
在步骤S201中,将通过第三方接口获取的所述位置信息以及所述GeoHash编码进行第二转换处理,得到待存储数据,其中,所述待存储数据为一键值对,所述键值对的key为所述GeoHash编码,所述键值对的value为所述位置信息。
在步骤S202中,将所述待存储数据作为缓存数据存储至所述缓存库。
上述步骤S101-S103,在缓存库中不存在与GeoHash编码相匹配的第一目标数据时,通过第三方接口进行查询,而在查询之后,可以将本次查询的结果进行持久化存储,以更新缓存库。具体的存储策略是:
将第三方接口查到的位置信息(结构化信息,例如省份、城市、区县、街道、门牌号码、方位)与经纬度平台对位置数据进行第一转换后的GeoHash编码进行组合,形成一键值对。key中存储GeoHash编码,value中存储位置信息。需要说明的是,缓存库中存储的数据均为此格式,包括步骤S101-S103中的第一目标数据,也为此结构。
在一些实施例中,参见图3,图3是本申请实施例提供的步骤S301-S302的流程示意图,所述方法还可以执行步骤S301-S304,将结合各步骤进行说明。
在步骤S301中,响应以所述位置数据为基准位置的附近地点搜索请求,其中,所述搜索请求包括范围参数和/或类型参数,所述范围参数表征以所述基准位置为圆心的搜索范围,所述类型参数表征附近地点的类型。
在步骤S302中,确定与所述搜索范围相匹配的公共前缀长度,其中,所述公共前缀长度表示两个GeoHash编码中相同的前缀位数。
在步骤S303中,基于所述GeoHash编码以及所述公共前缀长度确定公共前缀,并基于所述公共前缀从所述缓存库中确定相匹配的至少一个所述缓存数据。
在步骤S304中,基于所述类型参数,从所述至少一个所述缓存数据中确定相匹配的第二目标数据。
结合步骤S301-S304,由于GeoHash编码的特性,两个GeoHash 字符串公共前缀的长度越长,对应的两个区域距离就越接近,并且其间的相对距离范围是可以通过公共前缀的长度估算出具体量级的。所以,在用户以自身位置为原点的附近地点搜索请求下(例如搜索附近100m以内、1km以内、10km以内的商场),可以首先确定GeoHash编码公共前缀的长度(例如8位、7位、6位);而基于所述位置数据和对应的公共前缀长度,可以确定出公共前缀,通过确定的公共前缀,可以在缓存库中查询公共前缀相同的缓存数据,这样,查找出来的缓存数据即是在附近某一精度的地点,随后,再根据缓存数据中value的位置信息,可以过滤出用户所搜索的“商场”。
上述的方式,利用了GeoHash编码公共前缀的长度越长,对应的两个区域距离就越接近的特性,与附近地点搜索的场景相结合,提供了一种高效的查询方式。
在一些实施例中,所述方法还包括:
若所述第二目标数据的个数大于预设数量,基于所述第二目标数据显示所述附近地点;
若所述第二目标数据的个数小于等于预设数量,通过第三方接口查询并显示所述附近地点。
这里,由于缓存库在数据量较少的情况下可能无法提供丰富的数据,通过上述实施例搜索出来的附近地点数量若小于等于预设数量,可以再调用第三方接口进行查询,若附近地点数量大于预设数量,则认为数据量充足,直接显示这些附近地点即可。
在一些实施例中,参见图4,图4是本申请实施例提供的步骤S401-S402的流程示意图,所述方法还可以执行步骤S401-S402,将结合各步骤进行说明。
在步骤S401中,为所述缓存数据建立N级索引,其中,N为正整数,所述N级索引中每级索引为GeoHash编码的前缀,前缀的长度随N的增大而增大。
在步骤S402中,基于所述N级索引查询所述缓存库中的所述缓存数据。
结合步骤S401-S402,为了便于对缓存库中的缓存数据进行查询,可以针对这些缓存数据建立多级索引,例如建立三级索引,第一级索引为key中GeoHash编码的前6位,二级索引为前7位,三级索引为前8位。这样,在上述对缓存库的查询过程中,可以基于该索引进行查询,进一步提高查询效率。
在一些实施例中,参见图5,图5是本申请实施例提供的步骤S501-S503的流程示意图,所述方法还可以执行步骤S501-S503,将结合各步骤进行说明。
在步骤S501中,响应构建目标用户画像的触发条件,获取所述目标用户相关联的至少一个缓存数据;所述触发条件包括:所述目标用户的至少一台终端设备所提供位置数据的次数大于预设次数;或者,距离所述目标用户通过终端设备第一次提供位置数据的时间大于预设时间;或者,定期触发;
在步骤S502中,从所述至少一个缓存数据中确定最长公共前缀;
在步骤S503中,将包括所述最长公共前缀的区域对应的区域信息下载至所述目标用户的终端设备中。
结合步骤S501-S503,在满足触发条件的情况下,可以将用户常去的区域信息下载至用户的终端设备中,以使用户在不联网的情况下,也能进行查询。具体的,GeoHash编码规则是以矩形区域进行划分的,例如WT3Q1,WT3Q4,WT3Q5,WT3Q3,WT3Q6,WT3Q7,WT3Q9,WT3QD,WT3QE八个区域,这八个区域具有相同的公共前缀WT3Q,在一些情况下,通过获取用户一段时间内所去过的位置信息,并获取对应的GeoHash编码,提取最长公共前缀,并将具有该公共前缀的区域信息下载至用户的终端设备,例如手机中,这样,用户在离线状态下,仍可以进行查询。
在一些实施例中,参见图6,图6是本申请实施例提供的步骤S601-S602的流程示意图,所述方法还可以执行步骤S601-S602,将结合各步骤进行说明。
在步骤S601中,若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,确定所述GeoHash编码所在的当前区域以及上、下、左、右、左上、右上、左下、右下的八个相邻区域。
在步骤S602中,若所述当前区域和八个相邻区域中存在距离所述GeoHash编码最近的第三目标数据,且所述GeoHash编码与所述第三目标数据的距离小于预设的距离阈值时,通过所述第三目标数据确定所述位置数据对应的位置信息。
结合步骤S601-S602,若没有查询到GeoHash编码相匹配的第一目标数据,也可以通过附近位置来确定位置信息,例如,用户在写字楼A,写字楼10m内有一公交站B,若在查询时,没有查到写字楼A对应的GeoHash编码,但却在上、下、左、右、左上、右上、左下、右下的八个相邻区域查到了距离10m有一公交站B,便可以显示“您当前位于公交站B”。
需要说明的是,在查询距离最近的点时,需要考虑上、下、左、右、左上、右上、左下、右下的八个相邻区域,这是由于编码相近的两个单位,并不一定真实距离很近。
综上所述,通过本申请实施例具有以下有益效果:
通过获取由终端设备提供的位置数据,对位置数据进行第一转换处理,得到当前位置数据对应的GeoHash编码;然后将GeoHash编码上传至缓存库,若缓存库中存在与GeoHash编码相匹配的第一目标数据,通过第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,通过第三方接口获取位置数据对应的位置信息;这样,在不调用第三方接口的情况下,也可以获取到对应的位置信息,并且GeoHash编码的形式便于存储;通过不断地更新缓存库,缓存库中的数据会越来越多,逐步减少对第三方接口的依赖。
基于同一发明构思,本申请实施例中还提供了与第一实施例中基于GeoHash编码的信息处理方法对应的基于GeoHash编码的信息处理装置,由于本申请实施例中的装置解决问题的原理与上述基于GeoHash编码的信息处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,图7是本申请实施例提供的基于GeoHash编码的信息处理装置700的结构示意图。基于GeoHash编码的信息处理装置700包括:
获取模块701,用于获取由终端设备提供的位置数据,其中,所述位置数据包括经纬度数据,所述经纬度数据包括经度数据和维度数据;
转换模块702,用于对所述位置数据进行第一转换处理,得到所述位置数据对应的GeoHash编码;
匹配模块703,用于将所述GeoHash编码上传至缓存库,若所述缓存库中存在与所述GeoHash编码相匹配的第一目标数据,通过所述第一目标数据确定所述位置数据对应的位置信息;若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息。
本领域技术人员应当理解,图7所示的基于GeoHash编码的信息处理装置700中的各单元的实现功能可参照前述基于GeoHash编码的信息处理方法的相关描述而理解。图7所示的基于GeoHash编码的信息处理装置700中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
在一种可能的实施方式中,若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息之后,匹配模块703还包括:
将通过第三方接口获取的所述位置信息以及所述GeoHash编码进行第二转换处理,得到待存储数据,其中,所述待存储数据为一键值对,所述键值对的key为所述GeoHash编码,所述键值对的value为所述位置信息;
将所述待存储数据作为缓存数据存储至所述缓存库。
在一种可能的实施方式中,匹配模块703还包括:
响应以所述位置数据为基准位置的附近地点搜索请求,其中,所述搜索请求包括范围参数和/或类型参数,所述范围参数表征以所述基准位置为圆心的搜索范围,所述类型参数表征附近地点的类型;
确定与所述搜索范围相匹配的公共前缀长度,其中,所述公共前缀长度表示两个GeoHash编码中相同的前缀位数;
基于所述GeoHash编码以及所述公共前缀长度确定公共前缀,并基于所述公共前缀从所述缓存库中确定相匹配的至少一个所述缓存数据;
基于所述类型参数,从所述至少一个所述缓存数据中确定相匹配的第二目标数据。
在一种可能的实施方式中,匹配模块703还包括:
若所述第二目标数据的个数大于预设数量,基于所述第二目标数据显示所述附近地点;
若所述第二目标数据的个数小于等于预设数量,通过第三方接口查询并显示所述附近地点。
在一种可能的实施方式中,匹配模块703还包括:
为所述缓存数据建立N级索引,其中,N为正整数,所述N级索引中每级索引为GeoHash编码的前缀,前缀的长度随N的增大而增大;
基于所述N级索引查询所述缓存库中的所述缓存数据。
在一种可能的实施方式中,匹配模块703还包括:
响应构建目标用户画像的触发条件,获取所述目标用户相关联的至少一个缓存数据;所述触发条件包括:所述目标用户的至少一台终端设备所提供位置数据的次数大于预设次数;或者,距离所述目标用户通过终端设备第一次提供位置数据的时间大于预设时间;或者,定期触发;
从所述至少一个缓存数据中确定最长公共前缀;
将包括所述最长公共前缀的区域对应的区域信息下载至所述目标用户的终端设备中。
在一种可能的实施方式中,匹配模块703还包括:
若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,确定所述GeoHash编码所在的当前区域以及上、下、左、右、左上、右上、左下、右下的八个相邻区域;
若所述当前区域和八个相邻区域中存在距离所述GeoHash编码最近的第三目标数据,且所述GeoHash编码与所述第三目标数据的距离小于预设的距离阈值时,通过所述第三目标数据确定所述位置数据对应的位置信息。
上述基于GeoHash编码的信息处理装置通过获取由终端设备提供的位置数据,对位置数据进行第一转换处理,得到当前位置数据对应的GeoHash编码;然后将GeoHash编码上传至缓存库,若缓存库中存在与GeoHash编码相匹配的第一目标数据,通过第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,通过第三方接口获取位置数据对应的位置信息;这样,在不调用第三方接口的情况下,也可以获取到对应的位置信息,并且GeoHash编码的形式便于存储;通过不断地更新缓存库,缓存库中的数据会越来越多,逐步减少对第三方接口的依赖。
如图8所示,图8为本申请实施例提供的电子设备800的组成结构示意图,所述电子设备800,包括:
处理器801、存储介质802和总线803,所述存储介质802存储有所述处理器801可执行的机器可读指令,当电子设备800运行时,所述处理器801与所述存储介质802之间通过总线803通信,所述处理器801执行所述机器可读指令,以执行本申请实施例所述的基于GeoHash编码的信息处理方法的步骤。
实际应用时,所述电子设备800中的各个组件通过总线803耦合在一起。可理解,总线803用于实现这些组件之间的连接通信。总线803除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线803。
上述电子设备通过获取由终端设备提供的位置数据,对位置数据进行第一转换处理,得到当前位置数据对应的GeoHash编码;然后将GeoHash编码上传至缓存库,若缓存库中存在与GeoHash编码相匹配的第一目标数据,通过第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,通过第三方接口获取位置数据对应的位置信息;这样,在不调用第三方接口的情况下,也可以获取到对应的位置信息,并且GeoHash编码的形式便于存储;通过不断地更新缓存库,缓存库中的数据会越来越多,逐步减少对第三方接口的依赖。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有可执行指令,当所述可执行指令被至少一个处理器801执行时,实现本申请实施例所述的基于GeoHash编码的信息处理方法。
在一些实施例中,存储介质可以是磁性随机存取存储器(FRAM,FerromagneticRandom Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperTextMarkupLanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
上述计算机可读存储介质通过获取由终端设备提供的位置数据,对位置数据进行第一转换处理,得到当前位置数据对应的GeoHash编码;然后将GeoHash编码上传至缓存库,若缓存库中存在与GeoHash编码相匹配的第一目标数据,通过第一目标数据确定位置数据对应的位置信息;若缓存库中不存在与GeoHash编码相匹配的第一目标数据,通过第三方接口获取位置数据对应的位置信息;这样,在不调用第三方接口的情况下,也可以获取到对应的位置信息,并且GeoHash编码的形式便于存储;通过不断地更新缓存库,缓存库中的数据会越来越多,逐步减少对第三方接口的依赖。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和电子设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,平台服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (5)
1.一种基于GeoHash编码的信息处理方法,其特征在于,所述方法包括:
获取由终端设备提供的位置数据,其中,所述位置数据包括经纬度数据,所述经纬度数据包括经度数据和纬度数据;
对所述位置数据进行第一转换处理,得到所述位置数据对应的GeoHash编码;
将所述GeoHash编码上传至缓存库,若所述缓存库中存在与所述GeoHash编码相匹配的第一目标数据,通过所述第一目标数据确定所述位置数据对应的位置信息;若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息;
所述若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息之后,所述方法还包括:
将通过第三方接口获取的所述位置信息以及所述GeoHash编码进行第二转换处理,得到待存储数据,其中,所述待存储数据为一键值对,所述键值对的key为所述GeoHash编码,所述键值对的value为所述位置信息;
将所述待存储数据作为缓存数据存储至所述缓存库;
所述方法还包括:
响应以所述位置数据为基准位置的附近地点搜索请求,其中,所述搜索请求包括范围参数和/或类型参数,所述范围参数表征以所述基准位置为圆心的搜索范围,所述类型参数表征附近地点的类型;
确定与所述搜索范围相匹配的公共前缀长度,其中,所述公共前缀长度表示两个GeoHash编码中相同的前缀位数;
基于所述GeoHash编码以及所述公共前缀长度确定公共前缀,并基于所述公共前缀从所述缓存库中确定相匹配的至少一个所述缓存数据;
基于所述类型参数,从所述至少一个所述缓存数据中确定相匹配的第二目标数据;
所述方法还包括:
为所述缓存数据建立N级索引,其中,N为正整数,所述N级索引中每级索引为GeoHash编码的前缀,前缀的长度随N的增大而增大;
基于所述N级索引查询所述缓存库中的所述缓存数据;
所述方法还包括:
若所述第二目标数据的个数大于预设数量,基于所述第二目标数据显示所述附近地点;
若所述第二目标数据的个数小于等于预设数量,通过第三方接口查询并显示所述附近地点;
所述方法还包括:
响应构建目标用户画像的触发条件,获取所述目标用户相关联的至少一个缓存数据;所述触发条件包括:所述目标用户的至少一台终端设备所提供位置数据的次数大于预设次数;或者,距离所述目标用户通过终端设备第一次提供位置数据的时间大于预设时间;或者,定期触发;
从所述至少一个缓存数据中确定最长公共前缀;
将包括所述最长公共前缀的区域对应的区域信息下载至所述目标用户的终端设备中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,确定所述GeoHash编码所在的当前区域以及上、下、左、右、左上、右上、左下、右下的八个相邻区域;
若所述当前区域和八个相邻区域中存在距离所述GeoHash编码最近的第三目标数据,且所述GeoHash编码与所述第三目标数据的距离小于预设的距离阈值时,通过所述第三目标数据确定所述位置数据对应的位置信息。
3.一种基于GeoHash编码的信息处理装置,其特征在于,所述装置包括:
获取模块,用于获取由终端设备提供的位置数据,其中,所述位置数据包括经纬度数据,所述经纬度数据包括经度数据和纬度数据;
转换模块,用于对所述位置数据进行第一转换处理,得到所述位置数据对应的GeoHash编码;
匹配模块,用于将所述GeoHash编码上传至缓存库,若所述缓存库中存在与所述GeoHash编码相匹配的第一目标数据,通过所述第一目标数据确定所述位置数据对应的位置信息;若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息;所述若所述缓存库中不存在与所述GeoHash编码相匹配的第一目标数据,通过第三方接口获取所述位置数据对应的所述位置信息之后,还包括:将通过第三方接口获取的所述位置信息以及所述GeoHash编码进行第二转换处理,得到待存储数据,其中,所述待存储数据为一键值对,所述键值对的key为所述GeoHash编码,所述键值对的value为所述位置信息;将所述待存储数据作为缓存数据存储至所述缓存库;还包括:响应以所述位置数据为基准位置的附近地点搜索请求,其中,所述搜索请求包括范围参数和/或类型参数,所述范围参数表征以所述基准位置为圆心的搜索范围,所述类型参数表征附近地点的类型;确定与所述搜索范围相匹配的公共前缀长度,其中,所述公共前缀长度表示两个GeoHash编码中相同的前缀位数;基于所述GeoHash编码以及所述公共前缀长度确定公共前缀,并基于所述公共前缀从所述缓存库中确定相匹配的至少一个所述缓存数据;基于所述类型参数,从所述至少一个所述缓存数据中确定相匹配的第二目标数据;还包括:为所述缓存数据建立N级索引,其中,N为正整数,所述N级索引中每级索引为GeoHash编码的前缀,前缀的长度随N的增大而增大;基于所述N级索引查询所述缓存库中的所述缓存数据;还包括:若所述第二目标数据的个数大于预设数量,基于所述第二目标数据显示所述附近地点;若所述第二目标数据的个数小于等于预设数量,通过第三方接口查询并显示所述附近地点;还包括:响应构建目标用户画像的触发条件,获取所述目标用户相关联的至少一个缓存数据;所述触发条件包括:所述目标用户的至少一台终端设备所提供位置数据的次数大于预设次数;或者,距离所述目标用户通过终端设备第一次提供位置数据的时间大于预设时间;或者,定期触发;从所述至少一个缓存数据中确定最长公共前缀;将包括所述最长公共前缀的区域对应的区域信息下载至所述目标用户的终端设备中。
4.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至2任一项所述的基于GeoHash编码的信息处理方法。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至2任一项所述的基于GeoHash编码的信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490478.2A CN117251486B (zh) | 2023-11-10 | 2023-11-10 | 一种基于GeoHash编码的信息处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490478.2A CN117251486B (zh) | 2023-11-10 | 2023-11-10 | 一种基于GeoHash编码的信息处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117251486A CN117251486A (zh) | 2023-12-19 |
CN117251486B true CN117251486B (zh) | 2024-03-15 |
Family
ID=89133550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311490478.2A Active CN117251486B (zh) | 2023-11-10 | 2023-11-10 | 一种基于GeoHash编码的信息处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251486B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516950A (zh) * | 2014-12-10 | 2015-04-15 | 百度在线网络技术(北京)有限公司 | 一种兴趣点的查询方法及装置 |
CN106407213A (zh) * | 2015-07-31 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 基于地理位置的信息检索方法、装置及系统 |
CN111666508A (zh) * | 2020-06-02 | 2020-09-15 | 厦门卫星定位应用股份有限公司 | 经纬度对应的详细地址提取方法及装置 |
CN114116702A (zh) * | 2021-11-03 | 2022-03-01 | 武汉大学 | 一种基于键值数据库的邻近点快速查询方法 |
CN114416741A (zh) * | 2022-01-16 | 2022-04-29 | 瞰客信息科技(上海)有限公司 | 基于多级索引的kv数据写入读取方法、装置及存储介质 |
CN114880421A (zh) * | 2022-07-08 | 2022-08-09 | 北谷电子有限公司 | 位置服务方法、系统、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11487822B2 (en) * | 2018-06-13 | 2022-11-01 | International Business Machines Corporation | Facilitating spatial indexing on distributed key-value stores |
-
2023
- 2023-11-10 CN CN202311490478.2A patent/CN117251486B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516950A (zh) * | 2014-12-10 | 2015-04-15 | 百度在线网络技术(北京)有限公司 | 一种兴趣点的查询方法及装置 |
CN106407213A (zh) * | 2015-07-31 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 基于地理位置的信息检索方法、装置及系统 |
CN111666508A (zh) * | 2020-06-02 | 2020-09-15 | 厦门卫星定位应用股份有限公司 | 经纬度对应的详细地址提取方法及装置 |
CN114116702A (zh) * | 2021-11-03 | 2022-03-01 | 武汉大学 | 一种基于键值数据库的邻近点快速查询方法 |
CN114416741A (zh) * | 2022-01-16 | 2022-04-29 | 瞰客信息科技(上海)有限公司 | 基于多级索引的kv数据写入读取方法、装置及存储介质 |
CN114880421A (zh) * | 2022-07-08 | 2022-08-09 | 北谷电子有限公司 | 位置服务方法、系统、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117251486A (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571910B (zh) | 在社交网络中查找附近用户的方法和服务器 | |
CN108712519B (zh) | Ip地址的定位方法、装置及存储介质 | |
EP3169113B1 (en) | Network access method and mobile communications terminal | |
Victor et al. | Geofences on the blockchain: Enabling decentralized location-based services | |
CN104994563A (zh) | 一种网络接入方法及移动通信终端 | |
CN113412608B (zh) | 内容推送方法、装置、服务端及存储介质 | |
CN109800360B (zh) | 小区查询方法、装置、电子设备及存储介质 | |
CN105430618A (zh) | 一种网络注册方法和装置 | |
CN102469112B (zh) | 位置跟踪实现方法、装置及系统 | |
CN104320833A (zh) | 一种移动终端自动选网的方法及系统 | |
CN103020125A (zh) | 提供服务资源的方法、输入的方法及服务器、电子设备 | |
CN104853409A (zh) | 一种网络接入方法和移动通信终端 | |
CN117251486B (zh) | 一种基于GeoHash编码的信息处理方法及装置 | |
CN104994492A (zh) | 一种保存标准格式页面的方法及服务器 | |
CN101938693A (zh) | 一种移动终端位置信息的查询方法和系统 | |
CN113515612B (zh) | 一种黑产手机号识别方法及装置 | |
CN101902528A (zh) | 一种存储联系人信息的方法、系统及移动终端 | |
CN106686587A (zh) | 一种无线保真Wi‑Fi连接方法及移动终端 | |
CN110266834B (zh) | 基于互联网协议地址的地区查找方法及装置 | |
CN110992230B (zh) | 基于终端信令数据的全量人口统计方法、装置及服务器 | |
CN116204136B (zh) | 一种数据存储、查询方法、装置、设备及存储介质 | |
CN108345607B (zh) | 搜索方法和装置 | |
CN112765494A (zh) | 搜索方法和搜索装置 | |
CN113408958B (zh) | 行程单流转方法、装置、计算机设备和可读存储介质 | |
CN105025436A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |