I am working with 2 tables containing polygons as shown hereunder. I have many parkingzones and two special areas contained in the dangerareas table. Some of the parking zones overlap with these areas, my purpose is two know the extent of this overlap as an area overlap percentage per parking. I want a null results for the not overlaping parkings. I am working with SQL Oracle Developper. I can't figure out why this query is not working. (I have adapted the layer names as I can't use the real ones, I hope there is no typo left). My query returns an error :
ORA-13011: value is out of range ORA-06512: at "MDSYS.SDO_GEOM", line 125 ORA-06512: at "MDSYS.SDO_GEOM", line 1878 13011. 00000 - "value is out of range"
db = CITY
Table 1 : parkingzones PK
id_parking
SHAPE
Table 2 : dangerareas DA
id_area
SHAPE
SELECT
(area_overlaps/area_zones*100) as pct_overlap
FROM
(SELECT(SDO_GEOM.SDO_AREA
(SDO_GEOM.SDO_INTERSECTION(PK.SHAPE,DA.SHAPE,0,05)0,05)) area_overlaps
FROM CITY.parkingzones PK
CITY.dangerareas DA),
(SELECT (SDO_GEOM.SDO_AREA(PK.SHAPES,0.05)) area_zones )
FROM CITY.parkingzones PK);
Total parking area:
select sum(SDO_GEOM.SDO_AREA(PK.SHAPES,0.05)) total_parking_area
FROM CITY.parkingzones PK
Total overlapping area:
SELECT sum(SDO_GEOM.SDO_AREA(
SDO_GEOM.SDO_INTERSECTION(PK.SHAPE,DA.SHAPE,0.05),0.05))) total_overlap
FROM CITY.parkingzones PK
,CITY.dangerareas DA
where sdo_anyinteract(PK.shape,DA.shape) = 'TRUE';
Overlap per parking (only that have overlap)
select (sdo_geom.sdo_area(sdo_geom.sdo_intersection(pk.shape, da.shape, 0.05), 0.05) /
sdo_geom.sdo_area(pk.shape, 0.05)) * 100 percentage
from city.parkingzones pk
,city.dangerareas da
where sdo_anyinteract(pk.shape, da.shape) = 'TRUE';