GEOPOS 命令可以为 地理哈希 中的给定元素提供坐标(LCTT 译注:geohash 是一种将二维的经纬度编码为一位的字符串的一种算法,常用于基于距离的查找算法和推荐算法)。 例如,如果我知道西 38 街 8 号有一个共享单车站,ID 是 523,那么该站的元素名称是 NYC:station:523 。 使用 Redis,我可以找到该站的经度和纬度:
127.0.0.1:6379> geopos NYC:stations:location NYC:station:523 1) 1) "-73.99138301610946655" 2) "40.75466497634030105"
GEODIST 命令提供两个索引元素之间的距离。 如果我想找到陆军广场中央公园南单车站与东 58 街麦迪逊单车站之间的距离,我会使用以下命令:
127.0.0.1:6379> GEODIST NYC:stations:location NYC:station:281 NYC:station:3457 ft "671.4900"
最后,GEORADIUSBYMEMBER 命令与 GEORADIUS 命令类似,但该命令不是采用一组坐标,而是采用索引的另一个成员的名称,并返回以该成员为中心的给定半径内的所有成员。 要查找陆军广场中央公园南单车站 1000 英尺范围内的所有车站,请输入以下内容:
127.0.0.1:6379> GEORADIUSBYMEMBER NYC:stations:location NYC:station:281 1000 ft WITHDIST 1) 1) "NYC:station:281" 2) "0.0000" 2) 1) "NYC:station:3132" 2) "793.4223" 3) 1) "NYC:station:2006" 2) "911.9752" 4) 1) "NYC:station:3136" 2) "940.3399" 5) 1) "NYC:station:3457" 2) "671.4900"
虽然此示例侧重于使用 Python 和 Redis 来解析数据并构建共享单车系统位置的索引,但可以很容易地衍生为定位餐馆、公共交通或者是开发人员希望帮助用户找到的任何其他类型的场所。
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0 (编辑:核心网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|