根据经纬度和半径查询区域的设备:
//初始化数据
BoundGeoOperations<String, String> geoOps= redisTemplate.boundGeoOps("deivce::rsu")
.add(map);
//查询指定参数 圆形区域内的RSU设备
Circle circle = new Circle(new Point(areaRadius.getLongitude(), areaRadius.getLatitude()),
new Distance(areaRadius.getRadius(), RedisGeoCommands.DistanceUnit.KILOMETERS));
//设置geo查询参数
RedisGeoCommands.GeoRadiusCommandArgs geoRadiusArgs = RedisGeoCommands.
GeoRadiusCommandArgs.
newGeoRadiusArgs().
includeCoordinates().//查询返回结果包括距离和坐标
includeDistance().
sortAscending().//按查询出的坐标距离中心坐标的距离进行排序
limit(4);//只查附近4个
//查询结果
GeoResults<RedisGeoCommands.GeoLocation<String>> radius = RsuGeoCache.geoOps.geoRadius(circle, geoRadiusArgs);
过滤器与拦截器:Tomcat容器 Filter->Servlet->Inteceptor->Controller