配置redis
1
2
3
4
5 <dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
1 | <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/> |
添加坐标
key ,经度 , 维度 , 距离 ,return m 表示单位为米
1
2
3
4 public Long addReo(String key, double longitude, double latitude, String itemName) {
Point point = new Point(longitude, latitude);
return redisTemplate.getOperations().opsForGeo().geoAdd(key, point, itemName);
}
批量添加地理位置
1 | public Long geoadd(String key, Map<Object, Point> memberCoordinateMap) { |
根据给定地理位置获取指定范围内的地理位置集合
返回匹配位置的经纬度 + 匹配位置与给定地理位置的距离 + 从近到远排序
1 | public List<GeoRadiusResponse> georadiusByMember(String key, String member, double radius) { |
根据给定地理位置坐标获取指定范围内的地理位置集合
1 | public GeoResults geoRadius(String key, double longitude, double latitude, double radius) { |
根据给定地理位置坐标获取指定范围内的地理位置部分集合
1 | public GeoResults geoRadiusArgs(String key, double longitude, double latitude, double radius, int limit) { |
查询两位置距离
1 | public Double geoDist(String key, String member1, String member2, Metrics unit) { |
获取地理位置的坐标
1 | public List<GeoCoordinate> geopos(String key, String... members) { |
可以获取某个地理位置的geohash值
1 | public List<String> geohash(String key, String... members) { |