Oracle Spatial 区域重叠百分比

Oracle Spatial Area Overlap Percentage

我正在使用 2 个 table 包含如下所示的多边形。 我有很多停车区和危险区域 table 中包含的两个特殊区域。 一些停车区与这些区域重叠,我的目的是两个知道这种重叠的程度,即每个停车场的区域重叠百分比。 对于不重叠的停车场,我想要一个空结果。 我正在与 SQL Oracle Developper 合作。 我不明白为什么这个查询不起作用。 (我已经调整了图层名称,因为我不能使用真实的图层名称,我希望没有错别字)。 我的查询 returns 一个错误:

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);

总停车面积:

select sum(SDO_GEOM.SDO_AREA(PK.SHAPES,0.05)) total_parking_area
  FROM CITY.parkingzones PK

重叠总面积:

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';

每次停车重叠(只有重叠的)

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';