☰
GIS基础入门:坐标系、矢量栅格与数据对齐避坑指南
2026/9/28 15:03:40 网站建设 项目流程

做GIS这行久了,最常被新同事问的一句话是“我到底该先学哪个功能”。我给出的答案通常和大多数人预期的不太一样:先别急着学分析、建模、三维这些看起来很酷的东西,先把坐标系、矢量栅格、图层管理这几件GIS基础中的基础焊在脑子里。这篇当作GIS基础系列的第一篇,我会从软件选型、新建shp文件、叠加天地图底图、数据保存发送、切片包,一路讲到“数据对不齐”“尖锐角”“面积平差”这些新手一定会撞上的坑。写这篇的初衷很简单:有太多人卡在最开始的三五天,不是不会操作,而是不知道为什么要这么操作。

这套内容适合谁?刚接触GIS的学生、刚转岗做数据处理的新人,以及虽然会点ArcGIS但一直靠“背菜单”干活、换了软件就抓瞎的朋友。读完你未必能立刻做出多复杂的分析图,但至少能顺着一条清晰的路径,从零把数据建出来、画出来、对齐、保存、分享给别人,并且知道出了问题该往哪几个方向排查。

1. 先搞懂:GIS到底在解决什么问题

1.1 从一张地图讲起:空间位置和属性

GIS全称是地理信息系统,说起来很玄,实际干的事就一句话:把位置和属性绑在一起。位置是经纬度、坐标、边界这些几何信息,属性是这块地属于谁、面积多大、土地用途是什么、流转状态如何。

我拿一个特别生活化的例子:城市公园里有一把长椅。你可以在纸上画个点代表它,这是几何信息;你在旁边标注“这把椅子是去年装的、已经申请过保修、下个月需要巡检”,这是属性信息。把两者放进同一个系统,你就可以随时回答“哪些椅子本月需要保养”“哪个片区的长椅数量不够”。GIS做的事情,就是把散落在表格里的数据放在真实空间坐标上,让数据可以被位置查询、被空间统计、被图层叠加。

新手容易忽略的是:位置数据本身没有意义,属性数据离开位置也没有空间感。只有两者绑定,才是GIS的根基。你之后建的每一个要素、画的每一根线、填的每一个字段,本质上都在做这一件事。

1.2 矢量与栅格:GIS里的两种“画布”

GIS数据有两大类型:矢量数据和栅格数据。这个分类新手必须记牢,因为后面的绝大多数操作都是在跟这两种数据打交道。

矢量数据由点、线、面构成。点是一个坐标,比如公交站;线是一串坐标,比如河流和道路;面是首尾相连的坐标串,比如地块边界、行政区范围。矢量的好处是边界精确、文件体积小、便于查询属性,适合做规划图、地籍图、路网图。

栅格数据则是规则的像元格子,每个格子存一个值。最典型的就是遥感影像、扫描地形图、高程DEM。栅格的优势是适合做连续表面的分析,比如坡度、坡向、温度分布;缺点也很实在,放大到一定程度会看到像元方块,文件动不动就是几个G。

打个生活化的比方:矢量像简笔画,线条干净,放大多少倍都不糊;栅格像像素画,凑近了能看到马赛克。入门阶段,我们平时手工画的数据基本都是矢量;影像和扫描图基本都是栅格。两者可以叠加显示,也可以互相转换,但这都是后面的内容,先把概念分清,操作就不容易乱。

1.3 坐标系与投影:所有“对不齐”的根源

我得把坐标系这件事往前放,因为这个坑几乎每个新手都会踩,而且踩完之后至少懵一天。先说结论:你看到两份数据明明应该叠在一起,结果一个在海南、一个在哈尔滨,或者一个靠左一个靠右,99%的原因是坐标系不一致。

坐标系分两大体系。地理坐标系是用经纬度表示位置,单位是度,描述的是地球这个曲面上的点,比如大家熟知的WGS84、CGCS2000都属于地理坐标系。投影坐标系是把地球曲面展开成一幅平面图,单位是米,这样才能在屏幕上做测量、计算面积,比如Web墨卡托、高斯-克吕格分带、UTM。

对比一下就明白了:同样是“北京市区”的范围,用WGS84经纬度画出来的坐标是(116.4, 39.9);用Web墨卡托画出来则是一串约等于百万级别的大数字(12960000, 4850000)。如果你把两套坐标系的数据放进同一个地图视图,软件只会当它们是一串坐标值,结果自然错位得惊人。

这里有一张整理过的对照表,遇到“对不齐”先按这个思路自查:

