zoukankan      html  css  js  c++  java
  • ArcSDE当关系查询ArcMap与REST查询结果不一致问题的解决

    首先描述来形容什么问题:

    周边环境:ArcGIS10.x、Oracle 11g R2,这个问题无关与环境

    假设用户使用关联查询(比方一个空间数据与一个属性数据进行关联),在ArcGIS for Desktop中查询的结果(查看属性表)。与进行REST的Query(where条件输入1=1即查询全部数据)查询的结果不一致。普通情况下REST的Query查询比桌面查询的结果要多。

    ----------------------------------------------------------------------------------

    版权全部。文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    測试数据说明:

    空间数据place



    属性数据 owner


    我们能够看出空间数据的place.pid与属性数据的owner.pid是关联字段,那么我们能够看到place有三个要素与owner的5条记录能够关联上。

    ----------------------------------------------------------------------------------

    版权全部,文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    那么假设用户使用ArcGIS for Desktop的Join之后,在ArcMap中就能够看到空间数据的三条记录



    可是我在REST接口Query中WHERE输入“1=1”查出来的结果是5条记录


    从上图分析能够看出,REST的Query查询结果为5条记录。可是细心的读者能够看出,当中各有两条记录是反复记录,这个联系到我们看到的Owner表记录的信息,事实上这就是一个Oracle的连接关系,假设以属性数据为基准,那么关联起来的数据应该就是5条记录。

    ----------------------------------------------------------------------------------

    版权全部,文章同意转载。但必须以链接方式注明源地址,否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    我也使用了QueryLayer或者ArcSDE视图分别进行了測试,结果都是一样的,并且。通过Oracle数据库查看创建的视图也能够看出来。数据库中的确存储了5条记录。


    那么问题又出来了,为什么ArcGIS for Desktop记录的是3条数据呢?通过跟踪ArcGIS操作的Oracle后台trace文件能够看出:

    1:通过空间关系查询语句,以我创建的SDE视图MyVIEW为例


    ArcMap首先做了一个空间查询。使用SDE.ST_EnvIntersects过滤。假设输入相关值,能够得到5条记录。

    ----------------------------------------------------------------------------------

    版权全部,文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    2:通过空间索引进行过滤


    那么ArcMap又做了一层过滤。通过空间索引,并且有一个很关键的SQLkeyword(“distinct”),所以通过这个,ArcMap结果已经从5条变成了3条。

    ----------------------------------------------------------------------------------

    版权全部。文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    那么问题的解决办法基本上明确了。ArcMap内部做了一个过滤反复的操作,可是REST的Query页面中。因为基本没有对SELECT选项的操作(Distinct一般都输入在Selectkeyword后),所以无法获得正确的结果。


    那么用户能够使用QueryLayer的方式在进行操作。


    ----------------------------------------------------------------------------------

    版权全部。文章同意转载,但必须以链接方式注明源地址,否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    通过QueryLayer,我们能够加入Distinctkeyword,过滤反复记录。那么我们就能够在REST的Query里面获得正确的结果了。


    ----------------------------------------------------------------------------------

    版权全部,文章同意转载。但必须以链接方式注明源地址,否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    其它參考:


    ArcGIS表关联方式介绍(一)-Join、Relate
    http://blog.csdn.net/linghe301/article/details/6649689


    ArcGIS表关联方式介绍(二)-ArcSDE视图、QueryLayer、RelationshipClass
    http://blog.csdn.net/linghe301/article/details/6649717


    ArcSDE性能分析——跟踪Oracle的Trace文件
    http://blog.csdn.net/linghe301/article/details/8640864

    ----------------------------------------------------------------------------------

    版权全部,文章同意转载,但必须以链接方式注明源地址。否则追究法律责任!

    Blog:               http://blog.csdn.net/linghe301

    ----------------------------------------------------------------------------------


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    BZOJ1085 SCOI2005 骑士精神【IDA* 启发式迭代加深】
    BZOJ1690 Usaco2007 Dec 奶牛的旅行 【01分数规划】
    SPOJ104 Highways 【矩阵树定理】
    BZOJ1597土地购买 【斜率优化DP】
    【模板】NTT
    【模板】FFT
    BZOJ3196 Tyvj1730 二逼平衡树 【树套树】 【线段树套treap】
    POJ3696 The Windy's 【网络流】
    POJ2728 Desert King 【最优比率生成树】
    BZOJ5298 CQOI2018 交错序列 【DP+矩阵快速幂优化】*
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4678169.html
Copyright © 2011-2022 走看看