基于经纬度的城市查询方法、装置、设备及存储介质与流程

    专利2022-07-08  83


    本申请涉及电子地图
    技术领域
    ,特别涉及一种基于经纬度的城市查询方法、装置、设备及存储介质。
    背景技术
    :在电子地图的使用过程中,用户具有通过输入经纬度坐标获取该经纬度坐标对应的城市信息的需求。在相关技术中,通过使用r树索引,利用城市边界进行划分,用最小邻接矩形建立叶子节点,然后依次向上建立中间节点,从而提高通过经纬度搜索城市性的搜索性能。然而,在百亿级别的经纬度映射城市的场景下,使用r树索引会导致最小邻接矩形的大面积重叠,由此需要通过射线法进行点与多边形的关系判断,来确定点与多边形之间的关系,从而带来过多的计算量,导致搜索性能下降,同时造成对终端计算资源的多占用。技术实现要素:本申请关于一种基于经纬度的城市查询方法、装置、设备及存储介质,能够在百亿级别的经纬度映射城市的场景下,减少计算机设备的计算量,提高搜索效率,减少对计算机计算资源的过多占用。该技术方案如下:一方面,提供了一种基于经纬度的城市查询方法,所述方法包括:获取目标经纬度;将所述目标经纬度转换为目标geohash编码;基于所述目标geohash编码在地图索引中进行查询,获得目标geohash区域;所述地图索引包含各个索引区域与geohash编码之间的对应关系;所述各个索引区域包含第一类型索引区域,所述第一类型索引区域包含至少两个落点区域;响应于所述目标geohash区域为所述第一类型索引区域,确定所述目标经纬度在所述目标geohash区域中的目标落点区域;所述目标落点区域为所述目标geohash区域包含的至少两个落点区域中的一个;基于所述目标落点区域,确定所述目标经纬度对应的城市查询结果。在一种可能的实现方式中,所述响应于所述目标geohash区域为所述第一类型索引区域,确定所述目标经纬度在所述目标geohash区域中的目标落点区域,包括:响应于所述目标geohash区域为所述第一类型索引区域,基于所述目标经纬度,对所述目标geohash区域包含的至少两个落点区域进行射线计算;基于射线计算结果,确定所述目标落点区域。在一种可能的实现方式中,所述基于射线计算结果,确定所述目标落点区域,包括:获取所述至少两个落点区域中,所述射线计算结果为奇数的落点区域为所述目标落点区域。在一种可能的实现方式中,每个所述落点区域分别对应不同的城市编码,所述基于所述目标落点区域,确定所述目标经纬度对应的城市查询结果,包括:基于所述目标落点区域,确定所述落点区域对应的城市编码;基于所述城市编码,输出所述目标经纬度对应的所述城市查询结果。在一种可能的实现方式中,所述各个索引区域包含第二类型索引区域,所述方法还包括:响应于所述目标geohash区域为所述第二类型索引区域,基于所述目标geohash区域的所述geohash编码,确定所述目标经纬度对应的所述城市查询结果;所述第二类型索引区域包含单个落点区域。在一种可能的实现方式中,在所述获取目标经纬度之前,所述方法包括:获取至少一个城市对应的多边形,所述至少一个城市对应的多边形是基于所述至少一个城市的城市边界数据构建的;基于目标城市对应的多边形上的点确定geohash区域,获得目标城市对应的第一类型索引区域;每个所述geohash区域具有对应的geohash编码;所述目标城市是所述至少一个城市中的任意一个;基于所述目标城市对应的第一类型索引区域与所述目标城市对应的多边形,获取所述目标城市对应的第二类型索引区域;基于所述目标城市对应的第一类型索引区域和所述目标城市对应的第二类型索引区域,构建所述目标城市的城市索引。在一种可能的实现方式中,所述基于所述目标城市对应的第一类型索引区域和所述目标城市对应的第二类型索引区域,构建所述目标城市的城市索引,包括:获取所述目标城市对应的第一类型索引区域中的至少两个落点区域中对应于所述目标城市的有效落点区域;基于所述目标城市对应的第二类型索引区域以及所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域,构建所述目标城市的城市索引。在一种可能的实现方式中,所述至少一个城市对应的多边形是按照指定方向对所述至少一个城市的所述城市边界数据进行连接构建的;所述获取所述目标城市对应的第一类型索引区域中的至少两个落点区域中对应于所述目标城市的有效落点区域,包括:基于所述目标城市对应的多边形的边以及所述指定方向,获取所述目标城市对应的第一类型索引区域的至少两个落点区域中,对应于所述目标城市的有效落点区域。在一种可能的实现方式中,所述指定方向包括顺时针方向以及逆时针方向;基于所述目标城市对应的多边形的边以及所述指定方向,获取所述第一类型索引区域的至少两个落点区域中,对应于所述目标城市的有效落点区域,包括:响应于所述指定方向为顺时针方向,将所述目标城市对应的多边形的边的左侧的所述目标城市对应的第一类型索引的落点区域,获取为对应于所述目标城市的有效落点区域;响应于所述指定方向为逆时针方向,将所述目标城市对应的多边形的边的右侧的所述目标城市对应的第一类型索引区域的落点区域,获取为对应于所述目标城市的有效落点区域。在一种可能的实现方式中,所述基于所述目标城市对应第一类型索引区域与所述目标城市对应的多边形,获取所述目标城市对应的第二类型索引区域,包括:获取所述目标城市对应的多边形的最小邻接矩形;基于所述最小邻接矩形中包含的geohash区域以及所述目标城市对应的第一类型索引区域,确定所述目标城市对应的第二类型索引区域。在一种可能的实现方式中,所述基于所述最小邻接矩形中的geohash区域以及所述目标城市对应的第一类型索引区域,确定所述目标城市对应的第二类型索引区域,包括:获取所述最小邻接矩形中包含的geohash区域中的待确定geohash区域,所述待确定geohash区域是指所述最小邻接矩形中除所述目标城市对应的第一类型索引区域之外的geohash区域;基于所述待确定geohash区域,对所述目标城市对应的多边形进行射线计算;基于射线计算结果,确定所述目标城市对应的第二类型索引区域。在一种可能的实现方式中,所述基于射线计算结果,确定所述目标城市对应的第二类型索引区域,包括:获取所述待确定geohash区域中,对所述目标城市对应的多边形各条边的射线计算结果为奇数的geohash区域为所述目标城市对应的第二类型索引区域。在一种可能的实现方式中,所述基于所述目标城市对应的第二类型索引区域以及所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域,构建所述目标城市的城市索引,包括:建立所述目标城市对应的第二类型索引区域与所述目标城市的城市编码之间的第一映射关系;建立所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域与所述目标城市的城市编码之间的第二映射关系;将所述第一映射关系与所述第二映射关系获取为所述目标城市的城市索引。另一方面,提供了一种基于经纬度的城市查询装置,所述装置包括:经纬度获取模块,用于获取目标经纬度;geohash编码转化模块,用于将所述目标经纬度转换为目标geohash编码;geohash区域获取模块,用于基于所述目标geohash编码在地图索引中进行查询,获得目标geohash区域;所述地图索引包含各个索引区域与geohash编码之间的对应关系;所述各个索引区域包含第一类型索引区域,所述第一类型索引区域包含至少两个落点区域;落点区域确定模块,用于响应于所述目标geohash区域为所述第一类型索引区域,确定所述目标经纬度在所述目标geohash区域中的目标落点区域;所述目标落点区域为所述目标geohash区域包含的至少两个落点区域中的一个;第一城市查询结果确定模块,用于基于所述目标落点区域,确定所述目标经纬度对应的城市查询结果。在一种可能的实现方式中,所述落点区域确定模块,包括:射线计算子模块,用于响应于所述目标geohash区域为所述第一类型索引区域,基于所述目标经纬度,对所述目标geohash区域包含的至少两个落点区域进行射线计算;落点区域确定子模块,用于基于射线计算结果,确定所述目标落点区域。在一种可能的实现方式中,所述落点区域确定子模块,用于确定所述至少两个落点区域中,所述射线计算结果为奇数的落点区域为所述目标落点区域。在一种可能的实现方式中,每个所述落点区域分别对应不同的城市编码,所述第一城市查询结果确定模块,包括:城市编码确定子模块,用于基于所述目标落点区域,确定所述落点区域对应的城市编码;城市查询结果输出子模块,用于基于所述城市编码,输出所述目标经纬度对应的所述城市查询结果。在一种可能的实现方式中,所述各个索引区域包含第二类型索引区域,所述装置还包括:第二城市查询结果确定模块,用于响应于所述目标geohash区域为所述第二类型索引区域,基于所述目标geohash区域的所述geohash编码,确定所述目标经纬度对应的所述城市查询结果;所述第二类型索引区域包含单个落点区域。在一种可能的实现方式中,所述装置还包括:多边形获取模块,用于获取至少一个城市对应的多边形,所述至少一个城市对应的多边形是基于所述至少一个城市的城市边界数据构建的;第一类型索引区域获取模块,用于基于目标城市对应的多边形上的点确定geohash区域,获得目标城市对应的第一类型索引区域;每个所述geohash区域具有对应的geohash编码;所述目标城市是所述至少一个城市中的任意一个;第二类型索引区域获取模块,用于基于所述目标城市对应的第一类型索引区域与所述目标城市对应的多边形,获取所述目标城市对应的第二类型索引区域;城市索引构建模块,用于基于所述目标城市对应的第一类型索引区域和所述目标城市对应的第二类型索引区域,构建所述目标城市的城市索引。在一种可能的实现方式中,所述城市索引构建模块,包括:有效落点区域获取子模块,用于获取所述目标城市对应的第一类型索引区域中的至少两个落点区域中对应于所述目标城市的有效落点区域;城市索引构建子模块,用于基于所述目标城市对应的第二类型索引区域以及所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域,构建所述目标城市的城市索引。在一种可能的实现方式中,所述至少一个城市对应的多边形是按照指定方向对所述至少一个城市的所述城市边界数据进行连接构建的;所述有效落点区域获取子模块,用于基于所述目标城市对应的多边形的边以及所述指定方向,获取所述目标城市对应的第一类型索引区域的至少两个落点区域中,对应于所述目标城市的有效落点区域。在一种可能的实现方式中,所述指定方向包括顺时针方向以及逆时针方向;所述有效落点区域获取子模块,包括:第一有效落点区域获取单元,用于响应于所述指定方向为顺时针方向,将所述目标城市对应的多边形的边的右侧的所述目标城市对应的第一类型索引的落点区域,获取为对应于所述目标城市的有效落点区域;第二有效落点区域获取单元,用于响应于所述指定方向为逆时针方向,将所述目标城市对应的多边形的边的左侧的所述目标城市对应的第一类型索引区域的落点区域,获取为对应于所述目标城市的有效落点区域。在一种可能的实现方式中,所述第二类型索引区域获取模块,包括:最小邻接矩形获取子模块,用于获取所述目标城市对应的多边形的最小邻接矩形;第二类型索引区域确定子模块,用于基于所述最小邻接矩形中包含的geohash区域以及所述目标城市对应的第一类型索引区域,确定所述目标城市对应的第二类型索引区域。在一种可能的实现方式中,所述第二类型索引区域确定子模块,包括:待确定geohash区域获取单元,用于获取所述最小邻接矩形中包含的geohash区域中的待确定geohash区域,所述待确定geohash区域是指所述最小邻接矩形中除所述目标城市对应的第一类型索引区域之外的geohash区域;射线计算单元,用于基于所述待确定geohash区域,对所述目标城市对应的多边形进行射线计算;第二类型索引区域确定单元,用于基于射线计算结果,确定所述目标城市对应的第二类型索引区域。在一种可能的实现方式中,所述第二类型索引区域确定单元,用于获取所述待确定geohash区域中,对所述目标城市对应的多边形各条边的射线计算结果为奇数的geohash区域为所述目标城市对应的第二类型索引区域。在一种可能的实现方式中,城市索引构建模块,包括:第一映射关系建立子模块,用于建立所述目标城市对应的第二类型索引区域与所述目标城市的城市编码之间的第一映射关系;第二映射关系建立子模块,用于建立所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域与所述目标城市的城市编码之间的第二映射关系;城市索引获取子模块,用于将所述第一映射关系与所述第二映射关系获取为所述目标城市的城市索引。另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现本申请实施例中提供的基于经纬度的城市查询方法。另一方面,提供了一种计算机可读存储介质,可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述本申请实施例中提供的基于经纬度的城市查询方法。另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的基于经纬度的城市查询方法。本申请提供的技术方案带来的有益效果至少包括:通过目标经纬度坐标对应的geohash编码进行初步定位,当确定该目标经纬度对应的geohash编码的目标geohash区域处于某一城市边界处时,在该目标geohash区域中通过目标经纬度坐标进行精确定位,从而确定该目标经纬度对应的城市查询结果,使得在百亿级别的经纬度映射城市的场景下,在通过经纬度进行城市查询的过程中,减少计算机设备的计算量,提高计算机设备的搜索性能,从而减少由于城市查询造成的对计算机设备计算资源的过多占用。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本申请一示例性实施例示出的geohash编码过程的流程图;图2示出了本申请一示例性实施例示出的终端的结构示意图;图3示出了本申请一示例性实施例提供的基于经纬度的城市查询方法的流程图;图4示出了本申请一示例性实施例示出的geohash区域与某一城市的城市边界所围成的多边形之间的关系示意图;图5示出了本申请一示例性实施例提供的基于经纬度的城市查询方法的流程图;图6示出了本申请一示例性实施例示出的基于多边形上的点确定geohash区域的示意图;图7示出了本申请一示例性实施例示出的构建目标城市对应的多边形的最小邻接矩形的示意图;图8示出了本申请一示例性实施例示出的基于待确定区域进行射线计算的示意图;图9示出了本申请一示例性实施例示出的确定对应于目标城市的有效落点区域的示意图;图10示出了本申请一示例性实施例示出的基于目标经纬度对目标geohash区域包含的至少两个落点区域进行射线计算的示意图;图11示出了本申请一示例性实施例示出的基于经纬度的城市查询方法的示意图;图12示出了本申请一示例性实施例提供的基于经纬度的城市查询装置的方框图;图13是根据一示例性实施例示出的计算机设备的结构框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。首先,对本申请实施例中涉及的名词进行简单的介绍:geohash索引,是一种基于b树(b-tree)索引,又结合了格网索引的思想的空间索引算法。geohash将空间位置编码为一串字符,通过字符串的比较可以得到空间的大致范围,字符串越长,表示的范围越精确。图1示出了本申请一示例性实施例示出的geohash编码过程的流程图,该过程包括:s101,获取地理坐标。该地理坐标为经纬度坐标。s102,对经纬度坐标进行递归分割,获得经度和纬度分别对应的二进制编码。地球的纬度区间为(-90,90),地球经度区间为(-180,180);在生成经纬度坐标对应的geohash编码时,通过采用二分法不断缩小经度和纬度的区间来进行二进制编码,以经纬度坐标为(114.360734e,30.541093n)为例,对于经度而言,(-180,180)区间的中值为0,对经度区间(-180,180)进行二分,获得左区间(-180,0)和右区间(0,180),对于经度114.360734,可以确定其处于右区间(0,180),因此得到一个1;接着将区间(0,180)二分为左区间(0,90)和右区间(90,180),可以确定经度114.360734属于右区间(90,180),因此记为1;递归上述过程,若经度114.360734属于左区间,则记录为0,若属于右区间,则记录为1,最后得到经度114.360734的二进制序列为110100010101001;表1示出了本申请一示例性实施例提供的经度二进制表示。表1经度范围划分区间0划分区间1114.3607341(-180,180)(-180,0)(0,180)12(0,180)(0,90)(90,180)13(90,180)(90,135)(135,180)04(90,135)(90,112.5)(112.5,135)15(112.5,135)(112.5,123.75)(123.75,135)06(112.5,123.75)(112.5,118.125)(118.125,123.75)0……………对于纬度而言,(-90,90)区间的中值为0,对纬度区间(-90,90)进行二分,获得左区间(-90,0)和右区间(0,90),对于纬度30.541093,可以确定其处于右区间(0,90),因此得到一个1;接着将区间(0,90)二分为左区间(0,45)和右区间(45,90),可以确定纬度30.541093属于左区间(0,45),因此记为1;递归上述过程,若纬度30.541093属于左区间,则记录为0,若属于右区间,则记录为1,最后得到纬度30.541093的二进制101010110110111,表2示出了本申请一示例性实施例提供的纬度二进制表示。表2s103,将经度和纬度分别对应的二进制编码进行融合,获得合成二进制编码。对经纬度的融合按照奇偶位进行合并,即以经度在前,纬度在后的先后顺序依次进行融合,先写经度的第一位,之后写纬度的第一位,再写经度的第二位,纬度的第二位,以此类推,以上述经纬度坐标为(114.360734e,30.541093n)对应的经纬度二进制序列为例,获得合成二进制编码为111001100100011100110110010111。s104,对合成二进制编码,每五位分为一组转换成十进制编码。示意性的,将上述合成二进制编码分为11100,11001,00011,10011,01100,10111之后,转化为28,25,3,19,12,23。s105,将获得的十进制编码进行base32编码获得该经纬度的geohash编码。示意性的,按照base32进行编码,表3示出了本申请一示例性实施例提供的一种base32编码表:表3十进制0123456789101112131415base320123456789bcdefg十进制16171819202122232425262728293031base32hjkmnpqrstuvwxyz示意性的,参考表将上述28,25,3,19,12,23转化为wt3mdr,wt3mdr即为经纬度坐标(114.360734e,30.541093n)对应的geohash编码。geohash是一种通用的地理编码算法,其具有以下特性:1)层级空间数据结构,将地理位置用矩形网格划分,同一网格内地理编相同;也就是说geohash编码值表示的并不是一个点,而是一个矩形区域,落在该矩形区域的所有点都可以用该编码表示。2)可以表示任意精度的地理位置坐标,只要编码长度足够长。3)编码前缀匹配的越长,地理位置越邻近。在一种可能的实现方式中,本申请提供一种基于经纬度的城市查询方法,适用于百万级别的经纬度查询城市的场景中,由离线终端执行,图2示出了本申请一示例性实施例示出的终端的结构示意图,如图2所示,该终端包括主板210、外部输出/输入设备220、存储器230、外部接口240、电容触控系统250以及电源260。其中,主板210中集成有处理器和控制器等处理元件。外部输出/输入设备220可以包括显示组件(比如显示屏)、声音播放组件(比如扬声器)、声音采集组件(比如麦克风)以及各类按键等。存储器230中存储有程序代码和数据。外部接口240可以包括耳机接口、充电接口以及数据接口等。电容触控系统250可以集成在外部输出/输入设备220的显示组件或者按键中,电容触控系统250用于检测用户在显示组件或者按键上执行的触控操作。电源260用于对终端中的其它各个部件进行供电。在本申请实施例中,主板210中的处理器可以通过执行或者调用存储器中存储的程序代码和数据进行基于经纬度的城市查询,并将城市查询结果通过外部输出/输入设备220进行展示。在基于经纬度进行城市查询的过程中,可以通过电容触控系统250检测用户与终端进行交互时执行的触控操作。图3示出了本申请一示例性实施例提供的基于经纬度的城市查询方法的流程图。该基于经纬度的城市查询方法可以由计算机设备执行,该计算机是设备可以实现为图2所示的终端,如图3所示,该基于经纬度的城市查询方法包括以下步骤:步骤310,获取目标经纬度。该目标经纬度即为待进行城市查询的经纬度,该目标经纬度可以是基于用户的查询操作输入的经纬度。步骤320,将目标经纬度转换为目标geohash编码。在一种可能的实现方式中,按照如图1所示的geohash编码步骤,将目标经纬度转化为与其对应的geohash编码,称为目标geohash编码。步骤330,基于目标geohash编码在地图索引中进行查询,获得目标geohash区域;该地图索引包含各个索引区域与geohash编码之间的对应关系;各个索引区域包含第一类型索引区域,该第一类型索引区域包含至少两个落点区域。在一种可能的实现方式中,地图索引是基于不同城市的索引建立的,每个城市具有各自对应的城市区域,示意性的,每个城市的城市区域是以各个城市的城市边界所围成的多边形构成的区域。在一种可能的实现方式中,目标geohash区域与某一城市的城市边界所围成的多边形存在相离、相交以及内含三种关系,其中相离是指目标geohash区域不属于该城市;相交表示该目标geohash区域部分属于该城市,部分不属于该城市;内含表示该目标geohash区域全部属于该城市。将与城市的城市边界所围成的多边形具有相交关系的geohash区域称为第一类型区域;将与城市的城市边界所围成的多边形具有内含关系的geohash区称为第二类型区域。图4示出了本申请一示例性实施例示出的geohash区域与某一城市的城市边界所围成的多边形之间的关系示意图,如图4所示,geohash区域410为与该城市的城市边界所围成的多边形440具有相离关系的geohash区域;geohash区域420为与该城市的城市边界所围成的多边形440具有相交关系的geohash区域;geohash区域430为与该城市的城市边界所围成的多边形440具有内含关系的geohash区域。在一种可能的实现方式中,某一城市所对应的索引区域中只包含第一索引区域,或者,在另一种可能的实现方式中,某一城市所对应的索引区域中包含第一索引区域和第二索引区域;本申请以城市所对应的索引区域包含第一索引区域和第二索引区域进行说明。步骤340,响应于目标geohash区域为第一类型索引区域,确定目标经纬度在目标geohash区域中的目标落点区域;该目标落点区域为目标geohash区域包含的至少两个落点区域中的一个。在一种可能的实现方式中,当目标geohash区域为第一类型索引区域时,即目标geohash区域是与城市边界所围成的多边形相交的geohash区域时,对应该目标geohash区域的经纬度可以存在两种情况,即存在与该城市中,或者不存在于该城市中,如图4所示,geohash区域421与城市边界所围成的多边形440相交,即城市边界所围成的多边形440将geohash区域421分为两个落点区域,即落点区域4211与落点区域4212,若目标geohash区域所对应的目标经纬度处于落点区域4211中,则确定该落点区域4211为目标落点区域;若目标geohash区域所对应的目标经纬度处于落点区域4212中,则确定该落点区域4212为目标落点区域。步骤350,基于目标落点区域,确定目标经纬度对应的城市查询结果。综上所述,本申请实施例提供的基于经纬度的城市查询方法,通过目标经纬度坐标对应的geohash编码进行初步定位,当确定该目标经纬度对应的geohash编码的目标geohash区域处于某一城市边界处时,在该目标geohash区域中通过目标经纬度坐标进行精确定位,从而确定该目标经纬度对应的城市查询结果,使得在百亿级别的经纬度映射城市的场景下,在通过经纬度进行城市查询的过程中,减少计算机设备的计算量,提高计算机设备的搜索性能,从而减少由于城市查询造成的对计算机设备计算资源的过多占用。在一种可能的实现方式中,本申请提供的基于经纬度的城市查询方法包括地图索引构建阶段以及基于经纬度进行城市查询阶段两个阶段;图5示出了本申请一示例性实施例提供的基于经纬度的城市查询方法的流程图,该基于经纬度的城市查询方法可以由计算机设备执行,该计算机是设备可以实现为图2所示的终端,如图5所示,该基于经纬度的城市查询方法包括以下步骤:步骤501,获取至少一个城市对应的多边形,该至少一个城市对应的多边形是基于至少一个城市的城市边界数据构建的。在一种可能的实现方式中,该至少一个城市的城市边界数据可以是以经纬度坐标的形式表示的数据,该城市边界数据可以从地图应用程序的相关数据库中获取的数据,将至少一个城市的城市边界数据按照指定顺序进行连接,构成至少一个城市对应的多边形。步骤502,基于目标城市对应的多边形上的点确定geohash区域,获得目标城市对应的第一类型索引区域;每个geohash区域具有对应的geohash编码;该目标城市是至少一个城市中的任意一个。由于各个城市在进行城市索引构建时所采用的方式相同,因此,本申请实施例以目标城市为例,对城市索引构建的过程进行说明。在一种可能的实现方式中,在目标城市对应的多边形上的点确定geohash区域的过程中,是以相同的精度进行确定的,即基于各个点确定的geohash编码的字符串长度相同,用以保证在进行geohash区域划分的统一性。在一种可能的实现方式中,基于多边形上的点确定所得的geohash区域与目标城市的多边形相交,即多边形上的点包含在于其相对应的geohash区域内,图6示出了本申请一示例性实施例示出的基于多边形上的点确定geohash区域的示意图,如图6所示,多边形上距离相近的点所对应的geohash区域可以相同,也可以不同,比如点610与点620所对应的geohash区域相同,但点610与点630所对应的geohash区域不同,但多边形上的每个点都被包含在与其对应的geohash区域内。步骤503,基于目标城市对应的第一类型索引区域与目标城市对应的多边形,获取目标城市对应的第二类型索引区域。在一种可能的实现方式中,获取目标城市对应的多边形的最小邻接矩形;基于该最小邻接矩形中包含的geohash区域以及目标城市对应的第一类型索引区域,确定目标城市对应的第二类型索引区域。在一种可能的实现方式中,获取目标城市对应的多边形的最小邻接矩形包括:获取城市边界数据中的目标点,该目标点包括最大经度对应的点、最小经度对应的点、最大纬度对应的点以及最小纬度对应的点;基于目标点构建目标城市对应的多边形的最小邻接矩形。在计算机设备计算geohash编码时,以东经为正,西经为负;北纬为正,南纬为负的规律对经纬度坐标进行递归分割,图7示出了本申请一示例性实施例示出的构建目标城市对应的多边形的最小邻接矩形的示意图,如图7所示,该目标城市的多边形的最大经度对应的点、最小经度对应的点、最大纬度对应的点以及最小纬度对应的点分别为点710,点720,点730以及点740,将这四个点作为目标点,以geohash区域为最小步长构建所得的矩形即为目标城市对应的多边形的最小邻接矩形750。如图7所示,该最小邻接矩形中包含多个geohash区域,其中包含与目标城市对应的多边形相交的geohash区域以及与目标城市对应的多边形具有相离和内含关系的geohash区域。为在与目标城市对应的多边形具有相离和内含关系的geohash区域中,确定与目标城市对应的多边形具有内含关系的geohash区域,在一种可能的实现方式中:获取最小邻接矩形中包含的geohash区域中的待确定geohash区域,该待确定geohash区域是指最小邻接矩形中除目标城市对应的第一类型索引区域之外的geohash区域;基于待确定geohash区域,对目标城市对应的多边形进行射线计算;基于射线计算结果,确定目标城市对应的第二类型索引区域。在一种可能的实现方式中,获取待确定geohash区域中,对目标城市对应的多边形各条边的射线计算结果为奇数的geohash区域为目标城市对应的第二类型索引区域。在一种可能的实现方式中,该射线计算是指,基于第一待确定区域向目标城市对应的多边形的各条边发射射线,响应于基于第一待确定区域发射的所有射线与目标城市对应的多边形的交点均为奇数,确定该第一待确定区域与目标城市对应的多边形之间的位置关系为包含关系;响应基于第一待确定区域发射的所有射线与目标城市对应的多边形的交点存在偶数,确定该第一待确定区域与目标城市对应的多边形之间的位置关系为包含关系。图8示出了本申请一示例性实施例示出的基于待确定区域进行射线计算的示意图,如图8中的(a)部分所示,基于待确定区域810(比如以区域中心),向目标城市对应的多边形的各条边发射射线,由于该待确定区域810对应的所有射线与目标城市对应的多边形的交点数量均为1(奇数),因此,计算机设备可以将待确定区域810获取为第二类型索引区域;如图8中的(b)部分所示,基于待确定区域820,目标城市对应的多边形的各条边发射射线,由于该待确定区域820对应的射线中,存在与目标城市对应的多边形的交点为2(偶数)的射线,因此计算机设备可以确定该待确定区域820为与目标城市对应的多边形具有相离关系的geohash区域。步骤504,基于目标城市对应的第一类型索引区域和目标城市对应的第二类型索引区域,构建目标城市的城市索引。在一种可能的实现方式中,获取目标城市对应的第一类型索引区域中的至少两个落点区域中对应于目标城市的有效落点区域;基于目标城市对应的第二类型索引区域以及目标城市对应的第一类型索引区域中对应于目标城市的有效落点区域,构建目标城市的城市索引。其中,目标城市对应的第一类型索引区域中的至少两个落点区域中对应于目标城市的有效落点区域,也就是指第一类型索引区域中属于目标城市中的区域,也就是指第一类型索引区域中处于目标城市边界内部的区域。在一种可能的实现方式中,至少一个城市对应的多边形是按照指定方向对至少一个城市的城市边界数据进行连接构建的。上述获取目标城市对应的第一类型索引区域中的至少两个落点区域中对应于目标城市的有效落点区域,包括:基于目标城市对应的多边形的边以及指定方向,获取目标城市对应的第一类型索引区域的至少两个落点区域中,对应于目标城市的有效落点区域。在一种可能的实现方式中,该指定方向包括顺时针方向以及逆时针方向;响应于指定方向为顺时针方向,将目标城市对应的多边形的边的右侧的目标城市对应的第一类型索引的落点区域,获取为对应于目标城市的有效落点区域;响应于指定方向为逆时针方向,将目标城市对应的多边形的边的左侧的目标城市对应的第一类型索引区域的落点区域,获取为对应于目标城市的有效落点区域。图9示出了本申请一示例性实施例示出的确定对应于目标城市的有效落点区域的示意图,图9中的(a)部分示出了当指定方向为顺时针方向的示意图,图9中的(b)部分示出了当指定方向为逆时针的示意图;如图9中的(a)部分所示,当指定方向为顺时针时,目标城市对应的多边形中穿过第一类型索引区域910的边,是从第一类型索引区域910的右侧穿入第一类型索引区域910,从第一类型索引区域910的左侧穿出第一类型索引区域910的,与该方向相对应,穿过第一类型索引区域910的边的右侧为第一类型索引区域910中属于目标城市的有效落点区域,而其左侧则为非目标城市的有效落点区域;如图9中的(b)部分所示,当指定方向为逆时针时,目标城市对应的多边形中穿过第一类型索引区域910的边,是从第一类型索引区域910的左侧穿入第一类型索引区域910,从第一类型索引区域910的左侧穿出第一类型索引区域910的,与该方向相对应,穿过第一类型索引区域910的边的左侧为第一类型索引区域910中属于目标城市的有效落点区域,而其右侧则为非目标城市的有效落点区域。需要说明的是,在进行地图索引构建时,各个城市所对应的多边形是按照同一方向对城市边界数据连接构建的,即都按照顺时针对城市边界数据进行连接构建城市对应的多边形,或者,都按照逆时针对城市边界数据进行连接构建城市对应的多边形。在一种可能的实现方式中,上述基于目标城市对应的第二类型索引区域以及目标城市对应的第一类型索引区域中对应于目标城市的有效落点区域,构建目标城市的城市索引,包括:建立目标城市对应的第二类型索引区域与目标城市的城市编码之间的第一映射关系;建立目标城市对应的第一类型索引区域中对应于目标城市的有效落点区域与目标城市的城市编码之间的第二映射关系;将第一映射关系与第二映射关系获取为目标城市的城市索引。对于第二类型索引区域而言,由于第二类型索引区域是与目标城市对应的多边形具有内含关系的geohash区域,在确定了目标经纬度所对应的geohash区域为第二类型索引区域后,即可直接根据第二类型索引区域与目标城市的城市编码之间的第一映射关系,确定该geohash区域所对应的城市,而无需进行进一步判断,因此,在进行城市索引构建时,对于第二类型索引区域,可以直接建立目标城市对应的第二类型索引区域与目标城市的城市编码之间的映射关系,或者,也可以建立第二类型索引区域的geohash编码与目标城市的城市编码之间的映射关系;而对于第一类型索引区域而言,由于第二类型索引区域是与目标城市对应的多边形具有相交关系的geohash区域,在确定了目标经纬度所对应的geohash区域为第一类型索引区域后,仍无法判定该目标经纬度是否存在与目标城市对应的多边形内,需要进一步对该目标经纬度在目标geohash区域中的落点区域进行确定,因此,需要建立第一类型索引区域中对应于目标城市的有效落点区域与目标城市的城市编码之间的映射关系,或者建立第一类型索引区域中对应于目标城市的有效落点区域的落点区域编码与目标城市的城市编码之间的映射关系。步骤505,获取目标经纬度。步骤506,将目标经纬度转换为目标geohash编码。步骤507,基于目标geohash编码在地图索引中进行查询,获得目标geohash区域;该地图索引包含各个索引区域与geohash编码之间的对应关系;各个索引区域包含第一类型索引区域,该第一类型索引区域包含至少两个落点区域。步骤508,响应于目标geohash区域为第一类型索引区域,基于目标经纬度,对目标geohash区域包含的至少两个落点区域进行射线计算;基于射线计算结果,确定目标落点区域。在一种可能的实现方式中,计算机设备可以基于目标geohash区域对应的城市编码的数量确定该目标geohash区域是第一类型索引区域还是第二类型索引区域:响应于目标geohash区域对应的城市编码的数量为一个,确定该目标geohash区域为第二类型索引区域;响应于目标geohash区域对应的城市编码的数量大于一个,确定该目标geohash区域为第一类型索引区域。在一种可能的实现方式中,获取至少两个落点区域中,射线计算结果为奇数的落点区域为目标落点区域。图10示出了本申请一示例性实施例示出的基于目标经纬度对目标geohash区域包含的至少两个落点区域进行射线计算的示意图,如图10所示目标经纬度的地理位置是固定的,基于目标经纬度1010,向目标geohash区域1020所包含的两个落点区域(落点区域1021与落点区域1022)的各条边分别发射射线,其中,基于目标经纬度1010向落点区域1021发射的所有射线的交点均为1(奇数),因此,计算机设备确定该目标经纬度的落点区域为落点区域1021;而基于目标经纬度1010向落点区域1022发射的射线中,存在交点均为2(偶数)的射线,因此,计算机设备确定该目标经纬度并未落在落点区域1022中。由于目标geohash区域中的落点区域是基于目标城市对应的多边形与目标geohash区域的边构成的多边形区域,其边数远小于目标城市对应的多边形,因此,在百亿级别的基于经纬度查询城市的场景中,可以大幅度减少计算机设备在确定目标经纬度是否存在与目标城市中时所需的计算量,从而减少对计算机设备的计算资源的消耗。在一种可能的实现方式中,基于目标经纬度确定落点区域的过程是依次进行的,即在进行落点区域判断时,先对目标geohash区域中的第一落点区域进行射线计算,在确定标经纬度并未落在第一落点区域中后,再对目标geohash区域中的第二落点区域进行射线计算,以此类推;响应于在目标geohash区域已确定该目标经纬度的落点区域,则停止对目标geohash区域中其他落点区域进行射线计算的步骤,以减少不必要的计算,节省终端的计算资源。步骤509,基于目标落点区域,确定目标经纬度对应的城市查询结果。在一种可能的实现方式中,每个落点区域分别对应不同的城市编码,上述过程实现为:基于目标落点区域,确定落点区域对应的城市编码;基于城市编码,输出目标经纬度对应的城市查询结果。在一种可能的实现方式中,该城市查询结果可以是指该城市的省市信息,比如“山东省菏泽市”,或者,该城市查询结果还可以包括该城市的旅游信息,比如该城市的旅游景点;交通信息,比如从终端当前位置去往该城市的路径规划;美食信息,比如该城市的特色小吃推荐等等,本申请对城市查询结果的类型不进行限制。步骤510,响应于目标geohash区域为第二类型索引区域,基于目标geohash区域的geohash编码,确定目标经纬度对应的城市查询结果;该第二类型索引区域包含单个落点区域。综上所述,本申请实施例提供的基于经纬度的城市查询方法,通过目标经纬度坐标对应的geohash编码进行初步定位,当确定该目标经纬度对应的geohash编码的目标geohash区域处于某一城市边界处时,在该目标geohash区域中通过目标经纬度坐标进行精确定位,从而确定该目标经纬度对应的城市查询结果,使得在百亿级别的经纬度映射城市的场景下,在通过经纬度进行城市查询的过程中,减少计算机设备的计算量,提高计算机设备的搜索性能,从而减少由于城市查询造成的对计算机设备计算资源的过多占用。图11示出了本申请一示例性实施例示出的基于经纬度的城市查询方法的示意图,该基于经纬度的城市查询方法包括地图索引构建阶段1110以及基于经纬度进行城市查询阶段1120,在地图索引构建阶段1110中,通过获取城市边界对应的多边形,基于城市边界对应的多边形上的点确定geohash区域,即确定该城市对应的第一类型索引区域;构建城市边界的多边形对应的最小邻接矩形,在最小邻接矩形的范围内确定第二类型索引区域;基于城市边界对应的多边形的构建方向,确定第一类型索引区域中对于该城市的有效落地区域,最后,建立第二类型索引区域与该城市的城市编码之间映射关系,以及建立第一类型索引区域中对于该城市的有效落地区域与该城市的城市编码之间的映射关系。在基于经纬度进行城市查询阶段1120中,计算机设备将获取到的目标经纬度转换为geohash编码,基于该geohash编码在地图索引构建阶段1110构建的地图索引中进行查询,若该geohash编码对应的geohash区域属于第二类型索引区域,则可直接基于第二类型索引区域与城市编码之间的映射关系直接输出城市查询结果;若该geohash编码对应的geohash区域属于第一类型索引区域,则需要在第一类型索引区域中确定目标落地区域,基于目标落地区域与城市编码之间的映射关系输出城市查询结果。图12示出了本申请一示例性实施例提供的基于经纬度的城市查询装置的方框图。该基于经纬度的城市查询装置可以应用于计算机设备中,该计算机是设备可以实现为图2所示的终端,如图12所示,该基于经纬度的城市查询装置包括:经纬度获取模块1210,用于获取目标经纬度;geohash编码转化模块1220,用于将目标经纬度转换为目标geohash编码;geohash区域获取模块1230,用于基于目标geohash编码在地图索引中进行查询,获得目标geohash区域;该地图索引包含各个索引区域与geohash编码之间的对应关系;各个索引区域包含第一类型索引区域,该第一类型索引区域包含至少两个落点区域;落点区域确定模块1240,用于响应于目标geohash区域为第一类型索引区域,确定目标经纬度在目标geohash区域中的目标落点区域;该目标落点区域为目标geohash区域包含的至少两个落点区域中的一个;第一城市查询结果确定模块1250,用于基于目标落点区域,确定目标经纬度对应的城市查询结果。在一种可能的实现方式中,该落点区域确定模块1240,包括:射线计算子模块,用于响应于目标geohash区域为第一类型索引区域,基于目标经纬度,对目标geohash区域包含的至少两个落点区域进行射线计算;落点区域确定子模块,用于基于射线计算结果,确定目标落点区域。在一种可能的实现方式中,该落点区域确定子模块,用于确定至少两个落点区域中,该射线计算结果为奇数的落点区域为目标落点区域。在一种可能的实现方式中,每个落点区域分别对应不同的城市编码,该第一城市查询结果确定模块1250,包括:城市编码确定子模块,用于基于目标落点区域,确定落点区域对应的城市编码;城市查询结果输出子模块,用于基于城市编码,输出目标经纬度对应的城市查询结果。在一种可能的实现方式中,各个索引区域包含第二类型索引区域,该装置还包括:第二城市查询结果确定模块,用于响应于目标geohash区域为第二类型索引区域,基于目标geohash区域的geohash编码,确定目标经纬度对应的城市查询结果;该第二类型索引区域包含单个落点区域。在一种可能的实现方式中,该装置还包括:多边形获取模块,用于获取至少一个城市对应的多边形,至少一个城市对应的多边形是基于至少一个城市的城市边界数据构建的;第一类型索引区域获取模块,用于基于目标城市对应的多边形上的点转确定geohash区域,获得目标城市对应的第一类型索引区域;每个geohash区域具有对应的geohash编码;该目标城市是至少一个城市中的任意一个;第二类型索引区域获取模块,用于基于目标城市对应的第一类型索引区域与目标城市对应的多边形,获取目标城市对应的第二类型索引区域;城市索引构建模块,用于基于目标城市对应的第一类型索引区域和目标城市对应的第二类型索引区域,构建目标城市的城市索引。在一种可能的实现方式中,该城市索引构建模块,包括:有效落点区域获取子模块,用于获取目标城市对应的第一类型索引区域中的至少两个落点区域中对应于目标城市的有效落点区域;城市索引构建子模块,用于基于目标城市对应的第二类型索引区域以及目标城市对应的第一类型索引区域中对应于目标城市的有效落点区域,构建目标城市的城市索引。在一种可能的实现方式中,至少一个城市对应的多边形是按照指定方向对至少一个城市的城市边界数据进行连接构建的;该有效落点区域获取子模块,用于基于目标城市对应的多边形的边以及指定方向,获取目标城市对应的第一类型索引区域的至少两个落点区域中,对应于目标城市的有效落点区域。在一种可能的实现方式中,该指定方向包括顺时针方向以及逆时针方向;该有效落点区域获取子模块,包括:第一有效落点区域获取单元,用于响应于指定方向为顺时针方向,将目标城市对应的多边形的边的右侧的目标城市对应的第一类型索引的落点区域,获取为对应于目标城市的有效落点区域;第二有效落点区域获取单元,用于响应于指定方向为逆时针方向,将目标城市对应的多边形的边的左侧的目标城市对应的第一类型索引区域的落点区域,获取为对应于目标城市的有效落点区域。在一种可能的实现方式中,该第二类型索引区域获取模块,包括:最小邻接矩形获取子模块,用于获取目标城市对应的多边形的最小邻接矩形;第二类型索引区域确定子模块,用于基于最小邻接矩形中包含的geohash区域以及目标城市对应的第一类型索引区域,确定目标城市对应的第二类型索引区域。在一种可能的实现方式中,该第二类型索引区域确定子模块,包括:待确定geohash区域获取单元,用于获取最小邻接矩形中包含的geohash区域中的待确定geohash区域,该待确定geohash区域是指最小邻接矩形中除目标城市对应的第一类型索引区域之外的geohash区域;射线计算单元,用于基于待确定geohash区域,对目标城市对应的多边形进行射线计算;第二类型索引区域确定单元,用于基于射线计算结果,确定目标城市对应的第二类型索引区域。在一种可能的实现方式中,该第二类型索引区域确定单元,用于获取待确定geohash区域中,对目标城市对应的多边形各条边的射线计算结果为奇数的geohash区域为目标城市对应的第二类型索引区域。在一种可能的实现方式中,城市索引构建模块,包括:第一映射关系建立子模块,用于建立目标城市对应的第二类型索引区域与目标城市的城市编码之间的第一映射关系;第二映射关系建立子模块,用于建立目标城市对应的第一类型索引区域中对应于目标城市的有效落点区域与目标城市的城市编码之间的第二映射关系;城市索引获取子模块,用于将第一映射关系与第二映射关系获取为目标城市的城市索引。综上所述,本申请实施例提供的基于经纬度的城市查询装置,应用于计算机设备中,通过目标经纬度坐标对应的geohash编码进行初步定位,当确定该目标经纬度对应的geohash编码的目标geohash区域处于某一城市边界处时,在该目标geohash区域中通过目标经纬度坐标进行精确定位,从而确定该目标经纬度对应的城市查询结果,使得在百亿级别的经纬度映射城市的场景下,在通过经纬度进行城市查询的过程中,减少计算机设备的计算量,提高计算机设备的搜索性能,从而减少由于城市查询造成的对计算机设备计算资源的过多占用。图13是根据一示例性实施例示出的计算机设备1300的结构框图。该计算机设备1300可以是终端,比如智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1300还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。通常,计算机设备1300包括有:处理器1301和存储器1302。处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本申请中方法实施例提供的基于经纬度的城市查询方法。在一些实施例中,计算机设备1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、显示屏1305、摄像头组件1306、音频电路1307、定位组件1308和电源1309中的至少一种。在一些实施例中,计算机设备1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。本领域技术人员可以理解,图13中示出的结构并不构成对计算机设备1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。本申请实施例还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述基于经纬度的城市查询方法的全部或部分步骤。例如,该计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中所示的基于经纬度的城市查询方法的全部或部分步骤。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本
    技术领域
    中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。当前第1页1 2 3 
    技术特征:

    1.一种基于经纬度的城市查询方法,其特征在于,所述方法包括:

    获取目标经纬度;

    将所述目标经纬度转换为目标geohash编码;

    基于所述目标geohash编码在地图索引中进行查询,获得目标geohash区域;所述地图索引包含各个索引区域与geohash编码之间的对应关系;所述各个索引区域包含第一类型索引区域,所述第一类型索引区域包含至少两个落点区域;

    响应于所述目标geohash区域为所述第一类型索引区域,确定所述目标经纬度在所述目标geohash区域中的目标落点区域;所述目标落点区域为所述目标geohash区域包含的至少两个落点区域中的一个;

    基于所述目标落点区域,确定所述目标经纬度对应的城市查询结果。

    2.根据权利要求1所述的方法,其特征在于,所述响应于所述目标geohash区域为所述第一类型索引区域,确定所述目标经纬度在所述目标geohash区域中的目标落点区域,包括:

    响应于所述目标geohash区域为所述第一类型索引区域,基于所述目标经纬度,对所述目标geohash区域包含的至少两个落点区域进行射线计算;

    基于射线计算结果,确定所述目标落点区域。

    3.根据权利要求2所述的方法,其特征在于,所述基于射线计算结果,确定所述目标落点区域,包括:

    确定所述至少两个落点区域中,所述射线计算结果为奇数的落点区域为所述目标落点区域。

    4.根据权利要求3所述的方法,其特征在于,每个所述落点区域分别对应不同的城市编码,所述基于所述目标落点区域,确定所述目标经纬度对应的城市查询结果,包括:

    基于所述目标落点区域,确定所述落点区域对应的城市编码;

    基于所述城市编码,输出所述目标经纬度对应的所述城市查询结果。

    5.根据权利要求1所述的方法,其特征在于,所述各个索引区域包含第二类型索引区域,所述方法还包括:

    响应于所述目标geohash区域为所述第二类型索引区域,基于所述目标geohash区域的所述geohash编码,确定所述目标经纬度对应的所述城市查询结果;所述第二类型索引区域包含单个落点区域。

    6.根据权利要求1所述的方法,其特征在于,在所述获取目标经纬度之前,所述方法包括:

    获取至少一个城市对应的多边形,所述至少一个城市对应的多边形是基于所述至少一个城市的城市边界数据构建的;

    基于目标城市对应的多边形上的点确定geohash区域,获得目标城市对应的第一类型索引区域;每个所述geohash区域具有对应的geohash编码;所述目标城市是所述至少一个城市中的任意一个;

    基于所述目标城市对应的第一类型索引区域与所述目标城市对应的多边形,获取所述目标城市对应的第二类型索引区域;

    基于所述目标城市对应的第一类型索引区域和所述目标城市对应的第二类型索引区域,构建所述目标城市的城市索引。

    7.根据权利要求6所述的方法,其特征在于,所述基于所述目标城市对应的第一类型索引区域和所述目标城市对应的第二类型索引区域,构建所述目标城市的城市索引,包括:

    获取所述目标城市对应的第一类型索引区域中的至少两个落点区域中对应于所述目标城市的有效落点区域;

    基于所述目标城市对应的第二类型索引区域以及所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域,构建所述目标城市的城市索引。

    8.根据权利要求7所述的方法,其特征在于,所述至少一个城市对应的多边形是按照指定方向对所述至少一个城市的所述城市边界数据进行连接构建的;

    所述获取所述目标城市对应的第一类型索引区域中的至少两个落点区域中对应于所述目标城市的有效落点区域,包括:

    基于所述目标城市对应的多边形的边以及所述指定方向,获取所述目标城市对应的第一类型索引区域的至少两个落点区域中,对应于所述目标城市的有效落点区域。

    9.根据权利要求8所述的方法,其特征在于,所述指定方向包括顺时针方向以及逆时针方向;

    基于所述目标城市对应的多边形的边以及所述指定方向,获取所述第一类型索引区域的至少两个落点区域中,对应于所述目标城市的有效落点区域,包括:

    响应于所述指定方向为顺时针方向,将所述目标城市对应的多边形的边的右侧的所述目标城市对应的第一类型索引的落点区域,获取为对应于所述目标城市的有效落点区域;

    响应于所述指定方向为逆时针方向,将所述目标城市对应的多边形的边的左侧的所述目标城市对应的第一类型索引区域的落点区域,获取为对应于所述目标城市的有效落点区域。

    10.根据权利要求6所述的方法,其特征在于,所述基于所述目标城市对应第一类型索引区域与所述目标城市对应的多边形,获取所述目标城市对应的第二类型索引区域,包括:

    获取所述目标城市对应的多边形的最小邻接矩形;

    基于所述最小邻接矩形中包含的geohash区域以及所述目标城市对应的第一类型索引区域,确定所述目标城市对应的第二类型索引区域。

    11.根据权利要求10所述的方法,其特征在于,所述基于所述最小邻接矩形中的geohash区域以及所述目标城市对应的第一类型索引区域,确定所述目标城市对应的第二类型索引区域,包括:

    获取所述最小邻接矩形中包含的geohash区域中的待确定geohash区域,所述待确定geohash区域是指所述最小邻接矩形中除所述目标城市对应的第一类型索引区域之外的geohash区域;

    基于所述待确定geohash区域,对所述目标城市对应的多边形进行射线计算;

    基于射线计算结果,确定所述目标城市对应的第二类型索引区域。

    12.根据权利要求11所述的方法,其特征在于,所述基于射线计算结果,确定所述目标城市对应的第二类型索引区域,包括:

    获取所述待确定geohash区域中,对所述目标城市对应的多边形各条边的射线计算结果为奇数的geohash区域为所述目标城市对应的第二类型索引区域。

    13.根据权利要求8所述的方法,其特征在于,所述基于所述目标城市对应的第二类型索引区域以及所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域,构建所述目标城市的城市索引,包括:

    建立所述目标城市对应的第二类型索引区域与所述目标城市的城市编码之间的第一映射关系;

    建立所述目标城市对应的第一类型索引区域中对应于所述目标城市的有效落点区域与所述目标城市的城市编码之间的第二映射关系;

    将所述第一映射关系与所述第二映射关系获取为所述目标城市的城市索引。

    14.一种基于经纬度的城市查询装置,其特征在于,所述装置包括:

    经纬度获取模块,用于获取目标经纬度;

    geohash编码转化模块,用于将所述目标经纬度转换为目标geohash编码;

    geohash区域获取模块,用于基于所述目标geohash编码在地图索引中进行查询,获得目标geohash区域;所述地图索引包含各个索引区域与geohash编码之间的对应关系;所述各个索引区域包含第一类型索引区域,所述第一类型索引区域包含至少两个落点区域;

    落点区域确定模块,用于响应于所述目标geohash区域为所述第一类型索引区域,确定所述目标经纬度在所述目标geohash区域中的目标落点区域;所述目标落点区域为所述目标geohash区域包含的至少两个落点区域中的一个;

    第一城市查询结果确定模块,用于基于所述目标落点区域,确定所述目标经纬度对应的城市查询结果。

    15.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至13任一所述的基于经纬度的城市查询方法。

    16.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1至13任一所述的基于经纬度的城市查询方法。

    技术总结
    本申请关于一种基于经纬度的城市查询方法、装置、设备及存储介质,涉及电子地图技术领域。该方法包括:获取目标经纬度;将目标经纬度转换为目标Geohash编码;基于目标Geohash编码在包含第一类型索引区域的地图索引中进行查询,获得目标Geohash区域;响应于目标Geohash区域为第一类型索引区域,确定目标经纬度在目标Geohash区域中的目标落点区域;基于目标落点区域,确定目标经纬度对应的城市查询结果。通过上述方法,使得在通过经纬度进行城市查询的过程中,减少计算机设备的计算量,提高计算机设备的搜索性能,从而减少由于城市查询造成的对计算机设备计算资源的过多占用。

    技术研发人员:赵领杰;秦思源;王露珠
    受保护的技术使用者:北京三快在线科技有限公司
    技术研发日:2020.11.27
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22145.html

    最新回复(0)