世界地图shp中国居中投影转换:QGIS、ArcGIS与GDAL实战指南
2026/9/7 12:39:39 网站建设 项目流程

简介:面向地理信息制图与期刊论文投稿人员的世界地图SHP底图资源,以国家测绘地理信息局标准地图(GS(2016)1666号)为参考绘制,提供2019版详细与简单两套版本:简单版含国境线与城市,详细版另有大洲、行政区划、湖泊、河流、经纬线等图层,可按需删减。配套转换方法可帮助将默认底图调整为以中国为中心的世界地图,满足国内期刊图形审查要求,已支撑两篇C刊论文顺利过审。压缩包共177个文件、约60.75MB,以shp/shx/dbf地理要素文件为主(分别对应几何图形、空间索引与属性表),配以prj投影定义、xml元数据及mxd制图文档等,结构清晰便于ArcGIS直接调用。目前已有7323人学习下载,适合地理学、经济学等需绘制规范世界地图的科研人员与制图人员使用。 搞GIS的同行应该都遇到过这个需求:拿到一份世界地图shp,默认是按本初子午线居中显示的,中国被甩在地图最右侧,做全球业务可视化时怎么看怎么别扭。想让中国出现在画面中央,说白了就是做一次投影转换,把中央经线改到东经150度附近。这篇文章我会从投影原理讲起,把用QGIS、ArcGIS、GDAL命令行三种方式把世界地图shp转成中国中心投影的完整流程都过一遍,数据源、参数坑和常见问题也会一起说清楚,适合经常处理全球数据的GIS工程师、数据分析师和地图可视化开发参考。

1. 需求拆解:世界地图不居中,问题出在哪儿

1.1 中央经线决定了地图“从哪里切开”

在说怎么改之前,先讲明白投影转换的核心概念——中央经线。地球是个椭球体,要把三维球面画到二维平面,必然经历一个“摊平”的过程,这个过程就是投影。而投影里有一条非常关键的中轴线,叫做中央经线(Central Meridian),它就是球面被“剪开”的那条线。

默认从Natural Earth、GADM这些网站下载的世界地图,数据本身大多是WGS84地理坐标系,也就是直接用经纬度存储,显示出来就是0度经线在正中间、西经和东经对称排列的样子。这样一来,中国位于东经73度到135度之间,自然就跑到地图的右边缘去了。如果你把这个数据直接扔进前端地图库或者制图软件,中国被切在两端的现象就会一直存在。

解决办法不是改数据本身,而是换一个投影坐标系,把中央经线设在中国所在的经度附近。比如设成东经150度,投影后中国就会位于地图中央略偏左的位置,视觉上非常舒服。反过来,如果你想要美洲居中,就把中央经线设置成西经90度左右,道理完全一样。

1.2 为什么不是单纯“平移地图”就能解决

有人会问:我不换投影,直接在地图上把中国区拖到中间位置,行不行?在大多数制图软件里,你能移动的是“视图范围”而不是“数据坐标”。一旦放大缩小或重新设置比例尺,数据还是会按照原始坐标显示,中国照样跑到边上。尤其是导出shp给下游系统用的时候,坐标值依然是原始的经纬度平面坐标,没有从根本上解决“中国居中”的问题。

真正靠谱的做法,是把shp本身的投影坐标系换掉。这样不只是显示层面变了,数据的坐标值也会跟着变成以米为单位的新坐标系坐标。无论你怎么缩放、怎么导入其他软件,中国都是在画面中央的,这是实质性的转换,和临时拖动视图是两码事。

2. 数据准备:世界地图shp去哪里下载

2.1 三个靠谱数据源推荐

做中国中心的世界地图,首先得有一份完整的全球矢量数据。我平时用得最多的是下面这三个来源:

