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
- Alphabetic
- By Inheritance
- XZ2SFC
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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