2

I have a table which contains address-points.

With following sql-statement i have created a 100-meter buffer around each address-point:

CREATE TABLE BUFFERPOLYGONS AS SELECT a.OBJECTID, SDO_GEOM.SDO_BUFFER(a.shape, m.diminfo, 100, 'unit=meter arc_tolerance=0.05') AS SHAPE FROM ADDRESSPOINTS a, user_sdo_geom_metadata m WHERE a.ADDRESSPOINTS='MAINADRESS' AND m.TABLE_NAME='ADDRESSES';

After this, the created table BUFFERPOLYGONS contains a lot of circle-polygons and now I want to union them (like dissolving in ArcGIS), so I did this sql-statement:

CREATE TABLE BUFFERPOLYGONS_DISSOLVE AS SELECT 1 AS OBJECTID, SDO_AGGR_UNION( MDSYS.SDOAGGRTYPE(shape, 0.005)) AS SHAPE FROM BUFFERPOLYGONS;

But after this union-statement, i get this ORA-13346 error message:

Cause: Invalid definition of an arc. An arc is defined using three non-collinear coordinates. Action: Alter the definition of the arc, or set the SDO_ETYPE or SDO_GTYPE to the line type.

I don´t really know what I have to do now with my data (SDO_GEOMETRY)

any suggestions?

  • Simplify the geometries first? Using SDO_UTIL.SIMPLIFY will also convert arcs to linestrings which might help? – nathanvda Sep 13 '16 at 12:21
  • What is the tolerance of the input data (ADDRESSPOINTS) ? In your query that generates the buffers, you actually use the tolerance of table ADDRESSES (not ADDRESSPOINTS). The buffer will be generated at that tolerance, but you perform the aggregation at a tolerance of 0.005 (5mm). The error probably means that, at that tolerance, some of the buffers are invalid (= contain collinear arcs). Can you show an example: just post the geometry of one of the ADDRESSPOINTS ? – Albert Godfrind Sep 14 '16 at 11:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.