1 geo.intersection

Returns the geometry corresponding to the topological intersection of the two geometries (AND operation).

<geo.intersection ora_tol='ora_tol'>
    <geom1> *
        <geom1 /> *
    </geom1>
    <geom2> *
        <geom2 /> *
    </geom2>
</geo.intersection>
Example
Copy
<select>
    <columns>
       <geo.intersection>
            <geom1>geometry_col_1</geom1>
            <geom2>geometry_col_2</geom2>
       </geo.intersection>
    </columns>
    <from table='buildings' alias='a' >
    </from>
    <where>
        a.name = 'MACBA'
    </where>
</select>

2 geo.buffer

Returns the geometry that represents all the points that are at a distance equal to or less than the given distance of the past geometry.

<geo.buffer
    pg_seg='pg_seg'
    ora_tol='ora_tol'
    ora_arctol='ora_arctol'
    sql_tol='sql_tol'
    sql_rel='sql_rel'
>
    <geom1> *
        <geom1 /> *
    </geom1>
    <dist> *
        <dist /> *
    </dist>
</geo.buffer>
Example
Copy
<select>
    <columns>
       <geo.buffer>
            <geom1>geometry_col_1</geom1>
            <dist>10</dist>
       </geo.buffer>
    </columns>
    <from table='buildings' alias='a' >
    </from>
    <where>
        a.name = 'MACBA'
    </where>
</select>

3 geo.simplify

It simplifies the input geometry based on the indicated threshold value. This function is useful when a geometry with less resolution is required than the original geometry. This function uses the Douglas-Peucker algorithm.

This function can change the geometry topology and can result in invalid geometries.

In Postgres the attribute pg_preserve = 'y' serves to ensure that the topology is preserved.

<geo.simplify
    pg_preserve='y|n'
    ora_tol='ora_tol'
    threshold='threshold'
>
    <geom1 /> *
</geo.simplify>
Example
Copy
<select>
    <columns>
       <geo.simplify threshold='0.006'>
            <geom1>geometry_col_1</geom1>
       </geo.simplify>,
       <geo.simplify  tol='0.004' pg_preserve='y' threshold='0.006'>
            <geom1>geometry_col_1</geom1>
       </geo.simplify>
    </columns>
    <from table='buildings' alias='a' >
    </from>
    <where>
        a.name = 'MACBA'
    </where>
</select>

4 geo.convexHull

Returns the minimum convex geometry that contains the geometry. It can be thought of as the geometry that is obtained when an elastic band is put around that of geometry.

<geo.convexHull ora_tol='ora_tol'>
    <geometry_column /> *
</geo.convexHull>
Example
Copy
<select>
    <columns>
       <geo.convexHull ora_tol='0.005'>geometry_col</geo.convexHull>
    </columns>
    <from table='buildings' alias='a' >
    </from>
    <where>
        a.name = 'MACBA'
    </where>
</select>

5 geo.difference

Returns the geometry that represents the geom1 geometry that does not intersect with the geom2 geometry.

<geo.difference ora_tol='ora_tol'>
    <geom1> *
        <geom1 /> *
    </geom1>
    <geom2> *
        <geom2 /> *
    </geom2>
</geo.difference>
Example
Copy
<select>
    <columns>
       <geo.difference ora_tol=''>
            <geom1>geometry_col_1</geom1>
            <geom2>geometry_col_2</geom2>
       </geo.difference>
    </columns>
    <from table='buildings' alias='a' >
    </from>
    <where>
        a.name = 'MACBA'
    </where>
</select>

6 geo.symDifference

Returns the geometry that represents the geometry parts of geom1 and geom2 that do not intersect. It is called symmetric because ST_SymDifference(geom1,geom2)=ST_SymDifference(geom2,geom1). It can be thought of as: ST_Union(geom1,geom2) - ST_Intersection (geom1, geom2).

<geo.symDifference ora_tol='ora_tol'>
    <geom1> *
        <geom1 /> *
    </geom1>
    <geom2> *
        <geom2 /> *
    </geom2>
</geo.symDifference>
Example
Copy
<select>
    <columns>
       <geo.difference ora_tol=''>
            <geom1>geometry_col_1</geom1>
            <geom2>geometry_col_2</geom2>
       </geo.difference>
    </columns>
    <from table='buildings' alias='a' >
    </from>
    <where>
        a.name = 'MACBA'
    </where>
</select>