1. 共享单车GeoHash定位案例
单词:longitude(经度),latitude(维度)
数据:
1:单车信息数据,
触发事件
访问的url
时间
用户的id
经度
维度
省份
城市
区(县)
2:北京市的poi位置信息.
经度
维度
Addr
Province
District
单车数据:+位置信息
需求需求和流程分析
根据单车信息数据(经纬度信息),确定单车位置
使用GeoHash算法将poi中的数据转换成对应的geoHash值对应地理位置,
获取所有的单车数据的经纬度对应的地理位置,先从本地的地理仓库位置中获取数据,找到匹配的数据返回,如果没有数据,去官网地图获取数据,将数据存储在本地的地理位置库中
知识点:
json数据解析,HttpClient基本使用,GeoHash原理和简单使用 字符串切割 子串 数据转换
String url = "http://gc.ditu.aliyun.com/regeocoding?l=" + latitude + "," + longitude + "&type=010";
GeoHash算法基本原理
GeoHash算法的步骤
下面以北海公园为例介绍GeoHash算法的计算步骤
2.1. 根据经纬度计算GeoHash二进制编码(逼近思想)
地球纬度区间是[-90,90], 北海公园的纬度是39.928167,可以通过下面算法对纬度39.928167进行逼近编码:
1)区间[-90,90]进行二分为[-90,0),[0,90],称为左右区间,可以确定39.928167属于右区间[0,90],给标记为1;
2)接着将区间[0,90]进行二分为 [0,45),[45,90],可以确定39.928167属于左区间 [0,45),给标记为0;
3)递归上述过程39.928167总是属于某个区间[a,b]。随着每次迭代区间[a,b]