· 4 min read

联合国刚刚认可了地球平等,这就是Mercator对非洲的实际作用

2026年9月4日,联合国大会鼓励世界从Mercator转向地球平等投影. 利用天然地球边界和球状地球模型,非洲大约为13.9×格陵兰. 我们的Mercator地区占地约0.95×格陵兰.

发生了什么事

根据[联合报 (https://apnews.com/article/b138fe9f76d7ff54cc7d5c9b1ddfa983),联合国大会于2026年9月4日星期五通过了一项决议,鼓励各国政府和机构采用**地球平面投影**以取代Mercator. 它由多哥提出,并得到非洲联盟的支持;164个成员国投了赞成票,美国投了反对票,有六个成员国—— 塞尔维亚、爱沙尼亚、格鲁吉亚、立陶宛、摩尔多瓦和乌克兰 - 弃权.

决议没有禁止任何东西. 它鼓励.

这一区别比听起来更重要,因为有趣的问题不是政治问题. 你所看到的地图究竟有什么错? 这是一个可以衡量的数量,没有人需要投票解决它.

所以我们测量了它.

计量

我们把同一个国家 几何 我们的地图渲染器船(world-50m,自然地球数据在1:50m), 和它使用的投影库(d3-geo). 我们为每个国家计算了两样东西:

  • 其模型球区 - 其数据集几何学的固角乘以地球平均半径平方. 这避免了投影扭曲,但仍是一种基于泛边界和球状地球模型的估计,而不是精确的勘测区域.
  • 预计面积 - geoPath().area()计算出的平面多边形区域,每个投影都安装在1600x900相同的画布上.

正常区域比率 是一个国家占所有国家特征的总预测区域的份额,除以其在总的球状区域中的份额. 分母包括所有特征,包括南极洲;不包括海洋区域. 这些分数取决于功能设定和投影剪辑,而不是Mercator的本地尺度因素. 等效地球的产量约为×1.00,但须遵守数值精确度和剪切率. 预测的方形像素描述几何区域,而不是包括中风或抗异形在内的光栅像素数.

看见了

在两个预测之间单击. 无论是哪种方式,这都是同一个世界地图—— 不变 海岸线,同一框架—— 所以改变的一切就是投影.

Interactive demo — open in editor pp:PinePaper

看格陵兰. 在默卡托岛上,它比整个城市略大 非洲;在平等地球上,非洲占格陵兰面积的近14倍. 没有任何东西是手工的: 这是world-110m—— 同样的自然地球几何 我们的地图制造船 通过d3-geo,两个预测都安装在一个相同的框架上,以及 下方打印的比例是 geoPath().area() 精确测量形状 你在看吗.

该演示使用coarser 1:1.1亿几何;下表使用1:5亿几何. 他们的海岸线和选定的特征不同,因此显示的比例可以略有不同.

部件是普通的 PinePaper 场景: 按钮为 on_click_fire 关系和互换为on_event_set_visibility. 打开编辑器 它是你的拉开.

非洲反对格陵兰

模拟球面区域 从Mercator上绘制 绘制于地球平等
非洲(56个数据集特征) 29.99M km² 16,907 px² 64,544 px²
格陵兰 2.15M km² 17,852 px² 4,638 px²
比率 13.9× 0.95× 13.9×

利用这些边界和球状地球模型,非洲面积约为13.9倍 格陵兰岛. 在我们的Mercator制造中,它占用了大约0.95倍 格陵兰的预计面积大约减少了5%. 地球平等保持了大约13.9对1的关系.

非洲选择包括56个自然地球特征:55个ISO编码特征,包括西撒哈拉,加上分别代表索马里兰. 索马里和索马里兰在地理上合计;它们单独的数据集条目并不意味着承认立场. 这一特征计数与非洲联盟55个成员计数不同. 完整的选题列于以下剧本中.

每个国家,同样的考验

国家 马卡托 平等的地球
格陵兰 ×3.91 ×1.00
挪威 ×2.14 ×1.00
加拿大 ×1.23 ×1.00
俄罗斯 ×1.17 ×1.00
瑞典 ×1.16 ×1.00
印度 ×0.28 ×1.00
尼日利亚 ×0.25 ×1.00
联合国 ×0.25 ×1.00
DR 刚果 ×0.24 ×1.00
肯尼亚 ×0.24 ×1.00
印度尼西亚 ×0.24 ×1.00

纬度驱使Mercator的局部区域扭曲. 根据这里使用的正常化,所列热带国家占其地图绘制土地比例的大约四分之一. 印度、巴西和印度尼西亚受到的影响与尼日利亚和肯尼亚类似,尽管它们的得分不同. 格陵兰的高纬度使它成为一个特别引人注目的例子.

地球子弹均匀到x1.00 所有11. 未四舍五入的结果从大约0.9989到00004不等:数学投影保留了相对的区域,而D3的抽样多边形渲染则引入了小的数值差异.

为什么梅卡托这样做

Mercator是形式:它保留了角度. 一条恒定的正中轴线 一条直线. 最早于1569年提出,因此仍然广泛用于海图. [诺阿解释这个导航属性] (https://www.nauticalcharts.noaa.gov/learn/nautical-cartography.html).

对于带有赤道单位尺度的球形Mercator,保存角度需要花费你的区域. 为了在远离赤道时保持一个小区域的形状正确,地图必须向东-西延伸一个系数sec(%)- 1/ 纬度的曲线 - 然后通过同样的因素向南北延伸,使角度保持不变. 因此,面积为sec2(φ). 60°,即4×. 在75°,大约是15×. 比例尺在极点上存在差异,在标准Mercator地图上的有限坐标上无法表示.

这件事情没有办法解决 Mercator Mercator的死因. 在数学上,一个领域不相容:任何投影都不能同时存在. 每一个世界地图投影都涉及选择要保存的属性.

对于基于承载的导航,Mercator的角度和rhumb-line属性是有用的. 对于打算比较区域——教室、新闻室或数据可视化——的世界地图来说,一个等域投影更合适.

地球是怎样的

平等地球是由Bojan Šavrič,Tom Patterson和Bernhard Jenny在2018年8月7日在线发表的一篇论文中介绍的,后来出现在该期刊的2019卷中. 建筑是平等的领域. 其设计者寻找了一种视觉上讨人喜欢的替代品,取代盖尔-彼得斯(Gall-Peters),它也保留了面积,但延长了热带形状. 这种审美偏好是一种设计判断,而不是对所有较早的等域预测的客观排名. [设计师在这里描述他们的目标] (https://www.equal-earth.com/equal-earth-projection.html).

平等的地球使大陆的形状清晰可见, 轻轻地弯曲了线粒体和一个水平赤道, 并且没有将柱子折叠成一个点. 从精神上讲,这与罗宾逊的预测很接近—— 不是平等领域—— 但地产是准确的.

等位地球扭曲形状,特别是边缘附近,不适合常规承载导航. 没有平坦的世界地图可以保存每一个几何属性. 当目的是比较相对区域时,平等地球是有用的.

用这个

PinePaper在其地图渲染器中支持equalEarth. 自然地球仍然是单独的折中投影;它没有保留面积.

// Equal Earth world map
await PinePaper.mapSystem.loadMap('world', {
  projection: 'equalEarth',
  styles: { fill: '#1e3a5f', stroke: '#0f172a', strokeWidth: 0.5 }
});

// Illustrative values only. Equal Earth preserves relative region areas;
// meaningful choropleths also require appropriate data and classification.
PinePaper.mapSystem.applyDataColors({
  Nigeria: 223, Ethiopia: 126, Egypt: 114, 'Dem. Rep. Congo': 102
}, { colorScale: ['#fff7ec', '#7f2704'] });

在编辑器中,它位于地图面板的投影下降中,在列表中位居第二,标记*(等域). 要运行上面的片段,请打开*Code Console(标题中的</>按钮)并粘贴它—— 地图作为普通、可编辑的项目出现在画布上.

Mercator也提供. 它的投影特性适合轴承海图,但单选它并不能使地图适合操作导航.

重写这个

用18号或以后的节点运行下面的完整脚本. 在工作目录中安装被绑定的依赖性 :

npm install --save-exact d3-geo@3.1.1 topojson-client@3.1.0

以下保存为 measure-equal-earth.mjs 并运行 node measure-equal-earth.mjs . 它下载 world-atlas@2.0.2/countries-50m.json;或者通过本地副本作为第一个参数. D3默认的适应采样精度和Mercator剪辑被保留下来. 这两种预测都安装在1600×900帧内.

import { readFileSync } from 'node:fs';
import * as topojson from 'topojson-client';
import * as d3 from 'd3-geo';

const url = 'https://cdn.jsdelivr.net/npm/world-atlas@2.0.2/countries-50m.json';
let topo;
if (process.argv[2]) {
  topo = JSON.parse(readFileSync(process.argv[2], 'utf8'));
} else {
  const response = await fetch(url);
  if (!response.ok) throw new Error(`Geometry download failed: ${response.status}`);
  topo = await response.json();
}
const fc = topojson.feature(topo, topo.objects.countries);
// 55 ISO numeric codes, including Western Sahara; Somaliland is separate.
const africaIds = new Set(`012 024 204 072 854 108 120 132 140 148 174
178 180 262 818 226 232 748 231 266 270 288 324 624 384 404 426 430
434 450 454 466 478 480 504 508 516 562 566 646 678 686 690 694 706
710 728 729 834 768 788 800 894 716 732`.split(/\s+/));
const africa = {
  type: 'FeatureCollection',
  features: fc.features.filter(f => africaIds.has(f.id) || f.properties.name === 'Somaliland')
};
if (africa.features.length !== 56) throw new Error('Unexpected Africa feature selection');
const country = name => {
  const f = fc.features.find(f => f.properties.name === name);
  if (!f) throw new Error(`Missing feature: ${name}`);
  return f;
};
const greenland = country('Greenland');
const sphericalKm2 = f => d3.geoArea(f) * 6371.0088 ** 2;
const projections = [d3.geoMercator(), d3.geoEqualEarth()]
  .map(p => p.fitSize([1600, 900], { type: 'Sphere' }));
const drawn = (f, p) => d3.geoPath(p).area(f);
const sum = fn => fc.features.reduce((total, f) => total + fn(f), 0);
const worldSpherical = sum(sphericalKm2);
const worldDrawn = projections.map(p => sum(f => drawn(f, p)));
console.log('Africa features:', africa.features.map(f => f.properties.name).sort());
console.table([['Africa', africa], ['Greenland', greenland]].map(([region, f]) => ({
  region, sphericalKm2: sphericalKm2(f),
  mercatorPx2: drawn(f, projections[0]), equalEarthPx2: drawn(f, projections[1])
})));
const ratio = sphericalKm2(africa) / sphericalKm2(greenland);
const mercatorRatio = drawn(africa, projections[0]) / drawn(greenland, projections[0]);
console.log({ sphericalRatio: ratio, mercatorRatio,
  equalEarthRatio: drawn(africa, projections[1]) / drawn(greenland, projections[1]),
  comparisonDistortion: ratio / mercatorRatio });
console.table(['Greenland', 'Norway', 'Canada', 'Russia', 'Sweden', 'India',
  'Nigeria', 'Brazil', 'Dem. Rep. Congo', 'Kenya', 'Indonesia'].map(name => {
  const f = country(name);
  const scores = projections.map((p, i) =>
    (drawn(f, p) / worldDrawn[i]) / (sphericalKm2(f) / worldSpherical));
  return { country: name, mercator: scores[0], equalEarth: scores[1] };
}));

非圆形的非洲与绿地之比大约为13.917,Mercator为0.947:这一比较大约为14.7倍. 在划分前将其四舍五入至13.9和0.9,将令人误解地表明有15倍以上.

资料来源

Ready to create?

Start making animated GIFs, videos, and graphics — free, no signup.

Open PinePaper Editor