GIS空间分析法怎么用?ArcGIS选址实战详解(附:练习数据)
《GIS空间分析法怎么用?ArcGIS选址实战详解(附:练习数据)》这篇教程面向刚开始做空间分析和选址建模的同学,重点解决一个很具体的问题:如何在 ArcGIS 中把多个空间条件叠加起来,筛选出适合建设某类设施的候选区域。
本文以“公共服务设施选址”为例,演示从数据准备、缓冲区分析、叠加分析、属性筛选到结果验证的完整流程。你可以把这个方法迁移到商业网点选址、应急避难场所选址、垃圾中转站选址、物流仓库选址、学校服务范围分析等场景。

引言:GIS空间分析法在ArcGIS选址中到底怎么用
很多初学者知道 ArcGIS 有缓冲区、叠加、裁剪、擦除、空间连接等工具,但真正做选址时容易卡在一个问题上:这些工具应该按什么顺序组合?
GIS空间分析法不是单独点一个工具就结束,而是把现实中的选址条件转换成空间规则。例如:
- 离主干道路不能太远,方便通达;
- 离居民区要有一定服务半径;
- 不能落在河流、湖泊、基本农田、生态红线等限制区域;
- 候选地块面积要满足建设要求;
- 最好位于现状建设用地或规划建设用地范围内。
在 ArcGIS 中,这些规则通常会被转换为缓冲区分析、叠加分析、擦除分析、属性筛选和面积计算。掌握这个逻辑,比死记某一个工具按钮更重要。
背景:ArcGIS选址实战需要准备哪些练习数据
为了便于练习,本文假设你已经准备了以下矢量数据。数据格式可以是 Shapefile、File Geodatabase 要素类,也可以是 GeoPackage。实际工作中更推荐使用 File Geodatabase,字段名、中文编码和空间处理稳定性更好。
| 数据名称 | 几何类型 | 用途 | 关键字段示例 |
|---|---|---|---|
| 研究区边界 | 面 | 限定分析范围 | name |
| 道路中心线 | 线 | 生成交通可达性缓冲区 | road_type |
| 居民点或小区 | 点或面 | 判断服务对象分布 | pop、name |
| 河流湖泊 | 线或面 | 作为限制建设区域 | type |
| 现状用地 | 面 | 筛选可建设用地类型 | landuse |
| 生态保护区或禁止建设区 | 面 | 从候选区中剔除 | protect |
如果你手头没有完整数据,也可以用一个城市或县区的公开行政边界、道路、水系和用地数据做练习。关键不是数据必须和本文完全一致,而是要包含“适宜条件”和“限制条件”两类图层。
原理:把选址条件转换为空间分析规则
做 GIS空间分析法,第一步不是打开工具箱,而是把业务语言翻译成空间语言。下面是一组常见的 ArcGIS选址规则转换方式。
| 业务条件 | 空间分析表达 | ArcGIS常用工具 |
|---|---|---|
| 距离主干路 500 米以内 | 对主干路建立 500 米缓冲区 | Buffer |
| 距离河流至少 100 米 | 对河流建立 100 米限制缓冲区,然后擦除 | Buffer、Erase |
| 位于研究区内部 | 用研究区边界裁剪所有输入图层 | Clip |
| 用地类型必须为建设用地 | 按 landuse 字段筛选 | Select Layer By Attribute |
| 同时满足多个条件 | 多个适宜区做相交叠加 | Intersect |
| 排除生态保护区 | 从候选区中擦除保护区 | Erase |
| 候选面积不少于 5000 平方米 | 计算面积后按字段筛选 | Calculate Geometry、Select Layer By Attribute |
这个过程的核心是:适宜条件通常用相交或裁剪保留下来,限制条件通常用擦除或排除去掉。ArcGIS选址分析的结果是否可靠,主要取决于这些规则是否清晰、投影是否正确、距离和面积单位是否一致。
步骤:ArcGIS选址实战完整流程
步骤一:建立工程并统一坐标系
打开 ArcGIS Pro,新建一个工程,建议先创建一个 File Geodatabase,用来存放中间结果和最终成果。不要把所有中间数据都散落在桌面文件夹里,否则后续很难追踪。
把研究区边界、道路、居民点、水系、用地图层加载到地图中。右键图层查看坐标系,重点检查以下内容:
- 所有图层是否有明确的空间参考;
- 是否存在未知坐标系;
- 经纬度坐标是否直接用于距离缓冲区;
- 研究区是否需要投影到米制坐标系。
如果图层是经纬度坐标,例如 CGCS2000 地理坐标系或 WGS 84,经度纬度单位是“度”,不适合直接做 500 米、1000 米这样的距离分析。应使用 Project 工具把数据投影到适合当地的投影坐标系,例如 CGCS2000 高斯克吕格投影、UTM 投影或本地城市坐标系。
步骤二:裁剪所有数据到研究区范围
为了减少计算量,也避免研究区外的要素干扰结果,先用研究区边界对各输入图层进行裁剪。
- 打开 Geoprocessing 面板;
- 搜索 Clip 工具;
- Input Features 选择道路、居民点、水系或用地图层;
- Clip Features 选择研究区边界;
- 输出到工程地理数据库中,例如 road_clip、river_clip、landuse_clip。
这个步骤看起来简单,但很重要。很多 ArcGIS选址结果异常,都是因为输入图层超出研究区,导致缓冲区和叠加结果被外部数据影响。
步骤三:提取满足条件的道路和用地
假设选址要求“距离主干路 500 米以内”,不要直接对所有道路做缓冲区。应先按道路等级筛选主干路或次干路。
在道路图层中使用 Select Layer By Attribute,例如字段为 road_type,可以设置类似条件:
road_type IN ('主干路', '次干路')
将选中的道路导出为新图层 road_main。这样后续缓冲区只反映主要交通条件,而不是被村道、小路或内部道路过度放大。
如果选址要求位于建设用地内,也需要从用地图层中筛选可建设类型,例如:
landuse IN ('居住用地', '公共管理与公共服务用地', '商业服务业设施用地')
导出为 landuse_buildable,作为后续适宜区的一部分。
步骤四:生成交通可达性缓冲区
对 road_main 使用 Buffer 工具,距离设置为 500 meters。输出图层命名为 road_500m_buffer。
关键参数建议如下:
- Distance:500 Meters;
- Dissolve Type:选择 Dissolve all output features into a single feature;
- Output Feature Class:保存到工程地理数据库;
- Method:一般使用 Planar,前提是数据已经投影到米制坐标系。
如果没有 Dissolve,缓冲区会保留每条道路的独立面,叠加时可能产生大量碎小面,影响后续面积统计和结果表达。
步骤五:生成服务对象影响区
假设该设施需要服务居民区,要求距离居民点 1000 米以内。可以对居民点或居民区面要素建立 1000 米缓冲区,输出 resident_1000m_buffer。
如果居民点数据带有人口字段 pop,还可以先筛选人口大于某个阈值的居民点,再做缓冲区。例如:
pop >= 1000
这样得到的服务对象影响区更符合实际需求,避免人口很少的零散居民点对选址结果造成过大影响。
步骤六:生成限制建设区并从候选区中排除
限制条件通常包括河流、水库、生态保护区、基本农田、地质灾害区、高压走廊等。本文以河流和生态保护区为例。
对河流图层建立 100 米缓冲区,输出 river_100m_limit。然后将 river_100m_limit 与生态保护区合并,形成统一限制区 limit_area。
如果有多个限制图层,可以使用 Merge 或 Union 进行整合。后续从候选区中统一擦除 limit_area,流程会更清晰。
步骤七:叠加适宜条件得到初步候选区
现在已经有三个主要适宜条件:
- road_500m_buffer:距离主干路 500 米以内;
- resident_1000m_buffer:距离居民点 1000 米以内;
- landuse_buildable:位于可建设用地范围内。
使用 Intersect 工具对这三个图层进行相交叠加。输出为 candidate_raw。这个结果表示同时满足交通、服务对象和用地类型的区域。
这里不要使用 Union 替代 Intersect。Union 会保留所有输入图层的并集,适合分析各条件组合关系;而选址筛选通常要找“同时满足条件”的区域,因此更适合用 Intersect。
步骤八:擦除限制区得到可用候选区
使用 Erase 工具:
- Input Features:candidate_raw;
- Erase Features:limit_area;
- Output Feature Class:candidate_clean。
得到的 candidate_clean 就是排除了河流缓冲区、生态保护区等限制条件后的候选区域。
如果你的 ArcGIS 许可级别中没有 Erase 工具,可以考虑使用 Pairwise Erase,或通过空间选择和编辑方式替代。但在正式项目中,建议使用稳定的地理处理工具,并保留每一步输出,便于复核。
步骤九:计算面积并筛选最终地块
选址结果通常不能只看位置,还要看面积。对 candidate_clean 添加面积字段,例如 area_m2,字段类型设置为 Double。
使用 Calculate Geometry Attributes 计算面积,单位选择 Square Meters。然后用属性选择筛选面积大于等于建设需求的地块,例如:
area_m2 >= 5000
将筛选结果导出为 candidate_final。这个图层就是本次 ArcGIS选址分析的最终候选地块。
步骤十:检查结果并制作输出图
最终结果不要只导出数据,还要做空间核查。建议在地图中叠加以下图层:
- 研究区边界;
- 最终候选地块 candidate_final;
- 主干路;
- 居民点;
- 河流和限制区;
- 可建设用地。
检查候选地块是否真的位于道路附近、是否避开限制区、是否落在可建设用地内、是否存在异常碎片面。如果结果过于零散,可以进一步设置最小面积阈值,或者使用 Multipart To Singlepart 后逐个地块检查。
常见坑:GIS空间分析法在ArcGIS中最容易出错的地方
坑一:经纬度数据直接做缓冲区
这是初学者最常见的问题。经纬度坐标的单位是度,不是米。直接设置 500 米缓冲区时,工具可能会给出警告,或者结果明显异常。正确做法是先投影到米制坐标系,再做距离和面积分析。
坑二:没有区分适宜条件和限制条件
适宜条件是希望保留的区域,例如道路附近、居民区服务范围、可建设用地。限制条件是必须排除的区域,例如水域、保护区、灾害区。两类条件的处理方式不同,混在一起容易导致选址逻辑错误。
坑三:用 Union 代替 Intersect
如果目标是找同时满足多个条件的区域,应优先使用 Intersect。如果使用 Union,结果会包含只满足一个条件或部分条件的区域,需要额外字段判断,操作复杂且容易误选。
坑四:忽略小碎面和缝隙
多图层叠加后经常出现碎小面、缝隙和狭长面。这可能来自边界精度不同、数据来源不同或拓扑不一致。正式出图前应检查面积阈值,并根据需要进行 Dissolve、Eliminate 或人工复核。
坑五:只看工具运行成功,不验证空间结果
ArcGIS 工具运行成功不代表分析结果正确。真正的验证应该包括坐标系、距离单位、属性筛选、限制区排除、面积计算和地图叠加检查。
方法比较:ArcGIS选址常用空间分析工具怎么选
| 工具或方法 | 适合场景 | 优点 | 注意事项 |
|---|---|---|---|
| Buffer | 距离道路、河流、居民点一定范围内或范围外 | 直观,适合表达距离规则 | 必须注意投影和距离单位 |
| Clip | 把数据限制在研究区内 | 减少干扰,提高处理效率 | 不能替代选址条件叠加 |
| Intersect | 多个适宜条件同时满足 | 逻辑清晰,适合候选区筛选 | 可能产生碎小面 |
| Erase | 从候选区中排除限制区域 | 适合禁建区剔除 | 部分许可级别可能受限 |
| Union | 分析多个条件的组合关系 | 保留信息更完整 | 不适合直接作为最终筛选结果 |
| Raster Overlay | 多因子适宜性评价 | 适合连续因子和权重评分 | 需要栅格化和权重设置,解释成本更高 |
如果你的选址规则是“满足或不满足”,例如是否在道路 500 米内、是否在保护区外,矢量叠加方法更直接。如果你的选址规则需要评分,例如坡度越小越好、离道路越近越好、人口密度越高越好,可以考虑使用栅格加权叠加。
检查清单:提交ArcGIS选址成果前必须确认
- 坐标系:所有输入数据是否统一到合适的投影坐标系?
- 单位:缓冲区距离和面积计算是否使用米、平方米等正确单位?
- 范围:所有图层是否已经裁剪到研究区?
- 道路条件:是否只选择了符合要求的道路等级?
- 服务对象:居民点或服务对象数据是否完整,是否需要按人口筛选?
- 用地条件:可建设用地字段是否理解正确,分类编码是否核对过?
- 限制区:河流、保护区、禁建区是否全部纳入排除范围?
- 叠加逻辑:适宜条件是否用 Intersect,限制条件是否用 Erase?
- 碎面处理:是否按最小面积阈值过滤异常小面?
- 结果验证:是否把最终候选地块与原始图层叠加检查?
FAQ:GIS空间分析法和ArcGIS选址常见问题
Q1:ArcGIS选址分析一定要用 ArcGIS Pro 吗?
不一定。ArcMap 也可以完成缓冲区、裁剪、相交、擦除等操作。但从长期学习和项目实践看,更建议使用 ArcGIS Pro。它的地理处理环境、工程管理、符号化和三维扩展能力更适合后续工作。
Q2:GIS空间分析法做选址时,缓冲区距离怎么确定?
缓冲区距离不应随意填写。它通常来自行业规范、规划要求、项目经验或甲方需求。例如道路可达距离、河流退让距离、服务半径等。练习时可以先设定合理假设,但正式项目必须说明依据。
Q3:为什么我做出来的候选区特别碎?
常见原因包括数据边界不一致、图层精度不同、叠加条件过多、没有 Dissolve 缓冲区、用地图斑本身很碎。可以尝试先 Dissolve 同类图斑,叠加后按面积阈值筛选,并人工检查关键地块。
Q4:Intersect 和 Spatial Join 都能做选址吗?
两者用途不同。Intersect 更适合生成满足多个空间条件的候选区域;Spatial Join 更适合把一个图层的属性按空间关系连接到另一个图层,例如统计每个候选地块附近的居民点数量。实际项目中两者可以配合使用。
Q5:ArcGIS选址分析可以加入权重评分吗?
可以。如果需要综合评价多个因素的重要性,可以将距离、坡度、人口密度、土地利用等因子标准化后做加权叠加。矢量数据可以先转栅格,也可以在候选地块属性表中建立评分字段。但权重设置必须有依据,不能只凭感觉。
Q6:练习数据和真实项目数据最大的区别是什么?
练习数据通常结构简单、字段清楚、拓扑问题少。真实项目数据可能存在坐标系不统一、字段编码不一致、边界错位、重复要素、缺失属性等问题。因此正式分析前,数据清洗和质量检查往往比工具操作更耗时。
结论:ArcGIS选址的关键是把业务条件变成可验证的空间规则
GIS空间分析法在 ArcGIS选址中的核心,并不是记住某一个按钮,而是建立一套清晰的分析逻辑:先统一数据和坐标系,再把适宜条件转换为缓冲区、筛选和相交叠加,把限制条件转换为擦除和排除,最后通过面积、属性和地图叠加进行验证。
如果你是 GIS 初学者,可以先用本文的流程完整做一遍练习:裁剪研究区、筛选道路、生成缓冲区、叠加适宜区、擦除限制区、计算面积、输出候选地块。做完这套流程后,你会真正理解 GIS空间分析法怎么用,也能更稳地完成 ArcGIS选址类作业和项目任务。