ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ArcGIS中对于空间数据视图的管理

2021-11-06 11:35:00  阅读:233  来源: 互联网

标签:decode name t2 视图 t1 空间数据 ArcGIS SQL


        先来说说我遇到的问题,当我们创建了一个空间数据的视图之后,我们可以在ArcGIS中的数据库连接的展开树下面可以看到该目录树,并且可以使用。但是我们使用常用的SQL命令,无法在数据库中的SDE用户下查询到该节点。这里看看我的SQL。(同时使用二个SQL的查询结果,进行综合)

select t1.physicalname as fullname,t1.physicalname as aliasname,t1.path as path,decode(t2.name,'Feature Dataset','dataset',decode(t2.name,'Raster Catalog','rastercatalog',decode(t2.name,'Raster Dataset','rasterdataset',decode(t2.name,'Table','table',decode(datasetsubtype1,11,'anno',decode(datasetsubtype2,1,'point',decode(datasetsubtype2,3,'polyline',decode(datasetsubtype2,4,'polygon',decode(datasetsubtype2,2,'multipoint',decode(datasetsubtype2,9,'multipatch','')))))))))) as type,t1.datasetsubtype2 as geometrytype, t1.datasetsubtype1 as featuretype from sde.gdb_items t1, sde.gdb_itemtypes t2 where t1.type=t2.uuid and t2.name !='Table' and instr(upper(t1.physicalname), upper('数据库连接用户名'))=1 order by fullname
select t.table_name 表名,m.geometry_type 类型 from sde.layers t,sde.geometry_columns m where t.owner='数据库连接用户名' and m.f_table_schema=t.owner and m.f_table_name=t.table_name order by 表名

        使用这二句SQL命令我们可以查询到对应用户下的所有节点名称,但是这里值得注意的是,这里没有你创建的那个视图。我们看一下普通空间数据视图和空间数据在打开属性之后的差异。

创建的视图:

普通要素类的空间数据:

 这里可以看到普通要素类的属性和视图是不一样的,虽然在ArcGIS中都可以作为空间数据进行显示,并且这个视图的名称无法使用上面SQL在SDE用户下进行查询,这里值得我们使用注册到地理数据库功能,对数据进行注册既可以使用上面的SQL语句查询到了。

演示一下注册之后的属性:

 

我这里是灰色的,因为我这里的截图使用的是ArcGIS10.2版本的,这里注意的是在ArcGIS10.5版本以前是不支持视图的,这里我们可以看一下官方文档进行对比。官方连接

标签:decode,name,t2,视图,t1,空间数据,ArcGIS,SQL
来源: https://blog.csdn.net/qq_39666729/article/details/121173953

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有