数据源特点适用场景
Natural Earth免费开源,提供110m、50m、10m三档分辨率,有countries、land、populated places等图层绝大多数全球地图可视化需求,首选
阿里云DataV地理小工具国内访问快,有中国和世界地图JSON,部分场景可导出shp需要快速拿中国地图做验证场景
GADM提供全球行政边界,精度细到省/州级别需要做全球行政区划分析时

Natural Earth是最推荐的,它本身就是为制图设计的,数据质量稳定、字段规范、坐标系统一是WGS84,而且完全免费,不需要注册账号,直接去官网下载。它提供的ne_110m_admin_0_countries.shp这个图层,做全球国家底图足够了;如果要做得更精细,可以选50m分辨率的版本。

2.2 拿到数据后的检查习惯

数据下载完别急着操作,先做两步检查。第一步,在GIS软件里加载图层后,查看图层属性里的坐标系信息,确认是WGS84(EPSG:4326)还是其他坐标系。第二步,打开属性表看一眼国家字段是不是完整的,确认中国、俄罗斯、美国这些关键国家都有几何数据。

这里多说一句,很多新手会在网上搜“区域边界图shp数据从哪下载”,然后下到一堆乱七八糟的Source,坐标对不上、属性字段乱码的问题层出不穷。我的建议是优先认准Natural Earth这种正规免费源,它的属性表字段是标准化的,NAME字段可以直接用来做国家标注和图例,省去大量清洗时间。

3. 核心实操:QGIS三分钟完成中国居中投影转换

3.1 自定义中国中心坐标参考系

QGIS是免费开源的,功能完全不输商业软件,而且做投影转换特别顺手。第一步,打开QGIS,加载你下载的世界地图shp。第二步,点击顶部菜单栏的“设置” -> “自定义坐标参考系”,进入自定义CRS面板,点击左下角的绿色加号新建一个。

这里需要手动输入PROJ字符串。中国中心世界地图常用的投影方案是Robinson投影,中央经线设置在东经150度,参数如下:

+proj=robin +lon_0=150 +datum=WGS84 +units=m +no_defs

各参数含义拆解一下:+proj=robin表示使用Robinson投影,这是一种全球制图中非常好用的伪圆柱投影,视觉平衡感好;+lon_0=150就是中央经线在东经150度,这是中国居中地图最关键的参数;+datum=WGS84指定基准面;+units=m表示坐标单位为米。名称可以填“World_China_Center_Robinson”,方便以后复用。填写完成后点击保存,这个自定义坐标系就会出现在坐标系列表里。

3.2 重投影导出与即时预览验证

坐标系定义好之后,接下来做重投影。在QGIS中右键点击世界地图图层,选择“导出” -> “要素另存为”,在弹窗的“文件名”处选择保存位置,然后在“CRS”下拉框里找到你刚定义的自定义坐标系,点击确定,一份中国中心的投影shp就生成好了。

如果只是想先看看效果,不想马上导出文件,也可以在图层列表右键 -> “图层属性” -> “源”里直接修改图层CRS,或者在底部状态栏点击当前坐标,把工程CRS切换为刚定义的中国中心坐标系。切换后地图显示会立刻变成中国居中,但注意这只是视图层面的临时变换,数据本身还是原始坐标系,适合用来快速比较效果、调整参数,确定没问题后再用“另存为”的方式做永久转换。

4. ArcGIS用户操作路径:Project工具与自定义投影坐标

4.1 ArcMap/ArcGIS Pro的投影步骤

用ArcGIS的话,思路和QGIS完全一致,只是入口不同。打开ArcMap或Pro,加载世界地图shp后,打开ArcToolbox,依次找到“数据管理工具” -> “投影和变换” -> “要素” -> “投影”工具。这里要注意,如果源数据是地理坐标系,建议直接用“投影”工具;如果源数据已经是投影坐标系,需要用“栅格投影”或先做一次投影再导入,保持流程清晰。

