Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Spatial: units and tolerance

flaviocJul 19 2017 — edited Jul 19 2017

Hi folks,

I recently started working with Spatial and I am a bit confused about certain details.

I am investigating problems with overlapping polygons (that shouldn't exist in our application) and I found that acting on the tolerance or applying function sdo_geom.sdo_self_union with a higher tolerance most of these overlappings disappear.

What I am still missing though is the actual meaning of the value 0.5 (which seems to be the default tolerance used by SQLDeveloper when you ask to display a geometry).

My assumption is that in my situation it means meters, that is 0.5 represents half a meter.

However most of the operations carried out by procedures in the application work with a tolerance of 0.005 (5 millimeters?) which seems absolutely absurd when dealing with polygons that refer to countryside map areas.

How am I supposed to ascertain the unit of measure being used?

I am not the owner of the schema where the tables reside and I didn't create them.

If I look at view ALL_SDO_GEOM_METADATA I see only a fraction of the actual tables containing SDO_GEOMETRY columns.

Does that mean that the owner of the schema forgot to insert the tolerance for the table/column in the view USER_SDO_GEOM_METADATA?

I also notice that in the view ALL_SDO_GEOM_METADATA for each dimension are specificied the SDO_LB and SDO_UB and in my case all polygons have coordinates ranging in 1310000 - 2820000 for the X and 3930000 - 5220000 for the Y. My understanding is that these values represent meters because all the business logic in the application dealing with areas returns results described as meters, yet this values are obtained using SDO_GEOM.SDO_AREA with a tolerance of 0.005.

What I need to know is if my assumptions are correct or if I am missing something else here.

Does 0.005 represent 5 millimeters really?

Is the SDO_GEOM.SDO_SELF_UNION function with a higher tolerance the correct approach for fixing the overlapping problem or is better to try SDO_UTIL.SIMPLIFY (or the other variant)?

Thanks for your suggestions.

Flavio

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 16 2017
Added on Jul 19 2017
6 comments
1,281 views