我正在使用一个SDO_GEOM.RELATE Oracle函数来实现一些对流层。我使用的是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;
“包含”、“覆盖”、“覆盖”、“不相交”、“平等”、“内部”、"ON_“、"OVERLAPBDYDISJOINT”、"OVERLAPBDYINTERSECT“、”触摸“、”什么“包含”什么“、”假“、”不接“、”假“、”脱节“
从查询来看,几何图形似乎是不相交的,但第一个包含第二个.他们实际上很不高兴,但如果我要求任何关系,我就得到了真理,这是错误的。
看上去像个窃听器,但也许我做错了什么。
谢谢你,塞缪尔
发布于 2016-03-17 16:11:46
我发现SDO_GEMOETRY有一些多余的点。在我删除了它们之后,关联函数就像预期的那样工作了。函数SDO_UTIL.REMOVE_DUPLICATE_VERTICES做到了这一点。
希望这对将来的人有帮助。
塞缪尔
https://stackoverflow.com/questions/36013229
复制相似问题