
简介面向GIS制图与空间可视化用户提供粤港澳大湾区整体边界及香港、澳门线状要素的shp矢量数据适用于专题地图绘制、区域分析、高校地理教学与规划展示等场景。压缩包共20个文件体积仅272KB内含3组完整要素图层每组均配备.shp几何文件、.shx索引、.dbf属性表、.prj投影定义以及.sbn/.sbx空间索引另附2个xml元数据文件格式规范可直接在ArcGIS、QGIS等主流平台加载也能作为底图与统计数据关联出图。已有290人浏览学习。数据图层分层清晰、命名直观便于按需提取与组合配色边界与线要素分开存放可灵活用于区域底图、人口密度图、交通路网示意、城市群空间结构分析等多种可视化表达有效减少前期数据整理与坐标对齐工作量。适合GIS初学者练习制图也可作为区域研究项目的底图补充与教学演示素材。1. 拿到大湾区 shp 别急着出图先搞清楚包里到底有什么很多人下载了粤港澳大湾区 shp 数据第一件事就是拖进 ArcGIS 或 QGIS 里直接出图结果不是边界对不上就是图层叠在一起分不清层级。这份数据包的实质是一套按行政区划拆好的面矢量边界覆盖广州、深圳、珠海、佛山、惠州、东莞、中山、江门、肇庆以及香港、澳门十一个城市包含市界、区县界和部分省界三个层级配合属性表里的城市名和行政区代码可以直接用于 GIS 可视化的底图制作、空间分析的范围裁剪以及各类专题图的分区统计。你拿它当研究底图、项目汇报背景、或者做数据可视化 demo 的地图基底都合适。适合的读者是 GIS 从业者、规划相关人员和做数据可视化的人——凡是需要一张「大湾区轮廓」而不是自己描边的人这份数据都能省掉大量手工清理的功夫。别急着画图先花十分钟把数据结构、坐标系和字段内容看明白后面才不会被各种坐标偏差和属性乱码折磨。2. 拆开压缩包11 个城市三层级边界与“四件套”文件结构2.1 shp 不是单文件认识主文件、索引、属性表和坐标系文件解压后你会看到一堆后缀不同的文件这很正常。shp 格式的本质是多文件并存每个图层至少依赖 4 个基础文件才能正常打开——.shp存几何坐标、.shx做空间索引、.dbf存属性字段、.prj记录坐标系信息。缺了哪个都会出问题比如少了.prjGIS 软件会按未知坐标系打开图层还能显示但无法做任何投影转换量测结果直接失真。典型的数据包结构大致是这样粤港澳大湾区/ ├── 大湾区市界.shp/.shx/.dbf/.prj ├── 大湾区区县界.shp/.shx/.dbf/.prj ├── 大湾区省界.shp/.shx/.dbf/.prj └── 大湾区河流.shp/.shx/.dbf/.prj如有有些压缩包里还带xml元数据文件或cpg编码说明文件cpg特别关键。它标记的是属性字段的字符编码标准大量中文乱码问题都出在.dbf是 UTF-8 编码而软件按 GBK 读取或者反过来。如果解压出来没有.cpg你在打开.dbf时就要手动指定编码这是后话第 4 章我会专门讲怎么处理。携带.prj文件检查坐标系是你拿到数据后做的第一件事不是画图。右键属性查看里可以看到数据到底是 GCS_WGS_1984 还是其他坐标系这决定了后续要不要重投影。这一步省了后面做面积统计或叠加分析时会产生人为误差到时候你只会觉得“数据有问题”实际上是你没有统一坐标系。2.2 属性表里有什么字段读懂了才知道能干什么用 ArcGIS 打开属性表你会发现每个面要素都带着一组可用的属性字段。典型字段包括NAME城市名或区县名、PAC行政区划代码、AREA面积单位取决于坐标系、SHAPE_Leng和SHAPE_Area系统自动计算的周长和面积一般在投影坐标系下有效。这些字段是可视化分区的关键——做专题图时直接按PAC前四位聚合就能合并出城市级别的统计口径。比如你想按城市统计 POI 数量利用NAME字段做连接关联即可前提是外部的统计表里也有同样写法的城市名。常见坑是广州写成“广州市”而属性表里写“广州”连接后大量空值这属于文本规范不一致不算数据错误但需要你用计算字段清洗。行政区代码字段比城市名更可靠建议优先用PAC建立关联因为代码不会有简繁体、多字少字的问题。属性表里的AREA字段要注意如果原始坐标系是 WGS84 经纬度那么面积单位是度数值没有任何实际意义。正经的面积计算必须先把数据投影到适合该地区的投影坐标系再重算具体做法在第 3 章。2.3 边界分了三层叠加显示才能出“标准大湾区图”数据包里市界、区县界、省界是分开存储的不是天然叠在一起。出图时需要把这三个图层按顺序放进来第一层省界在最底下第二层市界最上层是区县界。省界在这里的作用主要是框定大湾区与周边省份的邻接关系如果你只做大湾区内部图可以关掉省界图层或者把它调成浅灰色背景线。在 QGIS 里处理这种叠加关系有一个小技巧把区县界设为白色填充加细黑描边市界设为透明填充加粗黑描边两层叠在一起立刻得到“区县填色 市界加粗”的标准行政区划图样式。这比单独用某一层再手工描边要快得多。顺序反了会怎样市界和区县界都是线图层显示上通常看不出问题但导出打印时线互相压盖粗线遮住了细线出图效果就是糊成一团。解决方法是符号化里统一下压盖顺序——线划图层按“级别越高越靠上”的规则排列即可。这一层数据里香港和澳门地区通常只有轮廓级边界没有细分到区。如果你要做宏观尺度的大湾区城市对比图这个精度够用要是需要港澳内部区级边界这份资源里没有得另找更细致的公开数据且大概率要和本地测绘规范对齐。别指望一份 shp 通吃所有尺度先明确自己的制图比例再决定用哪一层。3. 第一步就做坐标系WGS84 与 CGCS2000 投影的实操对齐3.1 为什么坐标不对齐图面就会“漂移”大湾区 shp 的原始坐标系大概率是 GCS_WGS_1984也就是全球通用的地理坐标系单位是度用在 ArcGIS 里作为底图显示没问题但等到你叠加在线底图比如影像图、路网图时如果底图的坐标系和投影方式不同边界就会整体偏移几百米甚至更多。这不是数据画错了而是两套坐标参照系的空间基准不同必须做投影转换而不是手动拖动对齐。另外一个常见的场景是面积统计。WGS84 经纬度下的面要素面积是“度²”你量出来一个城市十几度的数字完全没法用。需要把数据投影到适合大湾区的投影坐标系再重新计算面积字段。大湾区的地理位置大致在东经 112° 到 115°、北纬 22° 到 24° 之间适合用 CGCS2000 / 3-degree Gauss-Kruger CM 114E在 QGIS 里对应 EPSG:4547中央经线 114°E 正好穿过大湾区中部变形小。这是坐标系选择的“玄学”中最不需要纠结的部分——记住 114E 这条经线就够了。选坐标系的原则很简单显示用 WGS84分析计算用投影坐标系做与国土/规划相关成果时优先 CGCS2000 系的投影。国内标准成果基本转 CGCS2000海外开源数据则常见 WGS84两者之间互相转换在 GIS 软件里只是一行命令的事但方向错了就是整张图废掉。3.2 QGIS 的投影转换操作导出时改掉坐标系QGIS 里转换坐标系最稳妥的方式是“导出 → 另存为”而不是直接用图层属性里的“设置 CRS”。原因是“设置 CRS”只改变图层在画布上的显示方式不修改底层数据另存为则会真实地写出新坐标系的数据文件。具体步骤右键图层 → 导出 → 另存为在格式下拉框选ESRI Shapefile文件名指定到新目录在 CRS 一项点击右侧的选择按钮搜索EPSG:4547点击确定生成新的 shp 文件这一步操作完成后你用新文件做面积重算才有意义。注意另存为新 shp 后要重新加载一次图层确保画布使用的是新文件而不是旧文件。QGIS 里很多人转换完发现没变化就是图层列表里还指着旧路径。3.3 定义投影 vs 重投影两个命令别用混用 ArcGIS 时最容易翻车的地方是Define Projection定义投影和Project投影变换两个工具搞混。定义投影的意思是“告诉软件这个数据的坐标系是什么”它不改变坐标数值项目变换则是“把坐标值从一套系统换算到另一套系统”。如果你的数据本身有.prj文件就不要再执行定义投影。执行了会怎样坐标值不变但坐标系标注被改掉图面错位只是时间问题。常见错误操作是这样的打开一份没有.prj的大湾区 shp画布上能看到图形但右下角的坐标显示是未知。此时正确做法是先用定义投影指定为 GCS_WGS_1984再用 Project 工具转换到 CGCS2000。直接跳过第一步用 Project 工具软件会报错或者输出一堆乱码坐标。这个顺序问题我至少见过十次以上。如果你用命令行写批处理PyQGIS 的写法大致是这样# 在 QGIS Python 控制台运行按 EPSG:4547 重投影到新文件 processing.run(native:reprojectlayer, { INPUT: rD:\data\大湾区市界.shp, TARGET_CRS: EPSG:4547, OUTPUT: rD:\data\大湾区市界_4547.shp })参数说明INPUT填原始 shp 的全路径TARGET_CRS填目标坐标系代码OUTPUT是输出路径。这里用的native:reprojectlayer是 QGIS 内置算法不需要额外装插件。处理完后用打开新文件的方式检查看右下角坐标单位从度变成了米说明重投影成功。3.4 重投影后必须做的检查项每次重投影完别急着关软件。我一般会做三层检查范围检查用“图层属性 → 信息 → 范围”和投影前的范围对比经纬度坐标转成投影后数字变大单位从度变成米同时最小值最大值应与原范围在数值上对应。面积抽查用字段计算器算一份面积拿已知的城市面积对比一下误差在 1% 以内说明投影参数合理。当然你得先知道珠海市的大概面积是多少这个可以查到官方数据。叠加检查把重投影后的文件加载到在线底图上叠加看边界与底图影像是否吻合。这一步要多试几个位置比如珠江口、伶仃洋一带的岸线是否对齐不要只看城市中心。这套检查下来大概十分钟但能把坐标系问题彻底清干净。不要相信“在线底图也是 WGS84应该能对得上”这种推断——在线底图服务往往是 Web 墨卡托投影不重投影直接叠加一样飘。4. 避坑专章大湾区 shp 最常见的四个翻车现场4.1 边界和卫星影像对不上整体偏移几百米现象把大湾区 shp 叠加到在线卫星影像底图上整个边界明显整体平移珠江口两岸的岸线与影像差出几百米。原因绝大多数在线底图服务用的是 Web 墨卡托投影EPSG:3857而原始 shp 数据是 WGS84 经纬度EPSG:4326。这两个坐标系虽然基准面接近但投影方式完全不同不转换就直接叠加必然错位。解决打开 QGIS 的图层 CRS 设置确认画布坐标系设为 EPSG:3857然后把图层重投影到 EPSG:3857。如果想让图形和底图同时保持经纬度显示也可以反过来把在线底图临时改到 EPSG:4326但这样做影像会有轻微拉伸。更推荐的做法是保留底图不变把 shp 转成 3857。我在处理这份大湾区数据时遇到这种情况重投影后偏差就消失了不需要手动微调。4.2 打开 shp 后只看到点面去哪了现象把数据拖进 GIS 软件图面显示一堆点状要素没有面。原因shp 文件的主文件*.shp中几何类型Point、Polyline、Polygon与文件中实际存储的几何类型不匹配常见于文件被第三方软件修改过或者原始下载时文件就损坏了。这种损坏通常不报错只有打开后你才发现几何类型是点。解决用要素类转要素类工具ArcGIS 的 Feature Class To Feature Class先把点转成面或者直接用 QGIS 的“修复几何”工具native:fixgeometries把几何类型矫正回来。如果修复无效回头用文本编辑器打开.shp文件头部的几何类型字节确认一下常规做法是用 GDAL 的ogrinfo命令查看几何类型然后决定是修正文件头还是直接找原始压缩包重新解压。这个现象在下载来源混杂的 shp 里不算罕见别费口舌改文件头直接重新下载更省事。4.3 属性表中文乱码现象打开属性表城市名显示成“”“锟斤拷”“鎱”之类的乱码。原因.dbf文件里的字符编码和 GIS 软件默认读取的编码不一致。这份大湾区数据如果含中文属性一般以 UTF-8 写入。打开时软件按系统区域的默认编码GBK 或 GB2312去解结果就是乱码。其实很秒懂就像你拿 UTF-8 的文本用记事本按 ANSI 打开一样。解决在 QGIS 中打开 shp 时弹窗里有一个“编码”选项把它从默认值改为UTF-8再打开。ArcGIS 里则是在 ArcToolbox 中用“创建要素类”并指定编码或者给数据包补一个.cpg文件内容写上UTF-8这两步任意一个都能解决大部分乱码。如果还乱码就是数据本身编码写的不是 UTF-8尝试GBK再开一次。注意乱码出现在字段名还是字段值原因可能不同——字段名乱码是系统编码问题字段值乱码是.dbf编码问题对应处理手段不同。4.4 相邻区县边界重叠或出现缝隙现象两个相邻区县的面压在一起或者中间留出一条空白缝隙。原因shp 里的边界是人工矢量化或从不同来源拼合而来相邻面没有做拓扑一致性处理公共边被画了两次导致重叠或分离。这类问题在区县界这一层最明显市界之间一般还好。解决用 QGIS 的拓扑检查插件Topology Checker跑一遍规则选“必须不重叠must not overlap”和“必须不覆盖must not cover each other”软件会列出所有违规要素。处理方式有两种一是直接手动编辑边界把重叠或缝隙的两边对齐二是用 QGIS 的native:eliminate工具把缝隙填充或把重叠部分融合掉再重建拓扑关系。对于制图用途叠加重叠对出图影响不大但做面积统计就会算重。每次做完拓扑清理记得重新计算面积字段。这份数据因为是社区整理或半自动矢量化多少会有这类小瑕疵使用时保持一个原则统计用拓扑修正后的面制图用修正前的原始样式修正过程可能改变边界的平滑度。5. 格式互转dwg / kml / GeoJSON 与 shp 倒腾的常用路线5.1 dwg 转 shpCAD 地形图怎么进地理信息平台设计师发来一份 DWG 格式的设计方案要叠在大湾区 shp 上看区位关系。DWG 转 shp 是高频需求也是经常翻车的环节。原因很简单CAD 文件里没有坐标系概念你的设计图只是纯粹的二维几何坐标原点通常在项目基点附近跟 GIS 的真实地理坐标毫无关系。常规做法是用 ArcGIS 的CAD to Geodatabase在 ArcToolbox 的 Conversion Tools 里把 DWG 转成要素类再根据图纸标注的经纬度或控制点坐标做空间校正。QGIS 的路径更直接一些图层 → 添加图层 → 添加向量图层直接选 DWG 文件QGIS 会识别出里的点、线、面各自生成一个图层然后右键另存为 shp 就行。重点提醒DWG 里的文字标注和尺寸标注通常会被转成点或注记这些要素会严重干扰你的数据。转之前最好清理掉。还有一点DWG 的图层名往往很乱图层 1、图层 2转入后建议根据图层名重新分类把道路、建筑、水系区分开否则后续在 GIS 里符号化会非常痛苦。这套流程走下来能把 CAD 图变成一套可以用坐标系管理的基础数据之后叠加大湾区边界做分析就顺了。5.2 kml 转 shp谷歌地球标注数据回流 GIS很多人习惯在 Google Earth 或手机地图 App 里先标几个点位导出为 KML再拿回 ArcGIS 做分析。KML 是基于 XML 的描述性格式Google Earth 和多数地图 App 都支持直接打开编辑但它不是原生 GIS 要素格式所以要把 KML 转成 shp。QGIS 直接拖入 KML 文件就能显示右键另存为 shp 即可。ArcGIS 用户则用Conversion Tools → KML to Layer它会自动解析出点、线、面要素。需要注意KML 文件里的坐标系固定是 WGS84 经纬度这是 Google Earth 的硬性标准。转入后你的 shp 也就是 WGS84如果需要 CGCS2000 投影记得再走一遍第 3 章的转换流程。另外 KML 的样式信息颜色图标不会转换进 shp符号化要在 GIS 里重新做一遍不要指望转完还是原来的样式。有一个坑容易被忽略KML 里如果包含 3D 模型或路径动画标准转换工具会忽略这些内容只保留基础的轮廓数据。如果遇到转换后要素数量明显减少检查原始 KML 里是否包含非几何信息。网上经常搜到“kml 转 shp”的工具站其实 QGIS 和 ArcGIS 自带功能已经够用不需要额外下载小工具。5.3 GeoJSON 与 shp 互转前端可视化的数据来回做 Web 可视化的人经常拿到 GeoJSON 文件但在 GIS 里做空间分析时又希望转回 shp。GeoJSON 和 shp 的转换逻辑基本对称QGIS 打开 GeoJSON 后右键导出为 shp或者反过来打开 shp 另存为 GeoJSON。ArcGIS Pro 直接支持 GeoJSON 导入老版 ArcMap 需要装在线地图插件或第三方转换器。如果你只是要一个临时转换不想装软件现在网上有不少“json 转 shp 网站”可以在线完成轻量转换。我的建议是小数据几百个点或几个面用在线工具没问题大数据量就别用网页工具了。在线转换服务通常有文件大小限制而且涉及坐标系处理时不够透明容易丢失.prj信息转出来是“裸数据”。生产环境我一般用 GDAL 的命令行# 把 GeoJSON 转成 shp显式指定坐标系为 EPSG:4326 ogr2ogr -f ESRI Shapefile 大湾区_out.shp 大湾区.geojson -t_srs EPSG:4326 -lco ENCODINGUTF-8参数解释-f ESRI Shapefile指定输出格式-t_srs EPSG:4326把输出坐标系固定为 WGS84避免自动识别出错-lco ENCODINGUTF-8确保中文字段写进.dbf时用 UTF-8 编码后面在 QGIS 里打开不再乱码。这几项是我每次转换必带的基础参数。5.4 shp 转 txt / Excel属性字段的台账化输出有的项目管理平台不收 shp只认 CSV 或 Excel这时得把属性表单独倒出来。ArcGIS 里用“表转 Excel”工具QGIS 里右键图层 → 导出 → 另存为 CSV带几何类型或不带都行。如果你要连空间坐标一起导出QGIS 在导出对话框勾选“GEOMETRYAS_XY”就能把经纬度写到 CSV 里这在做点位采集台账时很常用。这里的一个重要提醒shp 转 txt 或 CSV 后属性里的中文极易乱码尤其是用 Excel 直接打开 CSV 时。Excel 默认按 ANSI 读 CSV而我们的导出按 UTF-8 编码所以打开全是乱码。解决办法是导出的编码选UTF-8然后用“数据 → 从文本/CSV 导入”的方式让 Excel 按 UTF-8 解析或者干脆导成 Excel 文件绕过这个问题。行业里很多人栽在这种细节上数据没错被认知坑了。6. 进阶用法渔网分割与 3dtiles 把边界用出花样6.1 渔网分割把大湾区切成 1km 格网做空间统计很多分析场景需要把大湾区划分成规则网格做统计比如网格化人口密度、POI 热力统计。ArcGIS 工具箱里自带“创建渔网”Create Fishnet工具操作中的关键是把“模板范围”设置为大湾区 shp 的范围图层右键属性可以看到范围值像元宽度和高度按你的业务需求填。此处网格大小我一般用 1000米坐标系必须选投影坐标系用经纬度填网格宽高会得到一堆不规则的度数网格。创建渔网之后用“按位置选择”把大湾区的面要素和渔网要素关联只保留与大湾区相交的格网单元格再对格网字段做面积计算。这一套下来的格网数据可以直接用来承接 POI 汇总或建筑数据聚合做可视化时用格网图层的样式渲染比用多点位图要清晰得多。网格的边界值会对统计分析造成被忽视的影响尽量选整千米倍数后续对接其他数据时逻辑简单。6.2 shp 转 3dtiles把平面边界带进三维场景Web 三维可视化Cesium 为主通常需要把 shp 转为 3dtiles 切片才能高效地在浏览器里加载渲染。常规做法是用数据转换处理的桌面工具输入选择大湾区 arc 的 shp输出格式选 3dtiles。切片的几个参数需要留意几何误差Geometric Error控制 LOD 切换的阈值越小细节越丰富但文件越大纹理压缩格式选 WebP。参数没有绝对标准但可以结合场景设计来选择。转换过程中如果 shp 自带属性字段3dtiles 会把它们保留下来前端可以按属性做分类着色或点击查询。这一点对做“城市级三维仪表盘”很友好。需要提醒的是3dtiles 的坐标基准目前仍以 WGS84 为主若你的 shp 做了 CGCS2000 投影先保留一份 WGS84 版本用于三维转换不要直接拿投影后的数据切。我刚开始转三维时吃过这个亏切完在 Cesium 里甩到了奇怪的位置上排查了一整天发现是坐标系基准不匹配。从那以后我每次做 shp 都要在工程里同时保留“原始 WGS84”和“投影分析版”两个副本分别服务于出图和分析两个场景不再混用。这个习惯为我在后续的数据处理里省下了大量反复转换的时间。希望帮到你。本文还有配套的精品资源点击获取