Python 官方文档:入门教程 => 点击学习
目录1. 需要的库, Redis2. 连接Redis3. 计算4. 查看已添加位置的经纬度5. 计算两地之间的距离6. 搜索范围内的地址1. 需要的库, redispip install redis2.
1. 需要的库, Redis
2. 连接Redis
3. 计算
4. 查看已添加位置的经纬度
5. 计算两地之间的距离
6. 搜索范围内的地址
pip install 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": "",
})
把已知的地址经纬度导入到Redis中, 用于计算
rd.geoadd(name="集合名称", values=["经度", "维度", "地址名称"])
一次添加多个位置values=[经度1, 维度1, 地址名称1, 经度2, 维度2, 地址名称2, 经度3, 纬度3, 地址名称3......]
。
result = rd.geopos("集合名称", "地址名称1", "地址名称2")
print(result) # [(地址1的经度, 地址1的维度), (地址2的经度, 地址2的维度)]
如果未查到, 会返回None
。
result = rd.geopos("集合名称", "错误名称1", "错误名称2")
print(result) # [None, None]
rd.geodist("集合名称", "地址名称1", "地址名称2", unit="km")
unit:距离的单位, 可选("m": 米, "km": 千米, "mi": 英里, "ft": 英尺)
, 默认值为m
。
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)
处理。
到此这篇关于python利用Redis计算经纬度距离案例的文章就介绍到这了,更多相关Python Redis内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
--结束END--
本文标题: Python利用Redis计算经纬度距离案例
本文链接: https://www.lsjlt.com/news/33988.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0