internal static bool IsConditionless(IShapeQuery q)
        {
            if (q.Field.IsConditionless())
            {
                return(true);
            }

            switch (q.Shape)
            {
            case ICircleGeoShape circleGeoShape:
                return(circleGeoShape.Coordinates == null || string.IsNullOrEmpty(circleGeoShape?.Radius));

            case IEnvelopeGeoShape envelopeGeoShape:
                return(envelopeGeoShape.Coordinates == null);

            case IGeometryCollection geometryCollection:
                return(geometryCollection.Geometries == null);

            case ILineStringGeoShape lineStringGeoShape:
                return(lineStringGeoShape.Coordinates == null);

            case IMultiLineStringGeoShape multiLineStringGeoShape:
                return(multiLineStringGeoShape.Coordinates == null);

            case IMultiPointGeoShape multiPointGeoShape:
                return(multiPointGeoShape.Coordinates == null);

            case IMultiPolygonGeoShape multiPolygonGeoShape:
                return(multiPolygonGeoShape.Coordinates == null);

            case IPointGeoShape pointGeoShape:
                return(pointGeoShape.Coordinates == null);

            case IPolygonGeoShape polygonGeoShape:
                return(polygonGeoShape.Coordinates == null);

            case null:
                return(q.IndexedShape.IsConditionless());

            default:
                return(true);
            }
        }
 public virtual void Visit(IShapeQuery query)
 {
     WriteShape(query.Shape, query.IndexedShape, query.Field, "shape");
 }
Пример #3
0
 public virtual void Visit(IShapeQuery query)
 {
 }