加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

使用Redis和Python构建一个共享单车的应用程序

发布时间:2018-11-15 06:02:20 所属栏目:编程 来源:Tague Griffith
导读:学习如何使用 Redis 和 Python 构建一个位置感知的应用程序。 我经常出差。但不是一个汽车狂热分子,所以当我有空闲时,我更喜欢在城市中散步或者骑单车。我参观过的许多城市都有共享单车系统,你可以租个单车用几个小时。大多数系统都有一个应用程序来帮

GEOPOS 命令可以为 地理哈希geohash 中的给定元素提供坐标(LCTT 译注:geohash 是一种将二维的经纬度编码为一位的字符串的一种算法,常用于基于距离的查找算法和推荐算法)。 例如,如果我知道西 38 街 8 号有一个共享单车站,ID 是 523,那么该站的元素名称是 NYC:station:523。 使用 Redis,我可以找到该站的经度和纬度:

  1. 127.0.0.1:6379> geopos NYC:stations:location NYC:station:523
  2. 1) 1) "-73.99138301610946655"
  3. 2) "40.75466497634030105"

GEODIST 命令提供两个索引元素之间的距离。 如果我想找到陆军广场中央公园南单车站与东 58 街麦迪逊单车站之间的距离,我会使用以下命令:

  1. 127.0.0.1:6379> GEODIST NYC:stations:location NYC:station:281 NYC:station:3457 ft
  2. "671.4900"

最后,GEORADIUSBYMEMBER 命令与 GEORADIUS 命令类似,但该命令不是采用一组坐标,而是采用索引的另一个成员的名称,并返回以该成员为中心的给定半径内的所有成员。 要查找陆军广场中央公园南单车站 1000 英尺范围内的所有车站,请输入以下内容:

  1. 127.0.0.1:6379> GEORADIUSBYMEMBER NYC:stations:location NYC:station:281 1000 ft WITHDIST
  2. 1) 1) "NYC:station:281"
  3. 2) "0.0000"
  4. 2) 1) "NYC:station:3132"
  5. 2) "793.4223"
  6. 3) 1) "NYC:station:2006"
  7. 2) "911.9752"
  8. 4) 1) "NYC:station:3136"
  9. 2) "940.3399"
  10. 5) 1) "NYC:station:3457"
  11. 2) "671.4900"
虽然此示例侧重于使用 Python 和 Redis 来解析数据并构建共享单车系统位置的索引,但可以很容易地衍生为定位餐馆、公共交通或者是开发人员希望帮助用户找到的任何其他类型的场所。 【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读