#### Topic: To construct the buffer to a point

Hello!

Prompt how to make 30 centimetric buffer of a point please? Already and the documentation read all the same I can not understand these coefficients.

`sdo_buffer (/* point geometry */, 0.02, 0.3)`

You are not logged in. Please login or register.

Hello!

Prompt how to make 30 centimetric buffer of a point please? Already and the documentation read all the same I can not understand these coefficients.

`sdo_buffer (/* point geometry */, 0.02, 0.3)`

And generally I want to understand as to work with Relate. In an example operation with one object of an exact layer is implemented. Simply one object a starting point, and the second buffer from a starting point. I do not understand why it is returned FALSE

```
WITH BUFF AS (select / * + ALL_ROWS */
T.Id;
m.sdo_diminfo;
mdsys.sdo_geom.sdo_buffer (T.gdo_geometry, m.sdo_diminfo, 0.3, ' unit=meter ') gdo_geometry
from geo. TEST T, mdsys. SDO_GEOM_METADATA_TABLE m
where T.Id = 100
and m.sdo_table_name = ' TEST'
and m.sdo_owner = ' GEO ')
SELECT BUFF.Id
,(select mdsys.sdo_geom.relate (BUFF.gdo_geometry, BUFF.sdo_diminfo, ' mask=contains', C.gdo_geometry, BUFF.sdo_diminfo) from geo. TEST A C where C.Id = BUFF.Id) R01
FROM BUFF
```

Nechto;

And that returns if in request to substitute

`(select mdsys.sdo_geom.relate (BUFF.gdo_geometry, BUFF.sdo_diminfo, ' mask=DETERMINE ', C.geometry2, BUFF.sdo_diminfo)`

Nechto wrote:

Simply one object a starting point, and the second buffer from a starting point. I do not understand why it is returned FALSE

I can not precisely tell, but what at you in diminfo - whether the point in boundaries lies and whether exceeds accuracy yours of 0.3 meters?

IgorSm wrote:

Nechto;

And that returns if in request to substitute`(select mdsys.sdo_geom.relate (BUFF.gdo_geometry, BUFF.sdo_diminfo, ' mask=DETERMINE ', C.geometry2, BUFF.sdo_diminfo)`

Delivered ' mask=DETERMINE ' , returned ' DISJOINT '

Arsenyev wrote:

I can not Precisely tell, but what at you in diminfo - whether the point in boundaries lies and whether exceeds accuracy yours of 0.3 meters?

In DIMINFO at me the following

```
sdo_dimname sdo_lb sdo_ub sdo_tolerance
X 0 180 0.05
Y 0 90 0.05
```

Something tolerance for degrees too big.

Alexander Ryndin wrote:

Something tolerance for degrees too big.

+1

Well as one would expect...

Or boundaries for meters small, or 0.05 degrees it is small for 0.3 meters

, with the degree system for a long time no affairs had.

But thought that it is underlined in in meters

https://docs.oracle.com/cd/B28359_01/ap … m#SPATL450

For geodetic data (such as data identified by longitude and latitude coordinates), the tolerance value is a number of meters. For example, a tolerance value of 100 indicates a tolerance of 100 meters. The tolerance value for geodetic data should not be smaller than 0.05 (5 centimeters), and in most cases it should be larger. Spatial uses 0.05 as the tolerance value for geodetic data if you specify a smaller value with the following functions: SDO_GEOM.RELATE, SDO_GEOM.SDO_DIFFERENCE, SDO_GEOM.SDO_INTERSECTION, SDO_GEOM.SDO_UNION, and SDO_GEOM.SDO_XOR; for other functions, Spatial uses the smaller tolerance value that you specify.

And for sdo_buffer at usage of degrees (geodetic data) it is recommended to specify arc_tolerance.

Citations

For example: ' unit=km arc_tolerance=0.05'

If the input geometry is geodetic data, this parameter is required, and arc_tolerance must be specified.

...

If the input geometry is geodetic data and if arc_tolerance is not specified, the default value is the tolerance value multiplied by 20

https://docs.oracle.com/database/121/SP … #SPATL1111

Arsenyev wrote:

it is passed...

+1

Well as one would expect...

Or boundaries for meters small, or 0.05 degrees it is small for 0.3 meters

Prompt please, what it is necessary to substitute that the result appeared? And that I not absolutely understand this accuracy in degrees.

Nechto wrote:

Prompt please, what it is necessary to substitute that the result appeared? And that I not absolutely understand this accuracy in degrees.

And that returns

```
BUFF.Id
,(select mdsys.sdo_geom.relate (BUFF.gdo_geometry, ' mask=contains', C.gdo_geometry, 1e-8) from geo. TEST A C where C.Id = BUFF.Id) R01
```

?

Arsenyev wrote:

it is passed...

And that returns`BUFF.Id ,(select mdsys.sdo_geom.relate (BUFF.gdo_geometry, ' mask=contains', C.gdo_geometry, 1e-8) from geo. TEST A C where C.Id = BUFF.Id) R01`

?

FALSE

Nechto;

And geometries you can result?

BUFF.gdo_geometry

And

C.gdo_geometry

In a type mdsys.sdo_geometry (...)

+1

Example

```
WITH BUFF AS (select / * + ALL_ROWS */
SDO_GEOMETRY (2001, 8307, NULL, SDO_ELEM_INFO_ARRAY (1, 1, 1), SDO_ORDINATE_ARRAY (34.73333333, 43.93333333)) AS geom;
mdsys.sdo_geom.sdo_buffer (SDO_GEOMETRY (2001, 8307, NULL, SDO_ELEM_INFO_ARRAY (1, 1, 1), SDO_ORDINATE_ARRAY (34.73333333, 43.93333333)), 0.3, 0.05, ' unit=meter ') BF
FROM dual)
select (mdsys.sdo_geom.relate (BF, ' mask=contains', geom, 0.05)) FF
from buff
```

By the way, it is returned

MASK=CONTAINS

IgorSm;

So under the documentation:

wrote:

The SDO_GEOM.RELATE function can return the following types of answers:

If you pass amasklisting one or more relationships, the functionreturns the specified maskvalue if one or more of the relationships are true for the pair of geometries. If all relationships are false, the procedure returns FALSE.

Sergey Arsenyev;

Yes I about what not FALSE returned)

**Random topics**