通过近邻分析查找最近设施并记录到属性表中
在多种行业地图数据生成过程中,常常涉及地图属性信息赋值操作,如根据两个图层要素之间的邻近关系快速赋值。本文以北京大学点数据和北京市地铁站点图层为例,实现将离北京大学最近的地铁站点信息赋值到北京大学点图层的属性信息中。
使用软件:MapGIS Desktop 高级版 X64(V10.6.4.10)
下载链接:http://www.smaryun.com/goods.php?id=2207
1 数据准备
数据为北京市大学点数据和北京市地铁站点数据,如图所示:
图1 地铁站点
图2 大学
若数据为地理坐标系,需要将数据处理成投影坐标系,便于设置点位搜索范围。
操作步骤如下:点击【工具】-【投影变换】-【批量投影】,添加待投影数据,设置目的坐标系为投影坐标系、设置目的数据目录,点击转换即可。
图3 投影变换
结果预览:
图4 投影变换结果
2 近邻分析
近邻分析是GIS常用功能,发生在两个集合之间,一个集合为分析对象(界面称为“输入要素”),另一个集合是邻近对象(界面称为“邻近要素”),分析过程是在邻近对象中为分析对象搜集要素,并计算相互距离。本案例中使用近邻分析用于搜索大学点数据周围最近距离得地铁站点,操作步骤如下:
点击【分析】-【空间分析】-【近邻分析】,设置【输入要素】、【邻近要素】和【搜索半径】,并勾选【位置选项】,点击执行完成分析。
图5 近邻分析
【输入要素】:输入数据;
【邻近要素】:邻近数据;
【搜索半径】:输入数据搜索附件数据(及邻近数据)的范围;
【位置】:勾选该选项,分析结果会记录源数据和最近数据直接的距离;
【角度】:勾选该选项,分析结果会记录源数据和最近数据直接的角度。
结果预览:
图6 近邻分析结果
【GIS_NEAR_FID】:邻近要素的FID;
【GIS_NEAR_DIST】:邻近要素与目的数据的距离;
【GIS_NEAR_X】:邻近要素的X坐标;
【GIS_NEAR_Y】:近邻要素的Y坐标。
3 属性连接
属性连接功能实现将源类连接到目的类,连接原则是源类和目的类关键字段的记录值相等且该关键字段类型可以兼容的前提下,在目的类中连入源类字段。需要注意的是,目的类数据的要素不能小于源数据类的要素数量。
操作步骤如下:
3.1 属性连接工具
点击菜单【工具】-【属性工具】-【属性连接】,弹出属性连接对话框,如图:
图7 属性连接
3.2 选择数据
在对话框中的“选择数据”项中源类和目的类为单个类(简单要素类或对象类)。设置目的数据为大学,结果类可以是目的类本身,也可以新建对象类。相关参数设置如下:
图8 选择数据
【数据A】:数据源中选择简单要素类或对象类;
【数据B】:数据源中选择简单要素类或对象类;
【目的数据】:结果类数据可以选择是“数据A/数据B”保存;
【连接到新类】:勾选后,可以新建对象类保存结果;
【全选】:可以自定义需要连接的字段,也可以全不选择字段进行连接;(结果类所有字段都必须参与连接)
3.3 关键字段设置
点击“下一步”,设置源类和目的类的多关键字段,相关参数设置如下:(点击“取消”,退出属性连接界面)
图9 关键字段设置
源类和目的类关键字段的记录值相等且该关键字段类型可以兼容,才能成功进行属性连接。可以选择多个关键字段“添加”至列表中进行连接。
【数据A关键字段】:下拉框中将排列数据A所有字段,选择需要连接的关键字段;
【数据B关键字段】:下拉框中将排列数据B所有字段,选择需要连接的关键字段;
提示:当数据A与数据B的关键字段的类型不一致时,可能会导致连接失败。需要用户先手动“修改属性结构”中的类型,再执行“属性连接”操作。
3.4 连接设置
点击“下一步”,在“连接设置”中,点击“连接方式及字段命名”,连接方式选择“完全连接”,字段命名选择“源字段名加序列号”,点击完成按钮,完成源类和目的类的连接。点击查看日志,可以查看详细报告。相关参数设置如下:
图10连接设置
属性连接按照连接方式的不同又分为完全连接和不完全连接。其中系统默认的是完全连接。
【完全连接】:不改变目的类中的记录数,不能连入的记录在目的类中设为空。
【不完全连接】:根据关键字段中记录的匹配情况,改变目的类中的记录数,目的类中删除不能匹配的记录。
目的类中可以根据设置改变连接后字段名称。
【不更改源字段名称】:保存原有的属性字段名,不做任何改变;如:省名
【源字段名加序列号】:根据关键字段中记录的匹配情况,将源字段后缀添加序号“1”;如:省名1
【源字段名加类名】:根据关键字段中记录的匹配情况,将源字段后缀添加源类名。如:省名_省名;
【日志文件】:选择路径,将属性连接日志保存指定路径;
4 结果预览
从属性表中可以分析得出,离每一个大学点位最近的地铁站的属性被写入到大学点数据的属性表中,并且通过近邻分析的结果可以得到大学到最近地铁站点的距离(GIS_NEAR_FID)和最近的地铁站点的坐标(GIS_NEAR_X和GIS_NEAR_Y)。
图11 结果预览