在“投影”工具对话框里,输入要素选择世界地图图层,输出要素类设置保存路径,最关键的是“输出坐标系”。点击旁边的小图标,选择“新建” -> “投影坐标系”,然后在“名称”里填一个你自己认识的名字,在“投影”下拉框选Robinson,在“中央经线”参数里填150,注意单位是十进制度数。设置完成后一路点确定,系统会自动跑完重投影,生成一个新图层。

4.2 ArcGIS自定义坐标系容易踩的坑

ArcGIS和QGIS的自定义坐标系界面虽然不同,但原理一样,都是要把PROJ字符串转换成界面上的参数选项。这里有一个非常容易踩的坑:Robinson投影在ArcGIS里属于“投影坐标系”而非“地理坐标系”,很多人在新建坐标系时选错了大类,结果生成的坐标系完全不能用。

另一个坑是中央经线参数的位置。在ArcGIS自定义投影坐标系的界面里,中央经线的中文翻译可能显示为“中央经线值”或“Longitude_Of_Center”,不同版本措辞不一样,但取值范围都是-180到180之间的十进制经度值。填入150之后,确定新坐标系会出现在列表里,你会看到坐标系名称后面带了一个自定义的标记,说明创建成功。再回到Project工具里选它,点击确定,等待处理完成后打开生成图层的属性,坐标系一栏会显示Robinson投影信息,坐标值也会变成以米为单位的投影坐标。

5. 进阶玩法:GDAL脚本与Python批量处理

5.1 ogr2ogr一行命令解决转换

如果只是偶尔转换一两个文件,用QGIS或ArcGIS的界面操作就够了。但如果你要定期更新数据,或者手里有几十上百个shp图层全部要转成中国中心坐标系,命令行工具才是效率之王。GDAL是一套开源的地理数据转换库,安装好之后,在命令行里执行下面的命令就能完成整个转换:

ogr2ogr -t_srs "+proj=robin +lon_0=150 +datum=WGS84 +units=m +no_defs" world_china_center.shp world.shp

命令前半部分是输出文件名,后半部分是输入文件名。-t_srs参数指定目标坐标系,后面跟的就是完整PROJ字符串。跑完这条命令,world_china_center.shp就是中国中心的投影文件,可以直接加载到任意GIS软件里用。这个方法的优势非常明显:没有图形界面拖拽卡顿的问题,脚本可以反复执行,放在批处理任务或定时任务里都很方便。

5.2 用geopandas实现组合转换与属性保留

除了命令行,用Python配合geopandas库也能实现同样的效果,而且写起来更灵活,方便和数据处理流程整合。下面是一段可以直接运行的代码:

import geopandas as gpd # 读取原始shp gdf = gpd.read_file('world.shp') # 定义中国中心Robinson投影 crs_china_center = '+proj=robin +lon_0=150 +datum=WGS84 +units=m +no_defs' # 执行投影转换 gdf_china = gdf.to_crs(crs_china_center) # 导出新的shp gdf_china.to_file('world_china_center.shp', encoding='utf-8')

这段代码先读取原始shp文件,然后用to_crs方法把数据转换到自定义的投影坐标系,最后导出为新文件。实际工作中,你会发现geopandas转换时会把属性表里的字段全部保留下来,不会出现字段丢失或乱码的问题,这一点在批量处理多个图层时非常省心。

需要提醒的是,如果你的源数据特别大,比如50m分辨率的全球数据有几十万个面要素,geopandas处理速度会明显下降。这种情况建议优先用ogr2ogr命令,它是C++底层实现,速度要快得多;或者你也可以先用QGIS按范围裁剪掉不需要的区域,减小数据量再处理。

6. 常见问题排查与避坑实录

6.1 投影后国家“撕裂”或位置错乱

这是做中国中心世界地图最常遇到的问题。把中央经线从0度改到150度,相当于切开了地球的另一面,原本靠近180度经线的区域(比如俄罗斯东部、新西兰、斐济这些国家)可能会被拉伸到地图两侧,看起来像是被“撕裂”了一样。

