首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sdo_geom.relate确定包含预期内容的不相交位置

sdo_geom.relate确定包含预期内容的不相交位置
EN

Stack Overflow用户
提问于 2012-06-21 18:50:48
回答 1查看 940关注 0票数 0

我在10.2.0.5 (win64)和11.2.0.3 patch 7 (win32)上得到了以下行为。

我不确定是我的预期错了还是甲骨文的结果错了。

当在line元素周围创建缓冲区并确定缓冲区和线之间的关系时,我希望获得包含(线包含在缓冲区的边界内),但我得到了不相交的结果。

下面是测试代码:

代码语言:javascript
复制
declare
   l_geo1   mdsys.sdo_geometry;
   l_geo2   mdsys.sdo_geometry;
   l_relate varchar2(100);
begin

   -- Create the line
   l_geo1 := mdsys.sdo_geometry(2002
                               ,90112
                               ,null
                               ,mdsys.sdo_elem_info_array(1, 2, 1)
                               ,mdsys.sdo_ordinate_array(153972.952, 473287.52, 153972.839, 473281.531));

   -- Create the buffer using 0.020 meters = 20mm

   l_geo2 := sdo_geom.sdo_buffer(l_geo1, 0.020, 0.0005);

   -- Determine the relation
   l_relate := sdo_geom.relate(l_geo2, 'determine', l_geo1, 0.0005);

   dbms_output.put_line(l_relate);

end;

当使用缓冲区大小为0时,该关系是相等的(正如预期的那样)。当使用缓冲区大小0.027 -0.26时,该关系是不相交的;当使用缓冲区大小>0.26时,该关系是包含。

在我们的数据集中有相当多的行可以发现这种行为。所有这些线路几乎都是南北向的。

我对结果的预期是正确的吗?sdo_geom.relate函数是否返回了错误的结果?

谢谢,雷内。

编辑:添加了不同缓冲区大小的循环:

代码语言:javascript
复制
0 EQUAL
.001 CONTAINS
.002 CONTAINS
.003 CONTAINS
.004 CONTAINS
.005 CONTAINS
.006 DISJOINT
.007 DISJOINT
.008 DISJOINT
.009 DISJOINT
.01 DISJOINT
.011 DISJOINT
.012 DISJOINT
.013 DISJOINT
.014 DISJOINT
.015 DISJOINT
.016 DISJOINT
.017 DISJOINT
.018 DISJOINT
.019 DISJOINT
.02 DISJOINT
.021 DISJOINT
.022 DISJOINT
.023 DISJOINT
.024 DISJOINT
.025 DISJOINT
.026 DISJOINT
.027 CONTAINS
.028 CONTAINS
EN

回答 1

Stack Overflow用户

发布于 2013-02-04 01:35:02

这可能是sdo_geom.relate返回了错误的结果(结果在MapViewer上看起来都很好,很合理)。

但是,值得注意的是,如果您在容差为0.0001的情况下执行关联确定,则会像您预期的那样返回上述所有情况(0.001到0.028)的CONTAINS。

尽管我没有进一步研究它,但您可能会发现缓冲结果(出于某种原因)在您的容差范围内(出于某种原因),介于0.006和0.026之间。在过去,内置缓冲命令存在一些问题,所以如果它不完全一致,我也不会感到惊讶。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11136555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档