数据场景常用坐标系单位典型EPSG代码
GPS设备采集的经纬度WGS84地理坐标系度EPSG:4326
国内测绘成果、国土数据CGCS2000地理坐标系度EPSG:4490
在线底图、Web地图Web墨卡托投影米EPSG:3857
大比例尺地形图、工程图高斯-克吕格分带米带号不同,代码不同
全球范围遥感影像WGS84 / UTM米按分带选择

我个人的习惯是:开工之前,先统一所有图层的坐标系。能统一成投影坐标系就统一成投影坐标系,因为后续算面积、量距离、做缓冲区都依赖米制单位;如果只是想快速看一下专题图,统一到在线底图的Web墨卡托最省心。千万不要在没确认坐标系的情况下,先花一上午把数据画完,最后再回头看“为什么叠不上”,那才是真正的体力浪费。

2. 开工干活:环境准备与第一份数据

2.1 软件选型:ArcGIS还是QGIS

聊GIS基础绕不开软件。目前主流桌面GIS软件就两大类:ArcGIS系和QGIS系。

ArcGIS Pro是商业软件,功能全面、生态成熟,企业级项目用得多,处理大规模数据和复杂制图确实稳定。但它的授权机制对个人用户不友好,初学阶段如果公司没有提供许可,自己装破解版不仅麻烦,还容易踩雷。QGIS则是开源免费、跨平台,安装包小,启动快,而且它的核心概念和ArcGIS是相通的,坐标系、图层、属性表这些逻辑完全一样。对打基础的人来说,我更推荐QGIS:零成本、社区教程多、插件丰富,遇到问题也容易找到解决方案。

如果后续走GIS开发方向,建议两条腿走路:先把QGIS的基本工作流练熟,再去接触ArcGIS Pro的工具箱逻辑和Python脚本接口。因为无论是ArcGIS还是QGIS,底层的GIS原理是同一套,软件只是皮,概念才是骨。

2.2 新建shp文件:从零画自己的第一份矢量数据

新建shp文件听起来简单,但“在哪里新建”“坐标系选哪个”“字段类型怎么定”这三个问题,新手经常一头雾水。这里把在QGIS里新建shp的完整流程拆开讲。

先说最简单的路径:在QGIS的图层菜单中选择“创建图层→新建Shapefile图层”。弹窗里有几个关键项要设置:

  • 文件名称:起英文名,比如road_demo,不要用中文文件名。原因很现实:很多半路写死的模块、插件和外部程序对中文路径支持时好时坏,与其将来花时间踩坑,不如一开始就用英文。
  • 几何类型:根据你要画什么选点、线、面。画公交站选点,画道路选线,画地块边界选面。
  • 坐标系:这是最关键的。如果你的项目里有天地图或其他在线底图,建议直接选EPSG:3857或与底图一致的坐标系;如果数据未来要交给测绘院、规划院,选CGCS2000相关投影更稳妥。实在拿不准,先用WGS84,反正后续还能做投影转换,不算致命错误。
  • 字段列表:除了自动生成的FID和Shape字段,你还需要自己加业务字段。加字段时要想清楚类型:编码类的写整数会省空间,例如用地编码;名称类的用字符串;面积、长度这类精度高的用小数,精度值建议给到二位或四位小数,比如double、宽度18、精度4。

画图本身不复杂:开始编辑,选“添加点/线/面要素”,沿着参考底图描边或者手动输入坐标,画完保存编辑。保存时提醒一句:在QGIS里,shp文件是“编辑状态”下才能画要素,画完一定记得点“保存图层编辑”,而不是只保存工程,不然刚才白画。

2.3 加载天地图与在线底图

没有底图的时候,你画的东西是飘在空白里的。在线底图给数据提供了空间参照,相当于一张能描的红纸。国内最常见的是天地图,它提供矢量底图、影像底图和地形底图,而且有官方坐标体系,适合做数据叠加。

在QGIS里加载天地图,通常用的是XYZ瓦片方式。原理不复杂:在线地图把整个地图切成很多小块图片,根据当前缩放级别和视野范围动态加载对应的小图,你在软件里拼起来看。操作上,在浏览器面板的XYZ Tiles条目上右键“新建连接”,填一个名称和URL地址。

天地图的URL需要带上你申请的Key,直接在天地图官网注册并申请开发者Key即可,个人学习用途免费。接入形式大体是这样的:https://t0.tianditu.gov.cn/vec_w/wmts?tk=你的key&layer=vec&style=default&tilematrixset=w&Service=WMTS&Request=GetTile&Version=1.0.0&Format=tiles&TileMatrix={z}&TileCol={x}&TileRow={y},具体参数以官网最新文档为准。填好后点击“添加”,缩放一下,应该就能看到正经的在线底图了。

