确定哪个多边形包含一条线的大部分 - Oracle Spatial
Determining which polygon contains the majority of a line - Oracle Spatial
我有一个 oracle 数据库(11g 空间),其中包括一系列区域多边形和水管。我试图将这些主电源中的每一个归因于它所在的区域,并且在大多数情况下这很简单(使用 SDO_CONTAINS 函数)但我不确定如何处理跨接的主电源由于数字化错误导致多个多边形。
在这种情况下,如果它的大部分长度 (>50%) 包含在 onit 中,我最想做的是将 main 归因于区域多边形。我知道我可以使用 SDO_RELATE 函数来确定任何给定主要交互的每个多边形,但我不知道如何确定每个区域中包含的长度。
原理是这样的:
- 关联电源和区域。假设你有很多主电源和很多区域,最有效的方法是使用 SDO_JOIN
- 对于返回的每一对 (main/area),计算它们的交点 (SDO_GEM.SDO_INTERSECTION) 并测量该交点的长度 (SDO_GEOM.SDO_LENGTH)。
- 根据这些结果,保留每个主干长度最大的区域
如果您想要一个完整的 SQL 示例,请允许我花点时间使用示例数据编写该示例。
我有一个 oracle 数据库(11g 空间),其中包括一系列区域多边形和水管。我试图将这些主电源中的每一个归因于它所在的区域,并且在大多数情况下这很简单(使用 SDO_CONTAINS 函数)但我不确定如何处理跨接的主电源由于数字化错误导致多个多边形。
在这种情况下,如果它的大部分长度 (>50%) 包含在 onit 中,我最想做的是将 main 归因于区域多边形。我知道我可以使用 SDO_RELATE 函数来确定任何给定主要交互的每个多边形,但我不知道如何确定每个区域中包含的长度。
原理是这样的:
- 关联电源和区域。假设你有很多主电源和很多区域,最有效的方法是使用 SDO_JOIN
- 对于返回的每一对 (main/area),计算它们的交点 (SDO_GEM.SDO_INTERSECTION) 并测量该交点的长度 (SDO_GEOM.SDO_LENGTH)。
- 根据这些结果,保留每个主干长度最大的区域
如果您想要一个完整的 SQL 示例,请允许我花点时间使用示例数据编写该示例。