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

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

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

我可以使用 Redis 的 GEORADIUS 命令查询 500 英尺半径范围内的车站的 NYC 系统索引:

  1. 127.0.0.1:6379> GEORADIUS NYC:stations:location -73.97297 40.76384 500 ft
  2. 1) "NYC:station:3457"
  3. 2) "NYC:station:281"

Redis 使用地理空间索引中的元素作为特定车站的元数据的键名,,返回在该半径内找到的两个共享单车站。 下一步是查找两个站的名称:

  1. 127.0.0.1:6379> hget NYC:station:281 name
  2. "Grand Army Plaza & Central Park S"
  3.  
  4. 127.0.0.1:6379> hget NYC:station:3457 name
  5. "E 58 St & Madison Ave"

这些键名对应于上面地图上标识的车站。 如果需要,可以在 GEORADIUS 命令中添加更多标志来获取元素列表,每个元素的坐标以及它们与当前点的距离:

  1. 127.0.0.1:6379> GEORADIUS NYC:stations:location -73.97297 40.76384 500 ft WITHDIST WITHCOORD ASC
  2. 1) 1) "NYC:station:281"
  3. 2) "289.1995"
  4. 3) 1) "-73.97371262311935425"
  5. 2) "40.76439830559216659"
  6. 2) 1) "NYC:station:3457"
  7. 2) "383.1782"
  8. 3) 1) "-73.97209256887435913"
  9. 2) "40.76302702144496237"

查找与这些键名关联的名称会生成一个我可以从中选择的车站的有序列表。 Redis 不提供方向和路线的功能,因此我使用设备操作系统的路线功能绘制从当前位置到所选单车站的路线。

GEORADIUS 函数可以很轻松的在你喜欢的开发框架的 API 里实现,这样就可以向应用程序添加位置功能了。

其他的查询命令

除了 GEORADIUS 命令外,Redis 还提供了另外三个用于查询索引数据的命令:GEOPOSGEODISTGEORADIUSBYMEMBER

(编辑:宿州站长网)

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