如何使用redis将所有位置保存在geoset中?

时间:2016-07-15 13:03:13

标签: node.js redis geolocation

我正在通过geo redis npm包保存从移动设备发送到redis数据库的坐标点,但它们无法获取保存它的路径位置,因为我需要它们来获取用户行进的总距离。我也想要移动MySql数据库中的所有点。

我可以在命令

的帮助下获得使用geo set保存的所有点数
```127.0.0.1:6379> ZRANGE rideLocations:345 0 -1```

但我发现的所有值都是以地理格式编码的,如此

```
 1) "1"
 2) "3484047800163752"
 3) "10"
 4) "3484047800163752"
 5) "2"
 6) "3484047800163752"
 7) "3"
 8) "3484047800163752"
 9) "4"
10) "3484047800163752"
11) "5"
12) "3484047800163752"
13) "6"
14) "3484047800163752"
15) "7"
16) "3484047800163752"
17) "8"
18) "3484047800163752"
19) "9"
20) "3484047800163752"
```

我如何以真实格式获取它们{lat:23.234,lng:45.5435}或者我如何以真实格式转换它们。

或者我有任何建议,如果我存储错误的类型? 如何在保存到MySql之前将它们转换。 nodejs中的任何命令。

1 个答案:

答案 0 :(得分:2)

要检索所有坐标,只需搜索整个星球,即:

redis> GEORADIUS rideLocations:345 0 0 22000 km WITHCOORD

但请注意,您对问题的描述不包括位置的排序,这使得计算路径变得不可能。