1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| /**
* 地理位置演示函数
* 该函数演示了如何使用Jedis操作Redis中的地理位置数据
* 主要包括添加地理位置数据、获取位置信息、查询一定半径内的地理位置以及计算两点间的距离
*/
static void geoDemo() {
// 创建Jedis对象,连接本地的Redis服务器
Jedis jedis = new Jedis("localhost", 6379);
// 向Redis中添加地理位置数据,包括经度、纬度和位置标识
jedis.geoadd("geo", 120.52, 30.40, "pos1");
jedis.geoadd("geo", 120.52, 31.53, "pos2");
jedis.geoadd("geo", 122.12, 30.40, "pos3");
jedis.geoadd("geo", 122.12, 31.53, "pos4");
// 打印所有位置的地理坐标
System.out.println(jedis.geopos("geo", "pos1", "pos2", "pos3", "pos4"));
// 查询以给定经纬度为中心,指定半径内的地理位置
List<GeoRadiusResponse> geoList = jedis.georadius("geo", 120.52, 30.40, 200, GeoUnit.KM);
for (GeoRadiusResponse res : geoList) {
// 打印查询到的地理位置
System.out.println(res.getMemberByString());
}
// 计算两个地理位置之间的距离
Double distance = jedis.geodist("geo", "pos1", "pos2", GeoUnit.KM);
// 打印计算得到的距离
System.out.println(distance);
}
// 运行程序,输出结果如下:
[(120.5200007557869,30.399999526689975), (120.5200007557869,31.530001032013715), (122.11999744176865,30.399999526689975), (122.11999744176865,31.530001032013715)]
pos1
pos2
pos3
pos4
125.6859
|