本文实例为大家分享了php计算两点地理坐标距离的具体代码,供大家参考,具体内容如下 功能:根据圆周率和地球半径系数与两点坐标的经纬度,计算两点之间的球面距离。 获取两点坐标距离: <?...php /** * 计算两点地理坐标之间的距离 * @param Decimal $longitude1 起点经度 * @param Decimal $latitude1 起点纬度 * @param...Decimal $longitude2 终点经度 * @param Decimal $latitude2 终点纬度 * @param Int $unit 单位 1:米 2:公里 *...km'; // 2.34km ? 以上就是本文的全部内容,希望对大家的学习有所帮助。
编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫 Levenshtein Distance。...一个字符串可以通过增加一个字符,删除一个字符,替换一个字符得到另外一个字符串,假设,我们把从字符串A转换成字符串B,前面3种操 作所执行的最少次数称为AB相似度 如 abc adc 度为 1 ababababa...babababab 度为 2 abcd acdb 度为2 using System; using System.Text.RegularExpressions; using System.Threading.Tasks
geopos:获取地理位置的坐标。geodist:计算两个位置之间的距离。georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。...geodist 语法格式如下:GEODIST key member1 member2 [m|km|ft|mi]member1 member2 为两个地理位置。...# 计算翠湖公园(a)到大观公园(b)的距离,单位km127.0.0.1:6379> geodist km a b km"4.2587"计算翠湖公园(a)到大观公园(b)的距离是4.25公里,跟地图比对...,结果基本吻合查询某位置内的其他成员信息georadius以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。...:"+r.getDistance()+"km"); } }结果zhangsan 距离我:0.6776kmlisi 距离我:1.645kmxiaoming 距离我:3.5812km计算距离计算两个坐标之间的距离代码实现
geopos 从key里返回所有给定位置元素的位置(经度和纬度) geodist 返回两个给定位置之间的距离 georadius 以给定的经纬度为中心, 找出某一半径内的元素 georadiusbymember...指定单位的参数 unit 必须是以下单位的其中一个: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。...如果给定的位置元素不存在, 那么命令返回空值。 georadius 命令 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。...范围可以使用以下其中一个单位: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。...至于额外的信息, 则会作为子数组的后续元素, 按照以下顺序被返回: 以浮点数格式返回的中心与位置元素之间的距离, 单位与用户指定范围时的单位一致。 geohash 整数。
一、基本原理 处理地理数据时,经常需要用到两个地理位置间的距离。...主要有以下几个功能: 地理编码:将字符串转换为地理位置 逆地理编码:用于将地理坐标转换为具体地址 计算两个点的距离:经纬度距离和球面距离 pip install安装上即可 pip install geopy...print("距离:{:.3f}km".format(distance)) 对比结果如下: 手写 haversine 公式计算距离为:1.809km,而直接调用 geopy 库的 geodesic...方法计算距离为:1.812km,二者计算结果相差很小。...用经纬度计算地球上两点之间的距离(以不同单位表示),pip install安装即可: Python代码如下: import haversine print(tuple(haversine.Unit)
处理地理位置数据已成为许多应用程序的核心需求。无论是推送附近的餐馆还是对全国范围内的服务点进行分析,快速而准确地处理和检索地理位置信息都至关重要。...,每个地点的名称是有序集合的成员,而其经纬度则用于计算分数,以确保成员的有序性。...计算两城市间距离单位:m 表示单位为米,也是默认单位。km 表示单位为千米。mi 表示单位为英里。ft 表示单位为英尺。...127.0.0.1:6379> geodist china:city shanghai chongqing"1447673.6920"geodist 命令用于计算两个位置之间的距离,默认单位是米。...:city 110 30 1000 km1) "chongqing"2) "xian"3) "shengzhen"4) "hangzhou"查看以(110,30)为中心,半径 1000 公里的范围内,有哪些城市
基本操作命令 Redis GEO主要用于存储地理位置信息,并对存储的选项进行操作: 1.添加地理位置的坐标 2.获取地理位置的坐标 3.计算两个地理位置间的距离 4.根据用户给定的经纬度坐标来获取指定范围内的地理位置集合...”的geohash值 geohash city "广州" 4.geodist 返回两个位置元素之间的距离(单位:m|km|ft|mi) geodist 用于返回两个给定位置间的距离 geodist key...以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。...距离的单位和用户给定的范围单位保持一致。 WITHCOORD : 将位置元素的经度和维度也一并返回。...# 键:city # 经度和纬度:121.48941010236740112 31.40526993848380499 # 以经纬度为中心,向外扩张的最大距离:2000 # 单位:km # withcoord
GEODIST:计算两个位置之间的距离。 GEOHASH:获取指定位置的地理哈希值。 GEOPOS:获取一个或多个位置的经度和纬度。...GEODIST GEODIST命令用于计算两个地理位置之间的距离。...示例: GEODIST cities "Palermo" "Catania" km 上述示例将计算了名为cities中"Palermo"和"Catania"两个地理位置之间的距离,并指定距离单位为千米..., 37.502669)为中心,半径为100千米范围内进行搜索,并返回最多5个结果以及与查询点的距离。...通过使用GEOADD命令,我们可以将地理位置及其名称添加到Redis中的指定键中,方便地存储和管理位置数据。GEODIST命令允许计算两个位置之间的距离,提供了方便的距离计算功能。
GEOADD 增加某个地理位置的坐标; GEOPOS 获取某个地理位置的坐标; GEODIST 获取两个地理位置的距离; GEORADIUS 根据给定地理位置坐标获取指定范围内的地理位置集合; GEORADIUSBYMEMBER...指定单位的参数 unit 必须是以下单位的其中一个: m 表示单位为米。 km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。...如果用户没有显式地指定单位参数, 那么 GEODIST 默认使用米作为单位。 GEODIST 命令在计算距离时会假设地球为完美的球形, 在极限情况下, 这一假设最大会造成 0.5% 的误差。...km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。...(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标) 常见的有,附近的位置,附近的人,摇一摇,获取两点之间的距离等等
GEODISTGEODIST命令用于计算两个地理位置之间的距离。...示例:GEODIST cities "Palermo" "Catania" km上述示例将计算了名为cities中"Palermo"和"Catania"两个地理位置之间的距离,并指定距离单位为千米。...cities "Palermo" 100 km WITHDIST COUNT 5上述示例将在名为cities的键中,以"Palermo"位置成员为中心,搜索半径为100千米范围内的位置,并返回最多5个结果以及与中心位置的距离..., 37.502669)为中心,半径为100千米范围内进行搜索,并返回最多5个结果以及与查询点的距离。...通过使用GEOADD命令,我们可以将地理位置及其名称添加到Redis中的指定键中,方便地存储和管理位置数据。GEODIST命令允许计算两个位置之间的距离,提供了方便的距离计算功能。
当用户点击 Near Me 功能时,那么通过后台就可以以当前用户的位置为圆点,距离为半径查询相关的用户展示即可完成 注意 redis 的经纬度有 0.5%的误差,所以精度要求高的比如地图就慎用 redis...key member1 member2 [unit] , 其中 unit 为单位 m|km|ft(英尺)|mi(英里) # 计算两点间的距离,返回距离的单位是米(m) 127.0.0.1:0>GEODIST...diner:location zhangsan lisi m "82.4241" # 计算两点间的距离,返回距离的单位是千米(km) 127.0.0.1:0>GEODIST diner:location...范围可以使用以下其中一个单位: m 表示单位为米 km 表示单位为千米 mi 表示单位为英里 ft 表示单位为英尺 在给定以下可选项时, 命令会返回额外的信息: WITHDIST: 在返回位置元素的同时...距离的单位和用户给定的范围单位保持一致 WITHCOORD: 将位置元素的经度和维度也一并返回 WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值
" 2) "40.00546983911101506" 2) 1) "116.40426903963088989" 2) "39.90654220698316834" 计算两个点之前的距离...命令如下: GEODIST location-set location-x location-y [unit] 可选参数 unit 用于指定计算距离时的单位,它的值为下面的一个: m 表示单位为米。...km 表示单位为千米。 mi 表示单位为英里。 ft 表示单位为英尺。...比如我们要计算奥林匹克公园和圆明园的距离: 127.0.0.1:6379> geodist subways yuanmingyuan aolinpikegongyuan "7103.4924" 如果我们指定单位为...m|km|ft|mi 指定的是计算范围时的单位; 如果给定了可选的 WITHCOORD , 那么命令在返回匹配的位置时会将位置的经纬度一并返回; 如果给定了可选的 WITHDIST , 那么命令在返回匹配的位置时会将位置与中心点之间的距离一并返回
如何根据两个经纬度,获取到这两个点之间的距离我在网上找了个方法,大家可以参考下 /** * 求两个已知经纬度之间的距离,单位为米 * * @param lng1 $ ,lng2 经度 * @param...遍历完了之后还得继续计算距离,这个数量级也是非常大的 距离那些都弄完了还得再筛选一遍在附近的,又是一遍所有数据的遍历 如果符合附近的人的要求是需要按照距离从近到远来排序,又得遍历计算 上述方式如果用户量比较小其实是可以实现的...GEOPOS:获取某个地理位置的坐标 GEODIST:获取两个地理位置的距离 GEORADIUS:根据给定地理位置坐标获取指定范围内的地理位置集合 GEORADIUSBYMEMBER:根据给定地理位置获取指定范围内的地理位置集合...user_1 user_2 mi "103.3182" 获取 nearbyPeople 中 user_1 和 user_2 这两个节点之间的距离,距离单位可以指定,如下所示 m :米,默认单位。...首先我们可以在后台把每个人的位置定时刷新到以 nearbyPeople 为 key 的 geo 对象中。
geospatial(地理位置) 朋友的定位,附近的人,打车距离计算,主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。...计算两个位置之间的距离(直线距离[笑哭,谁会查直线距离]) geodist key 位置1 位置2 [m|km|ft|mi](单位) m :米,默认单位。 km :千米。 mi :英里。...计算河北和北京之间的距离,单位为千米 ?...以指定的经纬度为中心,找出某一半径内的元素 GEORADIUS key 维度 经度 半径长度 m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count...和上面的georadius一样 只不过是把经纬度换成了已存在的地理位置名称 m :米,默认单位。 km :千米。 mi :英里。 ft :英尺。
Geopy作为一个专注于地理位置处理包,能实现地理编码、逆地理编码功能;此外,还可以根据两个经纬度坐标计算在地球上的最短距离。 2. 具体用法 2.1....Geopy的距离计算功能包含在distance 中 计算距离有两种:大圆距离与大地线距离(默认,更精确)。...大圆算法将地球简化为一个圆球,其计算的距离是球面上过两点的大圆距离。 大地线使用目前国际通用的方法,用旋转椭球面表示地球,其计算的是两点在椭球面上的最短距离。...116.3912630)) #返回一个distance对象,其中包含单位转换方法 dist.kilometers #单位转换,获取km,m或者英里为单位的距离 结果: 1058.4645051382365...)) #同样返回distance对象 gc.km 1057.0946827378225 print(f'{(dist.km - gc.km) / dist.km:%}') 0.129416% #哈尔滨到北京的大圆与大地线距离之间有
含义:获取地理位置信息 3.geodist key member1 member2 [unit] 含义:获取两个地理位置的距离 unit取值范围 m(米,默认) km(千米) mi(英里) ft(英尺...latitude unit [withcoord] [withdist] [withhash] [COUNT count] [sort] [store key] [storedist key] 含义:以给定的经纬度为中心...距离的单位和用户给定的范围单位保持一致 withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。...COUNT count][sort][store key][storedist key] 含义:以给定的元素为中心,返回包含的位置元素当中,与中心距离不超过给定最大距离的所有位置元素。...距离的单位和用户给定的范围单位保持一致 withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。
“附近的人” 核心思想如下: 以 “我” 为中心,搜索附近的用户 以 “我” 当前的地理位置为准,计算出别人和 “我” 之间的距离 按 “我” 与别人距离的远近排序,筛选出离我最近的用户或者商店等 [在这里插入图片描述...缺点也很明显,需要大量的计算两个点之间的距离,非常影响性能。 3、实现 创建一个简单的表用来存放用户的经、纬度属性。...:返回一个或多个位置对象的Geohash表示; GEORADIUS:以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象; GEORADIUSBYMEMBER:以给定的位置对象为中心...尽管两种索引的方式不同,但只要坐标跨度不太大,这两个索引计算出的距离相差几乎可以忽略不计。...计算出的两点间距离,字段别名(随意取名)。
从3.2版本开始它开始提供了GEO能力,用来实现诸如附近位置、计算距离等这类依赖于地理位置信息的功能。...GEORADIUS 以给定的经纬度为中心, 找出某一半径内的元素 GEOADD 将指定的地理空间位置(纬度、经度、名称)添加到指定的 key 中 GEORADIUSBYMEMBER 找出位于指定范围内的元素...,中心点是由给定的位置元素决定 Redis 会假设地球为完美的球形, 所以可能有一些位置计算偏差,据说<=0.5%,对于有严格地理位置要求的需求来说要经过一些场景测试来检验是否能够满足需求。...后面的m、km、ft、mi、是长度单位选项,四选一。 WITHCOORD 将位置元素的经度和维度也一并返回,非必选。 WITHDIST 在返回位置元素的同时, 将位置元素与中心点的距离也一并返回。...例如,我们在 cities:locs 中查找以(115.03,38.44)为中心,方圆200km的城市,结果包含城市名称、对应的坐标和距离中心点的距离(km),并按照从近到远排列。
“附近的人” 核心思想如下: 以 “我” 为中心,搜索附近的用户 以 “我” 当前的地理位置为准,计算出别人和 “我” 之间的距离 按 “我” 与别人距离的远近排序,筛选出离我最近的用户或者商店等 二、...在这里插入图片描述 2、利弊分析 纯基于 mysql 实现 “附近的人”,优点显而易见就是简单,只要建一张表存下用户的经、纬度信息即可。缺点也很明显,需要大量的计算两个点之间的距离,非常影响性能。...:返回一个或多个位置对象的Geohash表示; GEORADIUS:以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象; GEORADIUSBYMEMBER:以给定的位置对象为中心...尽管两种索引的方式不同,但只要坐标跨度不太大,这两个索引计算出的距离相差几乎可以忽略不计。...计算出的两点间距离,字段别名(随意取名)。
领取专属 10元无门槛券
手把手带您无忧上云