public QueryToken ToQueryToken(string fieldName, Func <object, string> addQueryParameter) { var shapeToken = GetShapeToken(addQueryParameter); WhereOperator whereOperator; switch (_relation) { case SpatialRelation.Within: whereOperator = WhereOperator.Spatial_Within; break; case SpatialRelation.Contains: whereOperator = WhereOperator.Spatial_Contains; break; case SpatialRelation.Disjoint: whereOperator = WhereOperator.Spatial_Disjoint; break; case SpatialRelation.Intersects: whereOperator = WhereOperator.Spatial_Intersects; break; default: throw new ArgumentOutOfRangeException(nameof(_relation), _relation, null); } return(WhereToken.Create(whereOperator, fieldName, null, new WhereToken.WhereOptions(shapeToken, _distanceErrorPct))); }
public QueryToken ToQueryToken(string fieldName, Func <object, string> addQueryParameter) { var shapeToken = GetShapeToken(addQueryParameter); QueryToken relationToken; switch (_relation) { case SpatialRelation.Within: relationToken = WhereToken.Within(fieldName, shapeToken, _distanceErrorPct); break; case SpatialRelation.Contains: relationToken = WhereToken.Contains(fieldName, shapeToken, _distanceErrorPct); break; case SpatialRelation.Disjoint: relationToken = WhereToken.Disjoint(fieldName, shapeToken, _distanceErrorPct); break; case SpatialRelation.Intersects: relationToken = WhereToken.Intersects(fieldName, shapeToken, _distanceErrorPct); break; default: throw new ArgumentOutOfRangeException(); } return(relationToken); }
protected void Spatial(string fieldName, string shapeWKT, SpatialRelation relation, double distErrorPercent) { fieldName = EnsureValidFieldName(fieldName, isNestedPath: false); AppendOperatorIfNeeded(WhereTokens); NegateIfNeeded(fieldName); var wktToken = ShapeToken.Wkt(AddQueryParameter(shapeWKT)); QueryToken relationToken; switch (relation) { case SpatialRelation.Within: relationToken = WhereToken.Within(fieldName, wktToken, distErrorPercent); break; case SpatialRelation.Contains: relationToken = WhereToken.Contains(fieldName, wktToken, distErrorPercent); break; case SpatialRelation.Disjoint: relationToken = WhereToken.Disjoint(fieldName, wktToken, distErrorPercent); break; case SpatialRelation.Intersects: relationToken = WhereToken.Intersects(fieldName, wktToken, distErrorPercent); break; default: throw new ArgumentOutOfRangeException(nameof(relation), relation, null); } WhereTokens.AddLast(relationToken); }
protected void WithinRadiusOf(string fieldName, double radius, double latitude, double longitude, SpatialUnits?radiusUnits, double distErrorPercent) { fieldName = EnsureValidFieldName(fieldName, isNestedPath: false); AppendOperatorIfNeeded(WhereTokens); NegateIfNeeded(fieldName); WhereTokens.AddLast(WhereToken.Within(fieldName, ShapeToken.Circle(AddQueryParameter(radius), AddQueryParameter(latitude), AddQueryParameter(longitude), radiusUnits), distErrorPercent)); }
protected void WithinRadiusOf(string fieldName, double radius, double latitude, double longitude, SpatialUnits?radiusUnits, double distErrorPercent) { fieldName = EnsureValidFieldName(fieldName, isNestedPath: false); var tokens = GetCurrentWhereTokens(); AppendOperatorIfNeeded(tokens); NegateIfNeeded(tokens, fieldName); var whereToken = WhereToken.Create(WhereOperator.Spatial_Within, fieldName, null, new WhereToken.WhereOptions(ShapeToken.Circle(AddQueryParameter(radius), AddQueryParameter(latitude), AddQueryParameter(longitude), radiusUnits), distErrorPercent)); tokens.AddLast(whereToken); }
protected void Spatial(string fieldName, string shapeWkt, SpatialRelation relation, SpatialUnits?units, double distErrorPercent) { fieldName = EnsureValidFieldName(fieldName, isNestedPath: false); var tokens = GetCurrentWhereTokens(); AppendOperatorIfNeeded(tokens); NegateIfNeeded(tokens, fieldName); var wktToken = ShapeToken.Wkt(AddQueryParameter(shapeWkt), units); WhereOperator whereOperator; switch (relation) { case SpatialRelation.Within: whereOperator = WhereOperator.Spatial_Within; break; case SpatialRelation.Contains: whereOperator = WhereOperator.Spatial_Contains; break; case SpatialRelation.Disjoint: whereOperator = WhereOperator.Spatial_Disjoint; break; case SpatialRelation.Intersects: whereOperator = WhereOperator.Spatial_Intersects; break; default: throw new ArgumentOutOfRangeException(nameof(relation), relation, null); } tokens.AddLast(WhereToken.Create(whereOperator, fieldName, null, new WhereToken.WhereOptions(wktToken, distErrorPercent))); }