首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redis GeoHash核心原理解析

偶数位放经度,奇数位放纬度2串编码组合生成新串:11100 11101 00100 01111。...为什么分别给经度维度编码?为什么需要将经纬度两串编码交叉组合成一串编码?本节试图回答这一问题。...每个POI都有经纬度信息,用图1b的SQL语句在mySQL中建立了POI_spatial的表,其中latlng两个字段来代表纬度经度。为后续分析方便起见,人造了40万个POI数据。...只能对经度纬度索引(一维索引),与期望的不符 我们期待的是快速找出落在某一空间范围的POI(如矩形)(图8a),而不是快速找出落在某纬度经度范围的POI(图8b),想象一下,要查询北京某区的POI...当空间数据不是点,而是线(道路、地铁、河流),面(行政区边界、建筑物),B树怎么索引?

1.4K20

Part3-1.获取高质量的阿姆斯特丹建筑立面图像(附完整代码)

目录: 阅读前必看知识点 1 方法一,超额收费:通过谷歌街景API获取街景图像 2 方法二,完全免费:通过selenium实现批量街景图像的采集 3 详解谷歌街景网页URL中的三个重要参数: 1)纬度经度...1)通过streetview获取经纬度、朝向 2)组合url 3)整合并简化代码 额外阅读 写在最后 街景图像就是建筑环境虚拟化展现出来,已经成为了现实世界体验感知的一个替代品。...纬度经度:需要查阅资料。 视野(缩放级别):数值最大为90,值越大距离建筑物越远。...即全景id,纬度经度我们都需要进行储存。...您可以下载建模步行、驾驶或骑自行车的网络,只需一行代码,然后轻松地分析可视化它们。您可以轻松地处理城市设施/兴趣点、建筑物占地面积、公交站点、高程数据、街道方向、速度/行驶时间路线。

43710
您找到你想要的搜索结果了吗?
是的
没有找到

微信发个原图,居然隐私曝光这么多…可怕

于是,揭秘了这些方式也会泄露他人在拍照时的地址信息; 一、如何得到照片中的 GPS 信息?...拍摄地点的经度:114;10;24.820000000006992 注意 当你使用微信发送原图的情况下,才能查出 GPS 位置定位信息,不过现在很多软件默认会抹去图片中的相关信息; 一张原图分享到其他社交网站上...,可能他人就可以通过照片找到我拍摄的时间、地点以及其它相关信息; 二、通过 GPS 信息进行定位 通过得到的经纬度后,这其实就是一张照片中在拍摄中最关键的信息了,然后通过经纬度来定位当时拍摄人在拍摄该照片时的地点...将经纬度转换为度分秒的方式,由原来的转换度分秒为:22.284672222222223,114.17356111111111 纬度经度之间用英文逗号进行隔开,即可通过这一长串数字查看地址信息了,通过地图搜索...找出其中有特征的,标志性的,而且视线在同一直线上的建筑物并进行标记:A B C D E F G ? 在图中,他们一对对连起来画垂直线。 ?

1.2K10

python shapely.geometry.polygon任意两个四边形的IOU计算实例

