ArcGIS属性表关联方式(Join和Rela…

2023-11-02 15:31

本文主要是介绍ArcGIS属性表关联方式(Join和Rela…,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ArcGIS表关联方式介绍(Join和Relate)

注:本文转载于 Blog:http://blog.csdn.net/linghe301
Weibo:http://www.weibo.com/linghe301

ArcGIS的表关联方式有很多:Join、Relate、QueryLayer、ArcSDE视图、关系类等,这些关联看似有相同的地方,但是其实不同的关联方式适合于不同的数据,不同的软件环境,不同的应用场景,不同的版本等,下面我们就针对每一个关联进行相关的分析和说明。

本文所有的测试环境

操作系统:Windows7 64Bit

数据库:Oracle 11.2.0.164Bit

中间件:ArcSDE10 SP2 64Bit

客户端:ArcGIS Desktop10SP264Bit

数据情况

面状要素:Place


普通表:Owner


预前说明

关于普通表在数据库中存储和在ArcSDE里面存储管理是完全不同的,虽然都是存储在数据库中,但是通过ArcSDE管理这些普通表的信息是会注册到ArcSDE的相关Schema中的,那么就出现一个问题,当我们需要管理一个Linux操作系统的普通表,如果这些表是ArcSDE管理,那么这些表我们就可以通过ArcSDE服务的方式进行关联,如果这些表是以普通方式进行存储,那么我们只能通过OleDB驱动来关联,但是Windows系统默认的OleDB驱动有SQLServer和Oracle的,如果用户是DB2的数据库,需要自己安装OleDB驱动,要么不安装OleDB驱动使用ArcSDE服务。

Join

       使用场景:将一个要素类与一个普通表进行关联

数据环境:文件数据或者数据库都可以

必须条件:要素类与普通表必须有一个关联字段


Join后我们可以看到,要素类的属性(既有要素类属性又有普通表的属性)

Validate Join进行验证

Ø  检查字段名称是否以无效字符开头。

Ø  检查字段名称是否包含无效字符。

Ø  检查字段名称是否与保留字匹配。

Ø  检查是否存在非地理数据库 MS Access表。

连接表可能失败的原因

用于连接的指定字段中的值不匹配。

连接区分大小写,使用字符串字段创建连接时要注意此问题。例如,NEW YORK 不会与 New York 连接。要将字符串值转换为正常的大小写形式,请参阅进行字段计算中的任务。

表或要素类的名称,或者表或要素类中的字段名称包含空格或特殊字符。

这些特殊字符包括连字符(如 x-coordinate 和 y-coordinate)、圆括号、方括号以及 $、% 和 # 等符号。实际上排除了字母数字和下划线之外的所有符号,但字段名称不能以数字或下划线开头。必须先对带分隔符的文本文件或其他表中的字段名称进行编辑以删除不支持的字符,然后再在 ArcGIS 中使用这些文件。地理数据库的要素类、表和字段的名称最多可包含 64 个字符。(更具体地说,您最多只能为个人地理数据库的要素类名称输入 52 个字符,因为系统会将字符总数追加到 64 个。)Shapefile 和 .dbf 字段的最大名称长度为 10 个字符。对于 INFO 表,最多使用 16 个字母或数字。

表中的字段名为 MicrosoftAccess 的保留字。

例如,date、day、month、table、text、user、when、where、year 和 zone。

表存储在非个人地理数据库的Microsoft Access 数据库中。

应通过 OLE DB 连接在 ArcGIS 中访问 Microsoft Access 表,而不应试图直接向 ArcMap 添加数据库。


使用join其实最大的便利就是进行标注显示,如下:


使用这个可以将要素类的属性和普通表的属性同时标注,增加用户对数据的可读性。

存储方式:只能使用MXD的方式进行存储,如果不使用MXD,关闭ArcMap建立的关联关系就不在存在。

提示:如果要素类与属性表不在同一个库中(同一个库表示文件数据比如在同一个Geodatabase,非文件数据在同一个数据库中),如果修改属性表的值,是不会实时更新的,必须重新再建立Join连接,这样才能看到最新的信息。

Relate

         Relate的使用跟Join比较类似,但是Relate并不会更改要素类的表信息(不会将普通表的信息添加到要素类中),但是在使用ArcMap的信息查询可以看到。

       关于使用数据、使用场景、存储方式都可以参考Join的说明。


-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
QQ群:              78773981
Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301

这篇关于ArcGIS属性表关联方式(Join和Rela…的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/331572

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

详解Java中三种状态机实现方式来优雅消灭 if-else 嵌套

《详解Java中三种状态机实现方式来优雅消灭if-else嵌套》这篇文章主要为大家详细介绍了Java中三种状态机实现方式从而优雅消灭if-else嵌套,文中的示例代码讲解详细,感兴趣的小伙伴可以跟... 目录1. 前言2. 复现传统if-else实现的业务场景问题3. 用状态机模式改造3.1 定义状态接口3

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

Java异常捕获及处理方式详解

《Java异常捕获及处理方式详解》异常处理是Java编程中非常重要的一部分,它允许我们在程序运行时捕获并处理错误或不预期的行为,而不是让程序直接崩溃,本文将介绍Java中如何捕获异常,以及常用的异常处... 目录前言什么是异常?Java异常的基本语法解释:1. 捕获异常并处理示例1:捕获并处理单个异常解释: