zoukankan      html  css  js  c++  java
  • arcengine 空间查询SpatialRelDescription使用

    来自:http://bbs.esrichina-bj.cn/ESRI/redirect.php?goto=newpost&tid=5682

    任何一个几何体都可以看做有三部分组成, 比如说一个矩形,那么这个矩形几何体由边界,外部,和内部组成. 那么它和另外的几何体的关系就可以通过这三个部分来界定.

    现在有某个多边形几何体A, 想找到与A边界有重合,但是不存在交叉的另外一个多边形几何体.也就是它们公共部分的面积为零. 那么这个字符串为:"F***T****",第一个F表示不能有重合部分,第五个位置的T表示边界要有重合,其它的关系不需要关心就用"*"来表示就可以了.

    T表示对应的关系要为真时进入结果集
    F表示对应的关系要为假时进入结果集
    *表示对应的关系真假无所谓,都可以进入结果集

    这九个关系取交集,最终的结果为满足条件的结果集.


    ISpatialFilter.SpatialRel设置为esriSpatialRelRelate,并且设置SpatialRelDescription为某个字符串。该字符串的构造方法:
    该字符串为长度为9, “*********”;每一个“*“可以换为”T“或”F“,T表示True,F表示False。具体怎样构造根据具体需要来定。这样就相当于自定义了一个空间关系。每一个字符从左到右分别对应一下的关系
    1 interior interior
    2 interior boundary
    3 interior exterior
    4 boundary interior
    5 boundary boundary
    6 boundary exterior
    7 exterior interior
    8 exterior boundary
    9 exterior exterior

    这9个关系是分别从几何体的内部,边界,外部来区分的,所有的几何体之间的拓扑关系不外乎这9个关系的组合。
    按照你的想法,应该把字符串设置为”T**T*****",

    最终的代码可以是:
        spfilter.SpatialRel=esriSpatialRelate;
        spfilter.SpatialRelDescription = ”T**T*****";

    你可以试一下看看结果是否正确,如果不行的话,再调整一下字符串就可以了。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yanleigis/archive/2009/10/27/4731980.aspx

  • 相关阅读:
    二叉查找树
    二叉树
    广度优先搜索
    深度优先搜索
    algorithm:next_permutation
    Grafana Labs 携手阿里云,将提供国内首款 Grafana 托管服务
    台积电TSMC一些技术特点
    TSMC台积电各种制程工艺技术
    激光雷达激烈竞争市场
    边端云处理器系列技术参数
  • 原文地址:https://www.cnblogs.com/linghe/p/1635471.html
Copyright © 2011-2022 走看看