
geo:parse( $data as node()* ) as cts:region*
Convert nodes in one or more of the supported geospatial
representations into
cts:region
values.
| Parameters | |
|---|---|
| data | Zero or more nodes containing geospatial data in one of the supported formats, such as KML, GML, GeoRSS, or GeoJSON. |
gml:parse-gml
or
geojson:parse-geojson.
The input nodes need not all use the same representation.
xquery version "1.0-ml";
import module namespace geo = "http://marklogic.com/geospatial"
at "/MarkLogic/geospatial/geospatial.xqy";
(: Construct a cts:polygon from GeoJSON data. :)
geo:parse((
<gml:Point xmlns:gml="http://www.opengis.net/gml/3.2">
<gml:pos>12.5 -127.24</gml:pos>
</gml:Point>,
xdmp:unquote('
{ "type": "Polygon",
"coordinates": [
[[1.0, 5.0], [1.0, 8.0], [6.0, 8.0], [7.0, 5.0], [1.0, 5.0]]
]}
')/object-node()
))
==> A cts:point created from a GML node and a cts:polygon created
from a GeoJSON node, similar to the following:
(cts:point("12.5,-127.24"), cts:polygon("5,1 8,1 8,6 5,7 5,1"))