/// <summary> /// Creates a new GeoRadius /// </summary> public GeoRadius(RedisKey key, GeoPosition geoPosition, double radius, int maxReturnCount = -1, GeoUnit unit = GeoUnit.Meters, GeoRadiusOptions geoRadiusOptions = (GeoRadiusOptions.WithCoordinates | GeoRadiusOptions.WithDistance)) { Key = key; GeoPosition = geoPosition; Radius = radius; Unit = unit; GeoRadiusOptions = geoRadiusOptions; MaxReturnCount = maxReturnCount; }
public Task <GeoRadiusResult[]> GeoRadiusAsync(RedisKey key, double longitude, double latitude, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order?order = null, GeoRadiusOptions options = GeoRadiusOptions.Default, CommandFlags flags = CommandFlags.None) => Inner.GeoRadiusAsync(ToInner(key), longitude, latitude, radius, unit, count, order, options, flags);
public GeoRadiusResult[] GeoRadius(RedisKey key, RedisValue member, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order?order = null, GeoRadiusOptions options = GeoRadiusOptions.Default, CommandFlags flags = CommandFlags.None) { return(Inner.GeoRadius(ToInner(key), member, radius, unit, count, order, options, flags)); }
public bool HasFlag(GeoRadiusOptions flag) { return((GeoRadiusOptions & flag) != 0); }
/// <summary> /// GEORADIUSBYMEMBER : https://redis.io/commands/georadiusbymember /// </summary> public async Task <RedisGeoRadiusResult <T>[]> RadiusAsync(T member, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order?order = null, GeoRadiusOptions options = GeoRadiusOptions.Default, CommandFlags flags = CommandFlags.None) { var value = this.Connection.Converter.Serialize(member); var results = await this.Connection.Database.GeoRadiusAsync(this.Key, value, radius, unit, count, order, options, flags).ConfigureAwait(false); return(results.Select(this.Connection.Converter, (x, c) => x.ToGenerics <T>(c)).ToArray()); }
/// <summary> /// 根据经纬度计算半径内的所有位置 /// Return the members of a sorted set populated with geospatial information using GEOADD, /// which are within the borders of the area specified with the center location and the maximum distance from the center (the radius). /// </summary> /// <param name="longitude"></param> /// <param name="latitude"></param> /// <param name="radius"></param> /// <param name="unit"></param> /// <param name="count"></param> /// <param name="order"></param> /// <param name="options"></param> public GeoRadiusResult[] GetByRedius(double longitude, double latitude, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order?order = Order.Ascending, GeoRadiusOptions options = GeoRadiusOptions.Default) { return(Database.GeoRadius(SetKey, longitude, latitude, radius, unit, count, order, options)); }
/// <summary> /// 返回 给定实例 和半径内的所有位置 /// </summary> /// <param name="member"></param> /// <param name="radius"></param> /// <param name="unit"></param> /// <param name="count"></param> /// <param name="order"></param> /// <param name="options"></param> /// <returns></returns> public GeoRadiusResult[] GetByRedius(TKey member, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order?order = Order.Ascending, GeoRadiusOptions options = GeoRadiusOptions.Default) { return(Database.GeoRadius(SetKey, Unbox(member), radius, unit, count, order, options)); }
public Task <GeoRadiusResult[]> GeoRadiusAsync(RedisKey key, RedisValue member, double radius, GeoUnit unit = GeoUnit.Meters, int count = -1, Order?order = null, GeoRadiusOptions options = GeoRadiusOptions.Default, CommandFlags flags = CommandFlags.None) { return(this.db.GeoRadiusAsync(key, member, radius, unit, count, order, options, flags)); }
GeoRadiusResult[] IDatabase.GeoRadius(RedisKey key, double longitude, double latitude, double radius, GeoUnit unit, int count, Order?order, GeoRadiusOptions options, CommandFlags flags) => Multiplexer.Wait(((IDatabaseAsync)this).GeoRadiusAsync(key, longitude, latitude, radius, unit, count, order, options, flags));