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

  • 相关阅读:
    解决div嵌套时IE8和FF无法自适应高度
    64位windows系统安装javaee6.0不成功解决方案
    awk 处理
    mysql 事务控制
    mysql 事务控制
    mysql 保留的关键字
    mysql 保留的关键字
    expect set timeout -1 永不超时
    expect set timeout -1 永不超时
    aliyun 安装图形
  • 原文地址:https://www.cnblogs.com/linghe/p/1635471.html
Copyright © 2011-2022 走看看