Python利用Redis计算经纬度距离案例
作者:时光不写代码 时间:2021-03-05 04:51:35
1. 需要的库, redis
pip install redis
2. 连接Redis
import redis
class RedisCtrl(object):
@staticmethod
def connect(config):
pool = redis.ConnectionPool(
host=config['host'],
db=config['db'],
port=config['port'],
password=config['password'],
)
return redis.StrictRedis(connection_pool=pool)
rd = RedisCtrl.connect({
"db": 1,
"port": "6379",
"password": "password",
"host": "",
})
3. 计算
把已知的地址经纬度导入到Redis中, 用于计算
rd.geoadd(name="集合名称", values=["经度", "维度", "地址名称"])
一次添加多个位置values=[经度1, 维度1, 地址名称1, 经度2, 维度2, 地址名称2, 经度3, 纬度3, 地址名称3......]
。
4. 查看已添加位置的经纬度
result = rd.geopos("集合名称", "地址名称1", "地址名称2")
print(result) # [(地址1的经度, 地址1的维度), (地址2的经度, 地址2的维度)]
如果未查到, 会返回None
。
result = rd.geopos("集合名称", "错误名称1", "错误名称2")
print(result) # [None, None]
5. 计算两地之间的距离
rd.geodist("集合名称", "地址名称1", "地址名称2", unit="km")
unit:距离的单位, 可选("m": 米, "km": 千米, "mi": 英里, "ft": 英尺)
, 默认值为m
。
6. 搜索范围内的地址
result = rd.georadius(name="集合名称", longitude="经度", latitude="维度", radius="半径距离", unit="半径单位",
sort='ASC', count=10, withdist=True, withcoord=True)
print(result) # [[b'地址名称', 距离, (经度, 维度)], [b'shanghai', 0.1774, (121.4813420176506, 31.235159732038248)]]
sort: 排序方式,
ASC
由近到远,DESC
由远到近。count: 指定返回前几条数据。
withdist: 是否返回距离。
withcoord: 是否返回经纬度信息。
注意: 返回的数据其中的地址名称是
byte
类型的, 使用时需要decode('utf-8)
处理。
来源:https://blog.csdn.net/weixin_44649870/article/details/126668523
标签:Python,Redis
0
投稿
猜你喜欢
np.where()[0] 和 np.where()[1]的具体使用
2023-04-21 20:21:29
Windows下mysql5.7.10安装配置方法图文教程
2024-01-19 16:19:43
Python相互导入的问题解决
2022-12-04 16:59:56
Go语言题解LeetCode724寻找数组的中心下标
2023-07-09 03:26:01
利用一个简单的例子窥探CPython内核的运行机制
2023-08-11 04:54:31
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2023-07-08 23:15:23
golang 跳出for循环操作
2024-04-30 10:04:00
Python编写淘宝秒杀脚本
2021-01-31 23:23:42
Python操作Sql Server 2008数据库的方法详解
2024-01-20 04:47:01
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2021-12-04 12:39:55
Python处理json字符串转化为字典的简单实现
2022-05-15 01:42:58
Javascript的常规数组和关联数组对比小结
2024-04-28 09:47:29
Python利用带权重随机数解决抽奖和游戏爆装备问题
2023-09-21 10:16:43
SQL Server数据库备份多种方法
2008-11-24 15:27:00
海量数据库的查询优化及分页算法方案
2024-01-16 18:50:51
python数据结构leetcode338比特位计数算法
2023-05-06 21:24:33
python 指定源路径来解决import问题的操作
2023-04-28 00:03:01
Go语言中数组的基本用法演示
2024-02-09 21:26:34
简单三步轻松实现ORACLE字段自增
2024-01-16 06:06:58
分析mysql中一条SQL查询语句是如何执行的
2024-01-19 15:43:59