class XZ2SFC extends AnyRef

Extended Z-order curve implementation used for efficiently storing polygons.

Based on 'XZ-Ordering: A Space-Filling Curve for Objects with Spatial Extension' by Christian Böhm, Gerald Klump and Hans-Peter Kriegel

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. XZ2SFC
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new XZ2SFC(g: Short, xBounds: (Double, Double), yBounds: (Double, Double))

    g

    resolution level of the curve - i.e. how many times the space will be recursively quartered

Value Members

  1. def index(xmin: Double, ymin: Double, xmax: Double, ymax: Double, lenient: Boolean = false): Long

    Index a polygon by it's bounding box

    Index a polygon by it's bounding box

    xmin

    min x value in xBounds

    ymin

    min y value in yBounds

    xmax

    max x value in xBounds, must be >= xmin

    ymax

    max y value in yBounds, must be >= ymin

    lenient

    standardize boundaries to valid values, or raise an exception

    returns

    z value for the bounding box

  2. def index(bounds: (Double, Double, Double, Double)): Long

    Index a polygon by it's bounding box

    Index a polygon by it's bounding box

    bounds

    (xmin, ymin, xmax, ymax)

    returns

    z value for the bounding box

  3. def ranges(queries: Seq[(Double, Double, Double, Double)], maxRanges: Option[Int] = None): Seq[IndexRange]

    Determine XZ-curve ranges that will cover a given query window

    Determine XZ-curve ranges that will cover a given query window

    queries

    a sequence of OR'd windows to cover. Each window is in the form (xmin, ymin, xmax, ymax) where all values are in user space

    maxRanges

    a rough upper limit on the number of ranges to generate

  4. def ranges(xmin: Double, ymin: Double, xmax: Double, ymax: Double, maxRanges: Option[Int]): Seq[IndexRange]

    Determine XZ-curve ranges that will cover a given query window

    Determine XZ-curve ranges that will cover a given query window

    xmin

    min x value in user space

    ymin

    min y value in user space

    xmax

    max x value in user space, must be >= xmin

    ymax

    max y value in user space, must be >= ymin

    maxRanges

    a rough upper limit on the number of ranges to generate

  5. def ranges(xmin: Double, ymin: Double, xmax: Double, ymax: Double): Seq[IndexRange]

    Determine XZ-curve ranges that will cover a given query window

    Determine XZ-curve ranges that will cover a given query window

    xmin

    min x value in user space

    ymin

    min y value in user space

    xmax

    max x value in user space, must be >= xmin

    ymax

    max y value in user space, must be >= ymin

  6. def ranges(query: (Double, Double, Double, Double), maxRanges: Option[Int]): Seq[IndexRange]

    Determine XZ-curve ranges that will cover a given query window

    Determine XZ-curve ranges that will cover a given query window

    query

    a window to cover in the form (xmin, ymin, xmax, ymax) where all values are in user space

    maxRanges

    a rough upper limit on the number of ranges to generate

  7. def ranges(query: (Double, Double, Double, Double)): Seq[IndexRange]

    Determine XZ-curve ranges that will cover a given query window

    Determine XZ-curve ranges that will cover a given query window

    query

    a window to cover in the form (xmin, ymin, xmax, ymax) where: all values are in user space