如果你是ArcGIS用户,流程类似:一般通过“添加数据→添加数据从路径”或者“底图”菜单直接添加在线服务。加载底图有个好处,它自带正确的坐标系,你后续新建的shp只要和它保持一致,数据落位基本不会歪。

3. 数据管理:保存、传输与切片

3.1 GIS文件怎么保存和发给别人

“GIS文件怎么保存发送给别人”这个搜索词热度很高,背后的问题也很有意思:很多人以为shp文件就是一个文件,复制走就完事了。

真实情况是,一个shapefile至少由三四个同名前缀的文件组成:.shp存几何、.dbf存属性、.shx存索引、.prj存坐标系。如果你只拷走了.shp,别人那边打开大概率会提示缺失文件,或者能显示图形但属性表和坐标信息全丢。最典型的是漏掉.prj,导致别人打开后坐标系是“未知”,还得猜你当初用的什么投影去重定义。

所以正确做法是:发shp给别人时,把同一目录下所有同名文件一次性选中,打成zip压缩包再发。如果是发给完全没装GIS软件的人,那就不要发shp了,可以考虑发GeoPDF、图片或者在线地图链接。

另外一个选项是使用GeoPackage格式。它把几何、属性、坐标系、样式全部塞进一个后缀为.gpkg的文件里,单文件、跨平台、兼容性好,QGIS原生支持,ArcGIS Pro新版也读得不错。我现在跟别人交换矢量数据,除非对方硬性要求shp,否则我更愿意用GeoPackage,省心得多。

3.2 创建地图切片包与数据共享

说到“创建地图切片包”,很多人其实是在做这样一件事:想把一份很大的GIS数据做成一幅可以快速加载、快速分享的离线地图,但又不想把原始的shp、gdb文件直接发给对方。切片包就是干这个的。

切片包的逻辑是:把地图数据按多个缩放级别预先渲染成一张张小图片,形成一个金字塔结构的瓦片集合。别人拿到后不需要安装GIS软件,普通看图软件甚至网页就能浏览。它最大的好处是加载速度快——矢量数据每次加载都要重新渲染,数据一多就卡;切片包是直接拿现成的图片往屏幕上贴,流畅度完全不在一个级别。

在ArcGIS Pro里,操作路径通常是“共享”选项卡下选择“切片包”。在QGIS里,可以用“导出→导出切片包”或者通过“栅格→XYZ瓦片→生成XYZ瓦片”这类工具。核心参数是缩放级别范围。级别太少,地图放大没几下就糊了;级别太多,生成时间成倍增长、文件体积暴涨。我实际使用的经验是:如果只是给同事看个专题图,4到12级够用;如果是公开地图应用,再按需加高层级。选级之前先想清楚“谁会在什么尺度上看”,比盲目勾选“最大级别”要紧得多。

4. 高频问题排查:从数据对不齐到尖锐角

4.1 在线地图加载不了,先别怀疑网络

“GIS Pro在线地图加载不了”是搜索量很高的一个问题。很多人的第一反应是断网了,或者软件坏了。我排查过的实际情况里,网络问题反而少见,常见原因基本集中在以下几类:

  • 服务地址或Key有问题:天地图等在线服务需要凭据,Key过期、填错、URL中参数大小写不对,都会导致加载不出来。
  • 坐标系不匹配:底图服务和当前工程坐标系差异过大时,内容可能加载了,但显示在非常远的地方,看起来就像没加载。
  • 软件缓存异常:反复加错URL之后再修正,软件可能还保留着旧的错误缓存,清理瓦片缓存后重启就能恢复。
  • 内外网限制:某些单位的内网环境会拦截外部地图服务请求,这类情况不是软件问题,需要找网络管理员确认是否允许访问地图服务器域名。

我给的排查顺序是这样的:先在浏览器里直接打开那个瓦片服务URL,如果浏览器能出图,说明服务本身没问题;再去GIS软件里检查URL和Key;最后清理缓存重启。这个顺序能替你省掉大量重复操作。

4.2 数据对不齐,怎么把它校正过来

数据对不齐分两种情况,处理思路完全不同,新手经常混在一起处理,越弄越乱。

一种是坐标系定义错误。比如一份明明是CGCS2000坐标的数据,被软件误当成WGS84,或者shp文件缺了.prj导致坐标系变成未知。这种问题的根子是“坐标系元数据错了”,需要先“定义投影”,把正确的、已知的坐标系指认给这个图层,再“投影”到目标坐标系去。顺序千万别反:先定义再转换,两者都不能漏。

