如何在Redis中获取所有保存在Geoset中的位置?

5

我通过使用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个回答

7

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

redis> GEORADIUS rideLocations:345 0 0 22000 km WITHCOORD

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

那么我还有其他方法可以按顺序获取路径吗?我需要在Redis中使用集合吗? - Prashant Barve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接