1、实验三 空间查询与量算一、空间量算(面积、周长、中心点)1、加载数据,在图层名上单击右键,弹出菜单,选择 open attribute table打开 shp 文件的属性表2、单击属性表右下部 option,在弹出菜单选择 Add Field,在 Add Field 对话框中添加 Area 字段,Float 类型,同样方式添加 Length 字段。属性表添加了 Area 和 Length 字段3、选择 Editor 编辑工具中 Start Editing 命令(这一步可要可不要)4、在属性表中选择 Area,右键单击弹出菜单选择 Field Calculator, 选择 Field Calcu
2、latorField Calculator 对话框计算面积 Area在 Field Calculator 对话框中选中 Advanced,在 Pre-logic VBA Script Code 文本框中输入:Dim pArea as IAreaSet pArea=shape在 Area=下面的文本框输入 pArea.area,然后 OK,即可完成 Area 字段的属性值计算。注:如果记不住代码,没关系,可以打开帮助文档,里面有相应的计算面积、周长、中心的 VBA 脚本5、计算 Length 字段:属性表中选择 Length,右键单击弹出菜单选择 Field Calculator:计算结果显示在
3、 Field Calculator 对话框中选中 Advanced,在 Pre-logic VBA Script Code 文本框中输入:Dim pCurve as ICurveSet pCurve=shape在 Length=下面的文本框输入 pCurve.Length,然后 OK,即可完成 Length字段的属性值计算。计算中心点坐标,同理!在此不做累述* 空间量算要注意检查数据的空间参照和坐标系统,只有在投影方式正确的情况下,所得到的空间量算结果才是真实有效的!一般要求在投影坐标系下计算面积和周长,如果原数据采用的是地理坐标系,则需要进行投影转换。二、空间查询1、基于属性的查询 sele
4、ct by attributes操作路径:selection 主菜单/ select by attributes到这个界面,应该不用再解释了吧!按查询的要求输入相应的条件语句,比如:“所属州“ = 大理2、基于空间关系的查询 select by location操作路径:selection 主菜单/ select by location,界面如下:I want to select feature from : 对应要查询的目标层;That:对应空间查询的条件语句,即查询所依赖的空间关系;The feature in this layer:对应选择层,即空间关系所对应的对象。比如,查询学校附近
5、500 米范围内的银行,银行是我们最终要查询的目标,即目标层;500 米范围内,是查询所对应的空间关系,即“are within distance of”;而这个空间关系所对应的对象是学校,即选择层。ArcGIS 提供了多种空间关系查询,详细内容参考帮助,下面是常用的空间关系类型: 【练习】 加载“云南数据 2”,完成以下练习: 计算云南各县的面积,周长及各县中心点坐标 找出面积大于 5000 平方千米、小于 7000 平方米的县 找出大理州和丽江州所包含的县 查找距离公路 500 米以内的县城 查找 1 级公路 查询穿过大理的所有公路:先提取大理州,提取大理州有两种方法:一种是通过矢量数据提取方式,提取大理州并生成新的 SHP 文件,操作路径:Analysis Tools工具箱,打开 Extract 工具集,双击 Select 参见实验三) ;令一种是通过设置数据属性 definition query 选项页完成大理州的提取,如下图两种方法的区别在于,第一种方法生成了新的大理州 SHP 格式数据,而通过设置数据属性 definition query 选项页完成大理州的提取,仅在空间表达上提取了大理州,并没有生成新的文件,通过修改 definition query 选项页,可以恢复原数据的显示。