Loading TOC...

geo.geospatialQueryFromElements

geo.geospatialQueryFromElements(
   regions as Node[],
   [options as String[]],
   [weight as Number?]
) as cts.query

Summary

Returns a query matching points within given regions.

Parameters
regions One or more geographic boxes, circles, polygons, linestring or points, represented by elements in one of the supported vocabularies. Where multiple boxes, circles, polygons, linestring or points are specified, the query matches if any box, circle, polygon, linestring or point matches.
options Options to this query. The default is ().

Options include:

"coordinate-system=string"
Use the given coordinate system. Valid values are:
wgs84
The WGS84 coordinate system.
wgs84/double
The WGS84 coordinate system, at double precision.
raw
The raw (unmapped) coordinate system.
raw/double
The raw (unmapped) coordinate system, at double precision.
"boundaries-included"
Points on boxes' and circles' boundaries are counted as matching. This is the default.
"boundaries-excluded"
Points on boxes' and circles' boundaries are not counted as matching.
"boundaries-latitude-excluded"
Points on boxes' latitude boundaries are not counted as matching.
"boundaries-longitude-excluded"
Points on boxes' longitude boundaries are not counted as matching.
"boundaries-south-excluded"
Points on the boxes' southern boundaries are not counted as matching.
"boundaries-west-excluded"
Points on the boxes' western boundaries are not counted as matching.
"boundaries-north-excluded"
Points on the boxes' northern boundaries are not counted as matching.
"boundaries-east-excluded"
Points on the boxes' eastern boundaries are not counted as matching.
"boundaries-circle-excluded"
Points on circles' boundary are not counted as matching.
weight A weight for this query. The default is 1.0.

Usage Notes

Point values and boundary specifications of boxes are given in degrees relative to the WGS84 coordinate system. Southern latitudes and Western longitudes take negative values. Longitudes will be wrapped to the range (-180,+180) and latitudes will be clipped to the range (-90,+90).

If the northern boundary of a box is south of the southern boundary, no points will match. However, longitudes wrap around the globe, so that if the western boundary is east of the eastern boundary, then the box crosses the anti-meridian.

Special handling occurs at the poles, as all longitudes exist at latitudes +90 and -90.

The query constructed will examine points in all the supported geospatial markup vocabularies. If not all these vocabularies will be in use, it may be more efficient to use the query constructors for just the vocabulary or vocabularies that are in actual use.

This function will take into account interior polygons, if any, and properly construct the query to account for them.

See Also

Example

const geo = require('/MarkLogic/geospatial/geospatial');
const gmlElem = 
  fn.head(xdmp.unquote(
    '<gml:Envelope xmlns:gml="http://www.opengis.net/gml">' +
       '<gml:lowerCorner>10.0 35.0</gml:lowerCorner>' +
       '<gml:upperCorner>20.0 40.0</gml:upperCorner>' +
    '</gml:Envelope>')).root;
geo.geospatialQueryFromElements(gmlElem); 

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.