public SpatialOptions QuadPrefixTreeIndex(int maxTreeLevel, SpatialBounds bounds)
        {
            if (maxTreeLevel == 0)
            {
                throw new ArgumentOutOfRangeException(nameof(maxTreeLevel));
            }

            return(new SpatialOptions
            {
                Type = SpatialFieldType.Cartesian,
                MaxTreeLevel = maxTreeLevel,
                Strategy = SpatialSearchStrategy.QuadPrefixTree,
                MinX = bounds.MinX,
                MinY = bounds.MinY,
                MaxX = bounds.MaxX,
                MaxY = bounds.MaxY
            });
        }
 protected bool Equals(SpatialBounds other)
 {
     return(MinX.Equals(other.MinX) && MaxX.Equals(other.MaxX) && MinY.Equals(other.MinY) && MaxY.Equals(other.MaxY));
 }