
cts:geospatial-region-query( $geospatial-region-reference as cts:reference*, $operation as xs:string, $regions as cts:region*, [$options as xs:string*], [$weight as xs:double?] ) as cts:geospatial-region-query
Construct a query to match regions in documents that satisfy a specified relationship relative to other regions. For example, regions in documents that intersect with regions specified in the search criteria.
| Parameters | |
|---|---|
| geospatial-region-reference | Zero or more geospatial path region index references that identify regions in your content. To create a reference, see cts:geospatial-region-path-reference. | 
| operation | 
      The match operation to apply between the regions specified in the
      $geospatial-region-reference parameter and the
      regions in the $regions parameter. Allowed values:
      contains, covered-by, covers,
      disjoint, intersects, overlaps,
      within, equals, touches,
      crosses. See the Usage Notes for details.
     | 
	    
| regions | 
      Criteria regions to match against the regions specified in the
      $geospatial-region-reference parameter. These regions
      function as the right operand of $operation.
     | 
	    
| options | 
      Options to this query.  The default is (). Available options:
      
  | 
	    
| weight | A weight for this query. The default is 1.0. | 
This function matches regions in documents in the database satisfying
   the relationship R1 op R2, where R1 is a region in
   a database document, op is the operator provided in the
   operation parameter, and R2 is any of the regions
   provided in the regions parameter. The R1 regions
   under considerations are those in the indexes provided in the
   geospatial-region-reference parameter.
The database configuration must include a geospatial path region index corresponding to each R1 region. For details, see Geospatial Region Queries and Indexes in the Search Developer's Guide.
The operations are defined by the Dimensionally Extended nine-Intersection Model (DE-9IM) of spatial relations. They have the following semantics:
"contains"- R1 contains R2 if every point of R2 is also a point of R1, and their interiors intersect.
 "covered-by"- R1 is covered-by R2 if every point of R1 is also a point of R2.
 "covers"- R1 covers R2 if every point of R2 is also a point of R1.
 "disjoint"- R1 is disjoint from R2 if they have no points in common.
 "intersects"- R1 intersects R2 if the two regions have at least one point in common.
 "overlaps"- R1 overlaps R2 if the two regions partially intersect -- that is, they have some but not all points in common -- and the intersection of R1 and R2 has the same dimension as R1 and R2.
 "within"- R1 is within R2 if every point of R1 is also a point of R2, and their interiors intersect.
 "equals"- R1 equals R2 if every point of R1 is a point of R2, and every point of R2 is a point of R1. That is, the regions are topologically equal.
 "touches"- R1 touches R2 if they have a boundary point in common but no interior points in common.
 "crosses"- R1 crosses R2 if their interiors intersect and the dimension of the intersection is less than that of at least one of the regions.
 
Note: the operation covers differs from contains
   only in that covers does not distinguish between points in the
   boundary and the interior of geometries. In general, covers
   should be used in preference to contains. Similarly,
   covered-by should generally be used in preference to
   within.
If either the geospatial-region-reference or
   regions parameter is an empty list, the query will not
   match any documents.
The query uses the coordinate system and precision of the geospatial
   region index reference supplied in the
   geospatial-region-reference parameter. If multiple index
   references are specified and they have conflicting coordinate systems,
   an XDMP-INCONSCOORD error is thrown.
cts:geospatial-region-query(
  cts:geospatial-region-path-reference("//item/region"),
    "contains", cts:box(10, 20, 30, 40))
  
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.