确定哪个多边形包含大部分行 - Oracle Spatial

时间:2015-02-18 16:57:07

标签: sql oracle oracle11g oracle-spatial

我有一个oracle数据库(11g空间),包括一系列区域多边形和水管。我试图将每个主电源归因于它所包含的区域,并且在很大程度上这是足够简单的(使用SDO_CONTAINS功能)但我不知道如何处理跨越的主电源由于数字化错误导致多个多边形。

在这种情况下,如果大多数长度(> 50%)都包含在onit中,那么我理想的做法就是将一个主要属性区域多边形归属于区域多边形。我知道我可以使用SDO_RELATE函数来确定任何给定主要交互的每个多边形,但我不知道如何确定每个区域中包含多少长度。< / p>

1 个答案:

答案 0 :(得分:1)

原则是这样的:

  1. 关联主电源和区域。假设您有许多主电源和许多区域,最有效的方法是使用SDO_JOIN
  2. 对于返回的每对(主要/区域),计算它们的交点(SDO_GEM.SDO_INTERSECTION)并测量该交点的长度(SDO_GEOM.SDO_LENGTH)。
  3. 根据这些结果,保留长度最大的每个主要区域
  4. 如果你想要一个完整的SQL例子,请允许我使用样本数据写一点时间。