这个现象在Robinson投影下通常不会特别严重,但如果你用的是等距圆柱投影,拉伸感就会非常明显。处理方法有两种:一种是把投影方案换成Robinson或Winkel Tripel这类对高纬度地区扭曲较小的投影;另一种是接受一定程度的高纬度拉伸,毕竟全球地图投影本质上是取舍问题,没有哪种投影是完全不变形的。如果你对精度有硬性要求,可以考虑用ArcGIS或QGIS自带的“按范围切割”工具先把跨180度经线的国家切开处理。

6.2 转换后坐标值变得巨大无比

投影转换完成后,你会发现新shp的属性表里,坐标值从原来的一百多度变成了一千多万米,或者变成了一串看起来很奇怪的大数字。这完全正常,因为投影坐标系的单位是米,坐标原点位于中央经线和赤道的交点,所以经度方向上一千五百万米左右的距离是很自然的结果。

很多新手看到坐标数值突变,以为是转换出错了,其实只要地图图形显示正确、相对位置关系没乱,数据就是可用的。唯一需要注意的是,在前端地图库展示时,如果底图图层用的是Web墨卡托投影(EPSG:3857),直接叠加投影后的shp会显示不出来,因为坐标系不匹配。解决方案是前端把shp先转成GeoJSON,或者用地图库自带的投影参数做适配。

6.3 样式丢失与图层叠置顺序问题

重投影后生成的是一个全新的shp文件,你在原图层上做的样式设置(比如国家填充色、边界线宽)都不会自动带到新图层。这不是软件的bug,而是shp格式本身只存储几何和属性,不存储样式。转换后你需要在新图层上重新配置一次样式,或者把原图层的样式保存为QLR文件,再加载到新图层上。

另外一个容易忽略的问题是,如果你的世界地图不是单一图层,而是分成陆地、国家边界、河流、首都点等多个图层,转换时要全部选择,保持它们使用同一个投影坐标系。如果有图层遗漏,叠加时就会出现陆地跑到一边、边界线跑到另一边的情况,相当尴尬。我实际操作时习惯把这些图层统一放到一个文件夹里,然后用命令行循环处理,一次性把整个文件夹都转完。

6.4 临时查看效果却不改数据的场景

有些时候你只是想快速看一下中国中心的效果,并不想生成一个新的shp作用于下游。这种情况不用做重投影,直接在QGIS底部状态栏切换工程CRS,或者在ArcGIS里右键数据框属性 -> 坐标系 -> 选择自定义的中国中心坐标系即可。这种即时投影的方式纯粹影响显示效果,原始shp文件不会有任何变化,非常适合快速预览不同中央经线参数的效果差异。

我个人的经验是,用这种预览方式先试几个不同的中央经线值,比如140度、150度、155度,放大缩小看看中国的位置哪个最舒服,确认参数后再用重投影工具做正式转换,这样能少走不少弯路。

最后再分享两个制图细节

第一个细节是关于标注方向。中国中心的Robinson投影下,地图边缘的高纬度地区会出现明显的角度变形,如果你在图上标国名,靠近两端的文字会随着变形一起倾斜,看起来不太协调。解决思路是在制图阶段关闭掉自动标注,手动调整关键国家的标注位置,或者把标注转成注记要素再逐个人工微调,细节上看会专业很多。

第二个细节是把中央经线设成150还是155,取决于你出图时中国放在什么相对位置。如果中国要放在版面正中,建议用155;如果中国偏左、太平洋留出来放其他内容,150会更好。我在做全球业务布局图的时候,通常会用150,因为右侧留出来的空间可以放数据说明、比例尺和图例,版面利用率更高。这些参数没有绝对的对错,多试几次形成自己的习惯就好了。

本文还有配套的精品资源,点击获取

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

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

立即咨询