python基于经纬度距离汇聚点_Elasticsearch地理信息存储及查询之Geo_Point

本文介绍了Elasticsearch中用于存储和查询地理位置的Geo_Point功能,包括GeoHash的基本概念,以及Geo_Point的存储方式(对象、数组、字符串),并详细讲解了geo_bounding_box、geo_distance和geo_polygon等查询方法和聚合操作,适用于地理位置相关的数据检索和分析。
摘要由CSDN通过智能技术生成

导读

Elasticsearch提供了丰富的搜索和分析功能,地理位置功能可以让我们把基于地理位置的搜索、聚合、计算与全文搜索、结构化搜索和分析结合到一起。在这里易观的技术小哥哥,就跟大家做一个交流和探讨。

▌基本概念

1. GeoHash

GeoHash是一种将经纬度坐标(lat/lon)编码成字符串的方式,通过牺牲一定的精度,来获得高效的检索性能。

其原理是,将平面预先划分成多级矩形区域,在按照从大矩形到小矩形的顺序,将位置信息依次编码成二进制码,最后按照一定编码方式,转换成字符串。如:

比如这样一个点(39.923201, 116.390705) ,我们以纬度为例:

纬度的范围是(-90,90),其中间值为0。对于纬度39.923201,在区间(0,90)中,因此得到一个1;(0,90)区间的中间值为45度,纬度39.923201小于45,因此得到一个0,依次计算下去,即可得到纬度的二进制表示,如下表:

最后得到纬度的二进制表示为:

10111000110001111001

同理可以得到经度116.390705的二进制表示为:

11010010110001000100

合并纬度、经度的二进制:

合并方法是将经度、纬度二进制按照奇偶位合并:

11100 11101 00100 011

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值