Geo Module

From BaseX Documentation
Revision as of 14:35, 4 January 2013 by Masoumeh (talk | contribs)
Jump to navigation Jump to search

Geo Module adds the support of ExPath Geo Module for GML 2 to BaseX. Based on JTS, GML 2 queris are parsed and evaluated to show in the BaseX frontend.

General Functions

geo:dimension

Signatures geo:dimension($geometry as element(*)) as xs:integer()
Summary Returns the dimension of the given geometry $geometry.
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.


geo:geometryType

Signatures geo:geometryType($geometry as element(*)) as xs:QName()?
Summary Returns the name of the geometry type of given geometry $geometry or an empty sequence, if the geometry is not recognized with an error massage .
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.


geo:envelope

Signatures geo:envelope($geometry as element(*)) as xs:element(gml:Envelope)?
Summary Returns the gml:Envelope of the given geometry $geometry. The envelope is the minimum bounding box of this geometry
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.
GEO0008: the output object cannot be written as an element by writer for some reason.


geo:asText

Signatures geo:asText($geometry as element(*)) as xs:string
Summary Returns the WKT (Well-known Text) representation of the given geometry $geometry. The envelope is the minimum bounding box of this geometry
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.


geo:asBinary

Signatures geo:asBinary($geometry as element(*)) as xs:base64Binary
Summary Returns the WKB (Well-known Binary) representation of the given geometry $geometry.
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.


geo:isEmpty

Signatures geo:isEmpty($geometry as element(*)) as xs:boolean
Summary Returns whether the given geometry is empty $geometry.
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.


geo:isSimple

Signatures geo:isSimple($geometry as element(*)) as xs:boolean
Summary Returns whether the given geometry is simple $geometry and does not have has no anomalous geometric points (ie. the geometry does not self-intersect and does not pass through the same point more than once (may be a ring)).
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.



geo:boundary

Signatures geo:boundary($geometry as element(*)) as xs:element(*)*
Summary Returns the boundary of the given geometry $geometry, in GML 2. The return value is a sequence of either gml:Point or gml:LinearRing elements as a GeometryCollection object. For a Point or MultiPoint, the boundary is the empty geometry, nothing is returned.
Errors GEO0001: the given element is not recognized as a valid geometry.
GEO0002: the given element cannot be read by reader for some reason.
GEO0008: the output object cannot be written as an element by writer for some reason.


Spatial Predicate Functions

geo:isEqual

Signatures geo:isEqual($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially equal to $geometry2 $geometry2.
Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.


geo:disjoint

Signatures geo:disjoint($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially disjoint from $geometry2 $geometry2 (they have no point in common, they do not intersect each other, and the DE-9IM Intersection Matrix for the two geometries is FF*FF****).
Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.


geo:intersects

Signatures geo:intersects($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially intersects $geometry2 $geometry2. This is true if disjoint function of the two geometries returns false.
Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.


geo:touches

Signatures geo:touches($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially touches $geometry2 $geometry2.
Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.



geo:crosses

Signatures geo:crosses($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially crosses $geometry2 $geometry2. It means, if the geometries have some but not all interior points in common. Returns true if the DE-9IM intersection matrix for the two geometries is:

T*T****** (for P/L, P/A, and L/A situations)
T*****T** (for L/P, A/P, and A/L situations)
0******** (for L/L situations).

Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.



geo:within

Signatures geo:within($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially within $geometry2 $geometry2.
Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.



geo:contains

Signatures geo:contains($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially contains $geometry2 $geometry2. Returns true if within function of these two geometries also returns true.
Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.



geo:overlaps

Signatures geo:overlaps($geometry1 as element(*), $geometry2 as element(*)) as xs:boolean
Summary Returns whether geometry1 $geometry1 is spatially overlaps $geometry2 $geometry2.
Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.



geo:relate

Signatures geo:relate($geometry1 as element(*), $geometry2 as element(*), $intersectionMatrix as xs:string) as xs:boolean
Summary Returns whether relationships between the boundaries, interiors and exteriors of geometry1 $geometry1 and geometry2 $geometry2 match the pattern specified in intersectionMatrix $geometry2.
The values in the DE-9IM can be T, F, *, 0, 1, 2 .

- T means the intersection gives a non-empty result.
- F means the intersection gives an empty result.
- * means any result.
- 0, 1, 2 gives the expected dimension of the result (point, curve, surface)

Errors GEO0001: the given element(s) is not recognized as a valid geometry (QName).
GEO0002: the given element cannot be read by reader for some reason.


Analysis Functions