示例#1
0
 /// <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);
示例#3
0
 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));
 }
示例#4
0
 public bool HasFlag(GeoRadiusOptions flag)
 {
     return((GeoRadiusOptions & flag) != 0);
 }
示例#5
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());
        }
示例#6
0
 /// <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));
 }
示例#7
0
 /// <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));
 }
示例#8
0
 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));
 }
示例#9
0
 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));