右下角的minx减去左上角的maxx就是重叠矩形的宽,同比高 然后 IOU = 重叠面积 / (两矩形面积—重叠面积) 然,不规则四边形就不能通过这种方式来计算,找了好久数学资料,还是没找到答案(鄙人数学渣渣...print(iou) 具体原理还没弄明白,还在研究中,研究完再给出来(当然数学渣渣能不能研究出来有待商榷*—*) 补充知识:python 二维坐标多边形 计算多边形中心点,以及距该中心点最远的距离 就废话不多说了...radians(float(lon)) # radians(float(lon)) Convert angle x from degrees to radians # 角度...def geodistance(lon1,lat1,lon2,lat2): ''' 得到两个经纬度坐标距离 单位为千米 (计算不分前后顺序) :param lon1: 第一个坐标 维度 :...param lat1: 第一个坐标 经度 :param lon2: 第二个坐标 维度 :param lat2: 第二个坐标 经度 :return: distance 单位千米 ''' # lon1

4.2K30

Geohash算法原理及实现

他能够二维的空间经纬度数据编码成一个字符串 我们知道,经度范围是东经180到西经180,纬度范围是南纬90到北纬90,我们设定西经为负,南纬为负,所以地球上的经度范围就是[-180, 180],纬度范围就是...geohash算法就是基于这种思想,划分的次数更多,区域更多,区域面积更小了。通过将经纬度编码,给地理位置分区 Geohash算法 Geohash算法一共有三步。 首先将经纬度变成二进制。...具体操作是先将上一步得到的合并后二进制转换为10进制数据,然后对应生成Base32码。需要注意的是,将5个二进制位转换成一个base32码。...GeoHash用一个字符串表示经度纬度两个坐标。...比如说左边区域的经度肯定是自身经度减去最小经度单位。纬度也可以通过加减,得到上下的纬度值,最终周围8个单位也可以计算得到

66120

使用Redis实现附近的人及打车服务

如打车服务: 每辆网约车都有个编号(如666),网约车需将自己的经度纬度发给叫车应用 打车时,打车应用会根据用户的经纬度位置,查找用户的附近车辆,并匹配 位置相近的用户车辆匹配后,打车应用就会根据车辆编号...,经度值116.37定位在[112.5, 123.75]这个区间,得到经度值的5位编码值:11010 对纬度的编码方式,经度的一样,只是纬度范围[-90,90],如对纬度值39.86的编码过程...刚计算的经纬度(116.37,39.86)各自编码值11010、10111,组合后,第0位是经度的第0位1,第1位是纬度的第0位1,第2位是经度的第1位1,第3位是纬度的第1位0,以此类推,就能得到最终编码值...如经度区间[-180,180]二分区,纬度区间[-90,90]二分区,就会得到4个分区: 分区一:[-180,0)[-90,0),编码00 分区二:[-180,0)[0,90],编码01 分区三...命令 GEOADD 一组经纬度信息对应一个ID,记录到GEO集合。

1.1K20

周围的餐馆有哪些?GeoHash算法

而是一个区域,当Hash值越长的时候,这个hash代表的区域越小,就越精确,比如 wtw3eegq 这个Hash就是上海南京西路周围的的一块,但是 只有前6位 wtw3ee 的话这个Hash代表的区域面积就比...以此类推,直到精度符合要求为止,得到经度编码为1101 0110 0101 1100 0001 ,下面的表只是计算了前8位。...1 112.5 123.75 135 0 112.5 118.125 123.75 1 118.125 120.9375 123.75 1 120.9575 122.35375 123.75 0 经度纬度合并...接下来将经度纬度的编码合并,奇数位是纬度,偶数位是经度 10101100011001111100 11010110010111000001 合并为: 1110011001111000001101101011010101010010...测试 为了看一下这个算法的可行性,写了一个爬虫来访问高德地图来不断检索地址并且算出Geohash(文章最后会给出整个爬虫算法的代码) ?

1K30

Geohash算法原理及实现

他能够二维的空间经纬度数据编码成一个字符串 我们知道,经度范围是东经180到西经180,纬度范围是南纬90到北纬90,我们设定西经为负,南纬为负,所以地球上的经度范围就是[-180, 180],纬度范围就是...最后得到纬度的二进制表示为: 10111000110001111001 同理可以得到经度116.390705的二进制表示为: 11010010110001000100 第2步,就是将经纬度合并。...具体操作是先将上一步得到的合并后二进制转换为10进制数据,然后对应生成Base32码。需要注意的是,将5个二进制位转换成一个base32码。...GeoHash用一个字符串表示经度纬度两个坐标。...比如说左边区域的经度肯定是自身经度减去最小经度单位。纬度也可以通过加减,得到上下的纬度值,最终周围8个单位也可以计算得到

1.6K20

明白了这些术语,才算懂个“球”

参心坐标系 起始子午线 地理坐标系 椭球体参数 基准面 高斯克吕格投影 墨卡托投影 七参数 然后的表情就是这样了: ?...小学地理老师从小告诉我们地球是圆的,也知道直角坐标系、经纬度,不过的地理知识可能是排球老师教的,可能知道的就这么多了。...如今整天都用GPS定位,看到的地图是下面这样的,专业人士们为什么地球研究得如此复杂? ?...Google EarthArcGIS软件都采用WGS84坐标系。...再看一下大地坐标(经纬度表示法)的范围,经度的范围是[-180,180],这个没问题,Y坐标反算成纬度,可以得到纬度范围为 [-85.05, 85.05]。 北极南极显示得不全?没事,企鹅们不在乎。

1.7K20

利用Redis的Geo功能实现查找附近的位

当接到这个需求的时候差点吐血,这时间也太紧张了。赶紧去查相关的技术选型。经过一番折腾,终于在晚上十点完成了这个需求。现在大致实现的思路总结一下。 ? 图1 2....GEO相关的命令如下: Redis 命令 描述 GEOHASH 返回一个或多个位置元素的 Geohash 表示 GEOPOS 从 key 里返回所有给定位置元素的位置(经度纬度) GEODIST 返回两个给定位置之间的距离...纬度为39.08的地点tianjin经度为114.29纬度为38.02的地点shijiazhuang加入key为cities:locs的 sorted set集合中。...然后我们就可以借助于其他命令来进行地理位置的计算了。 有效的经度从-180 度到 180 度。有效的纬度从-85.05112878 度到 85.05112878 度。...WITHCOORD 将位置元素的经度维度也一并返回,非必选。 WITHDIST 在返回位置元素的同时, 将位置元素与中心点的距离也一并返回。距离的单位查询单位一致,非必选。

1.4K30

利用Redis的Geo功能实现查找附近的位置

当接到这个需求的时候差点吐血,这时间也太紧张了。赶紧去查相关的技术选型。经过一番折腾,终于在晚上十点完成了这个需求。现在大致实现的思路总结一下。 图1 2....GEO相关的命令如下: Redis 命令 描述 GEOHASH 返回一个或多个位置元素的 Geohash 表示 GEOPOS 从 key 里返回所有给定位置元素的位置(经度纬度) GEODIST 返回两个给定位置之间的距离...纬度为39.08的地点tianjin经度为114.29纬度为38.02的地点shijiazhuang加入key为cities:locs的 sorted set集合中。...然后我们就可以借助于其他命令来进行地理位置的计算了。 有效的经度从-180 度到 180 度。有效的纬度从-85.05112878 度到 85.05112878 度。...WITHCOORD 将位置元素的经度维度也一并返回,非必选。 WITHDIST 在返回位置元素的同时, 将位置元素与中心点的距离也一并返回。 距离的单位查询单位一致,非必选。

2.3K50

高效的多维空间点索引算法 — Geohash Google S2

问题就来了,地图上的点是二维的,有经度纬度,这如何索引呢?如果只针对其中的一个维度,经度或者纬度进行搜索,那搜出来一遍以后还要进行二次搜索。那要是更高维度呢?三维。...地球经度区间是[-180,180] 纬度产生的二进制是101011000101110,经度产生的二进制是110101100101101,按照**“偶数位放经度,奇数位放纬度”**的规则,重新组合经度纬度的二进制串...二阶的希尔伯特曲线,生成方法就是之前每个子正方形继续四分,每4个小的正方形先生成一阶希尔伯特曲线。然后4个一阶的希尔伯特曲线首尾相连。...理由也是因为是近似算法,并不是唯一最优算法,所以得到的解会依据库的不同版本而产生变化。 8. S2 Cell 举例 先来看看经纬度 CellID 的转换,以及矩形面积的计算。...S2 的应用 S2 主要能用在以下 8 个地方: 涉及到角度,间隔,纬度经度点,单位矢量的表示,以及对这些类型的各种操作。

2.4K50

揭秘!是什么能让APP快速精准定位?

我们将地球铺平开来,会得到下面这个平面图: 以赤道本初子午线为界,将地球分为经度纬度。赤道是在0度,本初子午线也在0度。...以赤道作为经度X横坐标,以本初子午线作为纬度Y竖坐标: 经度(longitude)纬度(latitude)简称lnglat。...指定一个位置的经纬度坐标值。 根据十字坐标图二分法,将纬度经度划分成10的二进制数字串。 按照“偶数位放经度,奇数位放纬度”算法,合并经度纬度这2个二进制数字串。...,奇数位放纬度 通过二分算法,我们得到了腾讯大厦的纬度经度的二进制串为: string(30) "101011000101010000111101101101"string(30) "110101100101001110111110011010...刚开始不理解到底怎么操作,后来经过一系列的思考,可以如下操作: 由于无法用文字表述,截了个操作图,如图上的箭头操作顺序所示,就是纬度往右移动一个位置,然后依次串起来。

1.3K20

是什么能让 APP 快速精准定位到我们的位置?

脑海中第一个实现方式是:实时上报经纬度。...我们将地球铺平开来,会得到下面这个平面图。 地球铺平面图 以赤道本初子午线为界,将地球分为经度纬度。赤道是在0度,本初子午线也在0度。以赤道作为经度X横坐标,以本初子午线作为纬度 Y 竖坐标。...指定一个位置的经纬度坐标值。 根据十字坐标图二分法,将纬度经度划分成10的二进制数字串。 按照“偶数位放经度,奇数位放纬度”算法,合并经度纬度这2个二进制数字串。...偶数位放经度,奇数位放纬度 通过二分算法,我们得到了腾讯大厦的纬度经度的二级制串为: string(30) "101011000101010000111101101101" string(30) "110101100101001110111110011010...刚开始不理解到底怎么操作,后来经过一系列的思考,可以如下操作: 偶数位放经度,奇数位放纬度 由于无法用文字表述,截了个操作图,如图上的箭头操作顺序所示,就是纬度往右移动一个位置,然后依次串起来。

1.5K30

墨卡托投影坐标系(Mercator Projection)原理及实现C代码

墨卡托投影是一种“等角正切圆柱投影”,荷兰地图学家墨卡托(Mercator)在1569年拟定:假设地球被围在一个中空的圆柱里,其赤道与圆柱相接触,然后再假想地球中心有一盏灯,球面上的图形投影到圆柱体上...注意:经纬线的伸长与纬线的正割成比例变化,随纬度增高极具拉伸,到极点成为无穷大;面积的扩大更为明显,在60度的地方面积要扩大四倍。如下图所示,地理上等半径圆在高纬度面积明显扩大。 ?   ...从墨卡托投影图上可以看出,经线间隔的经度如果相等,则经线是等距平行的直线, 纬线也是平行的直线,而且经纬线是相互垂直的。...由于墨卡托投影在两极附近是趋于无限值,因此它并没完整展现了整个世界,地图上最高纬度是85.05度(通过纬度取值范围ys反解计算可得到纬度值为85.05112877980659)。...wylloong/9813502  参考文献  http://download.csdn.net/detail/wylloong/9813502 (两篇原理文献及原代码)   作为一个地理开发的局外人,在文献基础自己的理解上实现

3.9K50

SQL SERVER 根据地图经纬度计算距离函数

前些天客户提出一个这样的要求:一个手机订餐网,查询当前所在位置的5公里范围的酒店,然后客户好去吃饭。...拿到这个请求后,不知道如何下手,静静地想了一下,在酒店的表中增加两个字段,用来存储酒店所在的经度纬度,当订餐的时候,要求手机得到当前客户所在的经度纬度传过来,再与数据库中酒店的经度纬度计算一下,就查出来...网上找了很久,却没有找到这个函数。最后在CSDN上,一个朋友的帮助下解决了这个问题,非常感谢lordbaby给我提供这个函数,这个函数放到这里来,以便帮助更多许要的朋友。...商家表名 WHERE dbo.fnGetDistance(121.4625,31.220937,longitude,latitude) < 5 这里的longitude,latitude分别是酒店的经度纬度字段...,而121.4625,31.220937是手机得到的当前客户所在的经度,后面的5表示5公里范围之内。

1K30

机器学习-线性回归预测房价模型demo

数据分为训练数据测试数据,分别保存在kc_train.csvkc_test.csv两个文件中。...第十列“地下室面积”:地下室的面积 第十一列“建筑年份”:房屋建成的年份 第十二列“修复年份”:房屋上次修复的年份 第十三列"纬度":房屋所在纬度 第十四列“经度”:房屋所在经度...3.数据的取值一般跟属性有关系,但世界万物的属性是很多的,有些值小,但不代表不重要,所有为了提高预测的准确度,统一数据维度进行计算,方法有特征缩放归一法。...6.数据处理 首先先读取数据,查看数据是否存在缺失值,然后进行特征缩放统一数据维度。...到这里可以看到机器学习也不是不能够学会,只要深入研究总结,就能够找到学习的方法,重要的是总结,最后就是调用一些机器学习的方法库就行了,当然这只是入门级的,觉得入门级的写到这已经足够了,很多人都能够看得懂

1.8K20

高效的多维空间点索引算法 — Geohash Google S2

问题就来了,地图上的点是二维的,有经度纬度,这如何索引呢?如果只针对其中的一个维度,经度或者纬度进行搜索,那搜出来一遍以后还要进行二次搜索。那要是更高维度呢?三维。...101011000101110,经度产生的二进制是110101100101101,按照**“偶数位放经度,奇数位放纬度”**的规则,重新组合经度纬度的二进制串,生成新的:111001100111100000110011110110...二阶的希尔伯特曲线,生成方法就是之前每个子正方形继续四分,每4个小的正方形先生成一阶希尔伯特曲线。然后4个一阶的希尔伯特曲线首尾相连。 ?...经过实际计算发现,最大的面积最小的面积相差5.2倍。见上图左边。相同的弧度区间,在不同的纬度上投影到正方形上的面积不同。 现在就需要修正各个投影出来形状的面积。如何选取合适的映射修正函数就成了关键。...S2 Cell 举例 先来看看经纬度 CellID 的转换,以及矩形面积的计算。

3.3K60

地图开发知识之-投影坐标

运用任何数学方法进行这种转化都会产生误差变形,为了按照不同需求缩小误差,于是产生了各种投影方法。所谓投影就是假设在地球的某处有一个光源,然后光将球面影像投射在某个平面上的一种坐标映射实现。...投影中央部分的长度和面积变形小,向外逐渐增大。 ? 以北极为中心的等角正切方位投影 积斜切方位投影 亚洲、欧洲、北美大区域地图常用积斜切方位投影。中国地图就使用这种投影。...假设地球被围在一中空的圆柱里,其基准纬线与圆柱相切(赤道)接触,然后再假想地球中心有一盏灯,球面上的图形投影到圆柱体上,再把圆柱体展开,这就是一幅选定基准纬线上的“墨卡托投影”绘制出的地图。...你会发现俄罗斯、加拿大、格陵兰岛越往北极的地方面积越显得大,并且发现南极洲也非常的大。其实现实中这些地方并没有那么大,而是因为投影中心在地球中心,越往两极就变形越大。...下面是墨卡托投影坐标纬度坐标的转化关系公式 ? 坐标转化关系公式 其中,λ为经度,φ为纬度。x,y为平面坐标值。左侧为正算,右侧为逆运算。

1.8K30

音视频知识图谱 2022.06

前些时间,在知识星球上创建了一个音视频技术社群:关键帧的音视频开发圈,在这里群友们会一起做一些打卡任务。...因为最终视频画质是由原始素材画质拉伸后视频画质共同决定的,所以采用这种方法得到的视频画质较差。 EAP,Equal-area Projection,圆柱面积投影。...指的是 Cylindrical Equal-area Projection,是一系列的圆柱面积投影。 投影方式:这种投影方式将经线映射为间隔的垂直线,纬线映射为水平线(非间距)。...ERP 的纬线被投影为间隔的水平线,而 EAP 不是,因为 EAP 保证了投影的面积。但两者都存在拉伸问题,引入了较大的冗余。这种投影方式在赤道处无失真,即赤道为标准纬线,失真向两极迅速递增。...编号为 0 1 的投影面分别跨度 30 纬度 360 个经度值 360 经度,编号为 2、3、4、5 的投影面分别跨度 120 纬度 90 经度

56430
领券