AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/07/02 18:13
什么是地图投影

地球是一个不规则的椭球体,而屏幕是平面的。地图投影就是将地球曲面上的坐标(经纬度)转换为平面坐标(像素)的数学方法。不同的投影方式会导致面积、形状、距离或方向的不同程度失真。
Web 地图普遍采用的是墨卡托投影(Mercator Projection),它保持了角度和局部形状的正确性(等角投影),适合导航和方向判断,但在高纬度地区面积会严重放大。

百度墨卡托投影

百度地图使用自有的墨卡托投影算法,与国际标准的 EPSG:3857 不同。其特点:

  1. 输入坐标系不同 — 标准 Web 墨卡托投影基于 WGS-84 经纬度,百度墨卡托基于 BD-09 经纬度(已加偏)

  2. 投影参数不同 — 百度使用自定义的椭球参数和投影公式,产出的平面坐标(米制)与 EPSG:3857 的值完全不同

  3. 瓦片编号体系不同 — 百度地图的瓦片原点在经纬度 (0, 0) 处,且 Y 轴方向与标准 TMS/XYZ 不同

坐标值示例

北京天安门

坐标系经度/X纬度/Y

WGS-84

116.3912

39.9075

GCJ-02

116.3974

39.9087

BD-09 (经纬度)

116.4040

39.9150

BD-09 MC (米制)

12958175

4825923

EPSG:3857 (米制)

12956463

4852987

可以看到,BD-09 MC 和 EPSG:3857 虽然都是"米制平面坐标",但由于输入和投影参数不同,数值有明显差异。

在JSAPI 中进行坐标投影

Map 上直接提供了经纬度与墨卡托的互转方法,可参考以下示例代码实现经纬度坐标和投影坐标的互转。

const map = new BMap.Map('container');
// 经纬度 → 百度墨卡托(米制)
const mc = map.lnglatToMercator(116.404, 39.915);
console.log(mc); // [12958175, 4825923]
// 百度墨卡托 → 经纬度
const lnglat = map.mercatorToLnglat(12958175, 4825923);
console.log(lnglat); // [116.404, 39.915]

上一篇

坐标系

下一篇

地图层级
本篇文章对您是否有帮助?