【问题标题】:Ambigous answer from Oracle SDO_GEOM.RELATE来自 Oracle SDO_GEOM.RELATE 的模棱两可的答案
【发布时间】:2023-04-10 09:18:01
【问题描述】:

我在使用 SDO_GEOM.RELATE Oracle Spatial 函数时遇到了一些问题。我正在使用 Oracle 11.2.0.3 和 SRIM 8307。

我有折线和点并将它们与以下查询相关联我有一些奇怪的答案:

select SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'CONTAINS', pk_spatial.get_geo_point(43856030232), 20) CONTAINS, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'COVEREDBY', pk_spatial.get_geo_point(43856030232), 20) COVEREDBY, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'COVERS', pk_spatial.get_geo_point(43856030232), 20) COVERS, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'DISJOINT', pk_spatial.get_geo_point(43856030232), 20) DISJOINT, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'EQUAL', pk_spatial.get_geo_point(43856030232), 20) EQUAL, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'INSIDE', pk_spatial.get_geo_point(43856030232), 20) INSIDE, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'ON', pk_spatial.get_geo_point(43856030232), 20) ON_, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'OVERLAPBDYDISJOINT', pk_spatial.get_geo_point(43856030232), 20) OVERLAPBDYDISJOINT, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'OVERLAPBDYINTERSECT', pk_spatial.get_geo_point(43856030232), 20) OVERLAPBDYINTERSECT, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'TOUCH', pk_spatial.get_geo_point(43856030232), 20) TOUCH, SDO_GEOM.RELATE((select georoute from t_georoute where id_georoute = 2196), 'determine', pk_spatial.get_geo_point(43856030232), 20) what from dual;

"CONTAINS","COVEREDBY","COVERS","DISJOINT","EQUAL","INSIDE","ON_","OVERLAPBDYDISJOINT","OVERLAPBDYINTERSECT","TOUCH","WHAT" "CONTAINS","FALSE","FALSE","DISJOINT","FALSE","FALSE","FALSE","FALSE","FALSE","FALSE","DISJOINT"

从查询看来,几何图形是不相交的,但第一个包含第二个... 他们实际上很不高兴,但如果我要求任何相关我得到了真实的,那是错误的。

它看起来像一个错误,但也许我做错了什么。

提前致谢, 塞缪尔

【问题讨论】:

    标签: oracle spatial


    【解决方案1】:

    我发现 SDO_GEMOETRY 有一些多余的点。 在我删除它们之后,RELATE 函数按预期工作。 函数 SDO_UTIL.REMOVE_DUPLICATE_VERTICES 成功了。

    希望这对将来的某人有所帮助。

    塞缪尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-12
      相关资源
      最近更新 更多