另一种是坐标值本身有偏差。比如你拿一份老的地籍图和最新的影像底图比对,发现整体往北偏了十几米,或者局部有旋转。这时要用空间校正:在ArcGIS里有空间调整工具,在QGIS里可以通过“编辑”状态整体框选要素,配合移动、旋转来对齐。如果数据量大且偏差规律复杂,还可以用地理配准工具,把图层上的关键点和底图上的同名点一一对应,做几何纠正。

实操中我的建议是先抓三个特征明显的点试对一下,比如建筑物角点、道路交叉口,看偏差方向是否一致。点位选得好,校正效果能到厘米级;点位乱选,结果可能比原来还歪。校正完成后,记得把成果另存为一个新文件,保留原始数据,别直接覆盖。

4.3 存在尖锐角怎么处理

“GIS中存在尖锐角怎么处理”,这个问题一般出现在建筑轮廓、地块边界或者三调数据的后处理里。尖锐角说白了就是多边形边线上出现非常窄、非常“扎眼”的夹角,视觉上突兀,后续做缓冲、叠加分析时还可能产生拓扑错误。

处理之前先判断尖锐角是数据质量问题还是表达问题。如果是人工描图时手抖多加了一个节点,最稳妥的办法是进入编辑状态,直接选中那个多余节点删掉,或者把邻近节点吸附到正确位置上。手动处理虽然费功夫,但边界不会被改动得太厉害。

如果是大范围数据批量出现尖锐角,可以借助简化和平滑工具。QGIS里的“简化”工具能按容差删减多余顶点,容差给得越小,几何变形越小;平滑工具能让边界变柔和,减少尖刺。但注意,平滑会改变边界位置和面积,如果这份数据涉及精确面积计算,平滑后的结果需要谨慎使用。我的建议是:精确定位优先手动编辑,批量清理可以用自动工具,但自动处理后一定要再用拓扑检查工具跑一遍,看看有没有新产生的重叠、空洞或压盖。

4.4 面积计算与面积平差工具的实用场景

“面积平差工具”这个词搜索量不小,但很多新手搜到之后发现自己其实没那么需要它,他们真正的问题是“为什么这个地块的几何面积和台账面积差这么多”。这两个问题得分开说。

先说基础的面积计算。在QGIS里,可以打开属性表,用字段计算器新建一个字段,调用$area表达式来计算每个要素的投影面积。这里有严格的坐标系要求:图层如果还处于WGS84经纬度状态,$area算出来的是度单位下的退化面积,数值会非常离谱,与实际公顷数毫无关系。所以算面积前,请先把图层投影到一个米制坐标系再算。ArcGIS Pro里类似,用计算几何工具,选择“面积”并以米制单位输出。

再说真正的面积平差。它的使用场景通常是:你有两份同一块地的边界,一份是测绘院提供的高精度边界,一份是业务系统里老的数据,两个面边界略有出入、面积也有差异。面积平差要做的是,以高精度数据为基准,把低精度数据的边界进行小幅调整,使得其面积向基准靠拢,最终各个地块加起来的总面积与已知权威总面积完全一致。

这个操作在测绘、国土、房产领域很常见。在ArcGIS Pro中,制图数据管理工具里有专门的面积调整工具,可以按照给定的目标面积调整一个或多个面要素。QGIS里没有一键等效工具,但可以用工作流代替:先空间校正对齐边界,再结合拓扑编辑微调节点,最后用字段计算器重新计算面积,人工比对目标表格确认差异消除。新手如果只是想验证面积是否准确,老老实实走“统一坐标系→投影→计算几何→对比台账”这条链路就够了,一上来就用平差工具反而容易把边界改坏。

最后再分享一个我的操作习惯

我做了这么久GIS,最深的感受是:这个领域真正难的不是某一个工具,而是数据思维。拿到任何一批数据,先在脑子过一遍“数据从哪来、坐标系是什么、属性全不全、精度够不够”这四个问题,再动手处理,能少走很多弯路。

另外一个很实用的小习惯是:所有重要成果都保留一份原始数据和一份处理后的成果,文件名里带上日期和坐标系后缀。比如地块边界_202501_CGCS2000.shp,这样过了三个月再回来看,你还能知道当初的数据是什么基准,而不是面对一堆“最终版”“最终版2”“真的最终版”干瞪眼。

这篇GIS基础第一篇就先讲到这。后续我会接着写坐标系转换的实操细节、属性表处理与字段计算、空间分析与缓冲区操作这些内容,争取把新手路上最常用、最绕不开的那部分功能一个个趟平。如果你在跟着实操时卡在某一步,多半不是操作问题,而是某个基础概念没捋顺,回头翻一翻对应章节,思路会清楚很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询