java使用opsForGeo来显示附近的人和距离
误点:
本来跟着黑马做附近的人显示 结果 opsForGeo().search() 方法版本老报错 索性换了一种方法
opsForGeo().radius()
结果可行!
代码演示如下图
//设置圆 中心点 半径 以及半径距离
Circle circle = new Circle(new Point(x,y), new Distance(10, Metrics.KILOMETERS));
System.out.println(circle);
//设置所要返回的信息
RedisGeoCommands.GeoRadiusCommandArgs args = RedisGeoCommands.GeoRadiusCommandArgs.newGeoRadiusArgs()
//设置最多显示两个成员
.limit(5)
//包含成员的坐标信息
.includeCoordinates()
//包含成员距离中心点的距离
.includeDistance();
System.out.println(args);
//返回符合信息的数据
GeoResults<RedisGeoCommands.GeoLocation<String>> search = redisTemplate.opsForGeo().radius(SHOP_TYPE+type,circle,args);
System.out.println(search);
//获取Content里面的集合
List<GeoResult<RedisGeoCommands.GeoLocation<String>>> content = search.getContent();
System.out.println(content);
运行结果如下图所示: