CN111323025A - 一种基于GeoHash算法的坐标判定方法 - Google Patents
一种基于GeoHash算法的坐标判定方法 Download PDFInfo
- Publication number
- CN111323025A CN111323025A CN202010117457.6A CN202010117457A CN111323025A CN 111323025 A CN111323025 A CN 111323025A CN 202010117457 A CN202010117457 A CN 202010117457A CN 111323025 A CN111323025 A CN 111323025A
- Authority
- CN
- China
- Prior art keywords
- electronic fence
- geohash
- coordinate
- cell
- central
- 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
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power-Operated Mechanisms For Wings (AREA)
Abstract
本发明公开的基于GeoHash算法的坐标判定方法,涉及定位技术领域,通过将电子围栏划分为多个cell单元格,将多个cell单元格填充至电子围栏中,利用GeoHash算法,对坐标数据进行转换,生成GeoHash编码数据,判断GeoHash编码数据是否属于电子围栏,实现了快速检索及定位坐标数据,适用于各种形状的电子围栏。
Description
技术领域
本发明属于定位技术领域,具体涉及一种基于GeoHash算法的坐标判定方法。
背景技术
目前,越来越多的人喜欢使用共享汽车出门。随着共享汽车数量的增加,实现对共享汽车的快速及精准定位为目前嗜需解决的问题。
现有技术基于顶点绘制图形判断坐标方式对共享汽车进行定位,这种方式相对简单易用,可以处理包括凹凸电子围栏电子围栏的位置判定,但存在以下缺陷:
(1)对于复杂的形状不规则电子围栏(空间电子围栏、圆形、半圆等)不能处理;
(2)由于每次计算需要基于绘制的电子围栏做内部归属判断,复杂度较高。
发明内容
针对现有技术存在的缺陷,本发明实施例提供了一种基于GeoHash算法的坐标判定方法,该方法包括以下步骤:
根据电子围栏的原点坐标及Z-order曲线的边界,将电子围栏划分为多个cell单元格;
获取电子围栏各个顶点的坐标数据,生成坐标数据集合并根据所述坐标数据集合,分别将所述多个cell单元格填充至所述电子围栏中,其中,所述电子围栏包括形状规则的电子围栏及形状不规则的电子围栏;
获取车辆当前的位置,生成车辆的坐标数据;
利用GeoHash算法,对所述坐标数据进行转换,生成GeoHash编码数据;
判断所述GeoHash编码数据是否属于电子围栏,若是,则确定车辆当前处于电子围栏内。
优选地,根据所述坐标数据集合,分别将所述多个cell单元格填充至所述电子围栏中包括:
根据所述坐标数据集合,计算所述电子围栏的中心坐标;
从所述多个cell单元格中随机选取一cell单元格;
根据所述中心坐标,分别获取位于所述cell单元格各个方向设定距离cell单元格,得到多个cell单元格;
计算各个cell单元格的中心坐标,得到中心坐标集;
平滑连接所述中心坐标集中的各个中心坐标,生成封闭图形;
判断所述中心坐标是否位于所述封闭图形内,若是,则确定所述待填充cell单元格属于电子围栏并将所述待填充cell单元格填充至所述电子围栏中。
优选地,判断所述GeoHash编码数据是否属于电子围栏包括:
获取所述GeoHash编码数据前设定位数的字符;
获取已填充至电子围栏cell单元格的geohash编码,生成geohash编码集合;
判断所述字符是否属于所述geohash编码集合,若是,则确定所述GeoHash编码数据属于电子围栏。
优选地,所述各个方向包括上、左上、左、左下、下、右下、右、右上。
本发明实施例提供的基于GeoHash算法的坐标判定方法具有以下有益效果:
基于坐标原点及Z-order曲线的边界,将电子围栏划分为多个Cell单元格,通过Geohash编码快速判定坐标是否在所属围栏,实现了快速检索及定位坐标数据,适用于各种形状的电子围栏。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
本发明实施例提供的基于GeoHash算法的坐标判定方法包括以下步骤:
S101,根据电子围栏的原点坐标及Z-order曲线的边界,将电子围栏划分为多个cell单元格。
S102,获取电子围栏各个顶点的坐标数据,生成坐标数据集合并根据坐标数据集合,分别将多个cell单元格填充至电子围栏中,其中,电子围栏包括形状规则的电子围栏及形状不规则的电子围栏。
其中,根据面积的大小,将cell单元格的划分为12级,在本发明实施例中,设置cell单元格的级别为9级,其长宽均为4.77m。
S103,获取车辆当前的位置,生成车辆的坐标数据。
S104,利用GeoHash算法,对坐标数据进行转换,生成GeoHash编码数据。
其中,Geohash算法包括三步:
(1)将经纬度变成二进制
比如,针对这样一个点(39.923201,116.390705),纬度的范围是(-90,90),其中间值为0。对于纬度39.923201,在区间(0,90)中,因此得到一个1;(0,90)区间的中间值为45度,纬度39.923201小于45,因此得到一个0,依次计算下去,即可得到纬度的二进制表示。同理,可以得到经度116.390705的二进制表示。
(2)将经纬度合并
经度占偶数位,纬度占奇数位,注意,0也是偶数位。
S105,判断GeoHash编码数据是否属于电子围栏,若是,则确定车辆当前处于电子围栏内。
(3)按照Base32进行编码
Base32编码表的其中一种如下,是用0-9、b-z(去掉a,i,l,o)这32个字母进行编码。具体操作是先将上一步得到的合并后二进制转换为10进制数据,然后对应生成Base32码。需要注意的是,将5个二进制位转换成一个base32码。
按照“偶数位放经度,奇数位放纬度”的规则,重新组合经度和纬度的二进制串,对应查找base-32的表生成字符串,如:二进制数11100 11001 11100 00011 00111 10110转换成十进制是28 25 28 3 7 22,查表编码得到最终结为wtw37q。
Geohash编码比直接用经纬度的高效很多,而且使用者可以发布地址编码,既能表明自己位于北海公园附近,又不至于暴露自己的精确坐标,有助于隐私保护。
GeoHash编码用一个字符串表示经度和纬度两个坐标。在数据库中可以实现在一列上应用索引(某些情况下无法在两列上同时应用索引)。GeoHash编码表示的并不是一个点,而是一个矩形区域。
GeoHash编码的前缀可以表示更大的区域。例如wx4g0ec1,它的前缀wx4g0e表示包含编码wx4g0ec1在内的更大范围。这个特性可以用于附近地点搜索。编码越长,表示的范围越小,位置也越精确。因此可以通过比较GeoHash匹配的位数来判断两个点之间的大概距离。
可选地,根据坐标数据集合,分别将多个cell单元格填充至电子围栏中包括:
根据坐标数据集合,计算电子围栏的中心坐标;
从多个cell单元格中随机选取一cell单元格;
根据所述中心坐标,分别获取位于cell单元格各个方向设定距离cell单元格,得到多个cell单元格;
作为一个具体的实施例,该距离可以为4.77m,也可以为-4.77m。
计算各个cell单元格的中心坐标,得到中心坐标集;
平滑连接中心坐标集中的各个中心坐标,生成封闭图形;
判断中心坐标是否位于封闭图形内,若是,则确定待填充cell单元格属于电子围栏并将待填充cell单元格填充至电子围栏中。
可选地,判断GeoHash编码数据是否属于电子围栏包括:
获取GeoHash编码数据前设定位数的字符;其中,GeoHash编码数据为8位字符。作为一个具体的实施例,可以获取GeoHash编码数据的前4或5位字符。
获取已填充至电子围栏cell单元格的geohash编码,生成geohash编码集合;
判断字符是否属于geohash编码集合,若是,则确定GeoHash编码数据属于电子围栏。
可选地,各个方向包括上、左上、左、左下、下、右下、右、右上。
本发明实施例提供的基于GeoHash算法的坐标判定方法,通过将电子围栏划分为多个cell单元格,将多个cell单元格填充至电子围栏中,利用GeoHash算法,对坐标数据进行转换,生成GeoHash编码数据,判断GeoHash编码数据是否属于电子围栏,实现了快速检索及定位坐标数据,适用于各种形状的电子围栏。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
需要说明的是,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (5)
1.一种基于GeoHash算法的坐标判定方法,其特征在于,包括:
根据电子围栏的原点坐标及Z-order曲线的边界,将电子围栏划分为多个cell单元格;
获取电子围栏各个顶点的坐标数据,生成坐标数据集合并根据所述坐标数据集合,分别将所述多个cell单元格填充至所述电子围栏中,其中,所述电子围栏包括形状规则的电子围栏及形状不规则的电子围栏;
获取车辆当前的位置,生成车辆的坐标数据;
利用GeoHash算法,对所述坐标数据进行转换,生成GeoHash编码数据;
判断所述GeoHash编码数据是否属于电子围栏,若是,则确定车辆当前处于电子围栏内。
2.根据权利要求1所述的基于GeoHash算法的坐标判定方法,其特征在于,根据所述坐标数据集合,分别将所述多个cell单元格填充至所述电子围栏中包括:
根据所述坐标数据集合,计算所述电子围栏的中心坐标;
从所述多个cell单元格中随机选取一cell单元格;
根据所述中心坐标,分别获取位于所述cell单元格各个方向设定距离cell单元格,得到多个cell单元格;
计算各个cell单元格的中心坐标,得到中心坐标集;
平滑连接所述中心坐标集中的各个中心坐标,生成封闭图形;
判断所述中心坐标是否位于所述封闭图形内,若是,则确定所述待填充cell单元格属于电子围栏并将所述待填充cell单元格填充至所述电子围栏中。
3.根据权利要求2所述的基于GeoHash算法的坐标判定方法,其特征在于,判断所述GeoHash编码数据是否属于电子围栏包括:
获取所述GeoHash编码数据前设定位数的字符;
获取已填充至电子围栏cell单元格的geohash编码,生成geohash编码集合;
判断所述字符是否属于所述geohash编码集合,若是,则确定所述GeoHash编码数据属于电子围栏。
4.根据根据权利要求2所述的基于GeoHash算法的坐标判定方法,其特征在于,所述各个方向包括上、左上、左、左下、下、右下、右、右上。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117457.6A CN111323025A (zh) | 2020-02-25 | 2020-02-25 | 一种基于GeoHash算法的坐标判定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010117457.6A CN111323025A (zh) | 2020-02-25 | 2020-02-25 | 一种基于GeoHash算法的坐标判定方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111323025A true CN111323025A (zh) | 2020-06-23 |
Family
ID=71171057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010117457.6A Pending CN111323025A (zh) | 2020-02-25 | 2020-02-25 | 一种基于GeoHash算法的坐标判定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111323025A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925069A (zh) * | 2022-05-30 | 2022-08-19 | 重庆长安汽车股份有限公司 | 大数据gps离线解析方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528384A (zh) * | 2014-10-27 | 2016-04-27 | 阿里巴巴集团控股有限公司 | 信息的推送方法和装置 |
CN106162542A (zh) * | 2015-04-14 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种电子凭证提示方法及服务器 |
CN108571977A (zh) * | 2017-05-19 | 2018-09-25 | 宁波金洋化工物流有限公司 | 一种车辆导航位置偏移判定方法 |
CN109492068A (zh) * | 2018-11-01 | 2019-03-19 | 北京永安信通科技股份有限公司 | 预定区域中的对象定位方法、装置和电子设备 |
CN109800281A (zh) * | 2019-01-22 | 2019-05-24 | 苏州寻息电子科技有限公司 | 在定位系统中查询定位点与电子围栏的位置关系的方法 |
CN110069579A (zh) * | 2017-08-30 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 电子围栏分块方法和装置 |
CN110209748A (zh) * | 2018-02-13 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 索引地理围栏的方法和装置 |
CN110222056A (zh) * | 2019-05-30 | 2019-09-10 | 阿里巴巴集团控股有限公司 | 一种定位方法、系统及设备 |
-
2020
- 2020-02-25 CN CN202010117457.6A patent/CN111323025A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528384A (zh) * | 2014-10-27 | 2016-04-27 | 阿里巴巴集团控股有限公司 | 信息的推送方法和装置 |
US20160119748A1 (en) * | 2014-10-27 | 2016-04-28 | Alibaba Group Holding Limited | Pushing information |
CN106162542A (zh) * | 2015-04-14 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种电子凭证提示方法及服务器 |
CN108571977A (zh) * | 2017-05-19 | 2018-09-25 | 宁波金洋化工物流有限公司 | 一种车辆导航位置偏移判定方法 |
CN110069579A (zh) * | 2017-08-30 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 电子围栏分块方法和装置 |
CN110209748A (zh) * | 2018-02-13 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 索引地理围栏的方法和装置 |
CN109492068A (zh) * | 2018-11-01 | 2019-03-19 | 北京永安信通科技股份有限公司 | 预定区域中的对象定位方法、装置和电子设备 |
CN109800281A (zh) * | 2019-01-22 | 2019-05-24 | 苏州寻息电子科技有限公司 | 在定位系统中查询定位点与电子围栏的位置关系的方法 |
CN110222056A (zh) * | 2019-05-30 | 2019-09-10 | 阿里巴巴集团控股有限公司 | 一种定位方法、系统及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925069A (zh) * | 2022-05-30 | 2022-08-19 | 重庆长安汽车股份有限公司 | 大数据gps离线解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107402955B (zh) | 确定地理围栏的索引网格的方法和装置 | |
CN110633262B (zh) | 基于Spark的地图相交区域面积计算方法及系统 | |
CN106649346B (zh) | 数据重复性校验方法及装置 | |
US10113876B2 (en) | Methods and systems for creating and using a location identification grid | |
CN110287426B (zh) | 兴趣点父子关系的建立方法、装置、存储介质及处理器 | |
CN106844288B (zh) | 一种随机字符串生成方法及装置 | |
CN106991149B (zh) | 一种融合编码和多版本数据的海量空间对象存储方法 | |
CN112214472A (zh) | 气象格点数据的存储及查询方法、装置及存储介质 | |
CN111221813B (zh) | 数据库索引以及数据库查询的处理方法、装置及设备 | |
CN112598321B (zh) | 一种风险防控方法、系统及终端设备 | |
CN115858709A (zh) | 多尺度空间数据的处理方法、电子设备及存储介质 | |
CN111323025A (zh) | 一种基于GeoHash算法的坐标判定方法 | |
CN109597982B (zh) | 摘要文本识别方法及装置 | |
CN114861590A (zh) | 一种应用于大规模版图数据的索引方法 | |
CN110222056B (zh) | 一种定位方法、系统及设备 | |
CN110989886A (zh) | 基于空间地图的三维空间网格选取方法及装置 | |
CN113360586B (zh) | 地址聚集度查询方法、装置、设备及计算机可读存储介质 | |
CN111460325B (zh) | Poi搜索方法、装置与设备 | |
CN113868555A (zh) | 一种轨迹检索方法、装置、设备以及存储介质 | |
CN107329730B (zh) | 语音提示信息生成方法及装置 | |
CN106815319B (zh) | 一种目标对象的确定方法及装置 | |
CN111291147A (zh) | 一种路径规划方法 | |
CN112015740B (zh) | 基于z曲线的空间数据存储索引方法 | |
CN115688148A (zh) | 一种地图数据的坐标转换方法、装置、设备、介质及系统 | |
CN112100180B (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 |