-
Notifications
You must be signed in to change notification settings - Fork 3
/
commandGeo.go
33 lines (29 loc) · 1.19 KB
/
commandGeo.go
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
package redisKit
import (
"context"
"github.com/redis/go-redis/v9"
)
// GeoAdd
/*
命令说明: 存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中.
命令语法: GEOADD key longitude latitude member [longitude latitude member ...]
*/
func (client *Client) GeoAdd(ctx context.Context, key string, geoLocation ...*redis.GeoLocation) (int64, error) {
return client.universalClient.GeoAdd(ctx, key, geoLocation...).Result()
}
// GeoPos
/*
命令说明: 从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。
命令语法: GEOPOS key member [member ...]
*/
func (client *Client) GeoPos(ctx context.Context, key string, members ...string) ([]*redis.GeoPos, error) {
return client.universalClient.GeoPos(ctx, key, members...).Result()
}
// GeoDist
/*
命令说明: 用于返回两个给定位置之间的距离.
命令语法: GEODIST key member1 member2 [m|km|ft|mi]
*/
func (client *Client) GeoDist(ctx context.Context, key string, member1, member2, unit string) (float64, error) {
return client.universalClient.GeoDist(ctx, key, member1, member2, unit).Result()
}