地图开发基础概念——地图服务类型、坐标系与 SDK 简介
学习目标
- 理解地图服务的基本类型及其应用场景
- 掌握 WGS84、GCJ-02、BD09 三大坐标系的区别与转换原理
- 熟悉主流地图 SDK 的核心功能与适用场景
- 构建对地图开发的整体认知框架
引言:地图不是纸,是数据!
你以为地图只是一张平面图?现代前端地图开发本质上是对空间数据的可视化与交互处理。它融合了地理信息系统(GIS)、计算机图形学、前端工程化等多个领域的知识。
有人问我为啥地图开发这么难?其实是因为你不仅要会前端,还得懂地球科学。当然也没那么玄乎,咱们一步步拆解就明白了。
一、地图服务类型详解
1.1 矢量地图(Vector Map)
矢量地图是由数学公式定义的几何对象组成(点、线、面),具有以下特点:
| 特性 | 描述 |
|---|---|
| 可缩放性 | 无限放大不失真 |
| 数据体积小 | 相比位图更轻量 |
| 样式可定制 | 可动态修改颜色、字体等 |
| 渲染性能高 | GPU 加速友好 |
典型代表:Google Maps(新版)、Mapbox GL JS。
1.2 卫星图(Satellite Map)
卫星图是通过遥感技术拍摄的真实地表图像:
- 优点:真实还原地貌细节(山川、建筑)
- 缺点:数据体积大、加载慢、无法交互修改样式
典型代表:Google Earth、高德卫星图层。
1.3 地形图(Terrain Map)
地形图强调海拔高度和坡度变化,常用于户外导航、地质勘探:
- 关键技术:数字高程模型(DEM)
- 视觉表现:等高线 + 伪三维渲染
典型代表:Mapbox Terrain、百度地形图。
二、坐标系统大乱斗:WGS84 vs GCJ-02 vs BD09
为什么我在高德上标注的位置,在百度地图上偏了 500 米?这就是坐标系惹的祸!
2.1 WGS84:国际通用标准
- 全称:World Geodetic System 1984
- 应用范围:GPS 设备、国际航空航海
- 特点:全球统一基准,精度最高
算法公式(简化版):
// WGS84 经纬度转笛卡尔坐标(ECEF)
function wgs84ToEcef(lat, lon, alt = 0) {
const a = 6378137; // 长半轴
const b = 6356752.3142; // 短半轴
const e2 = (a * a - b * b) / (a * a);
N = a / .( - e2 * .(lat) ** );
{
: (N + alt) * .(lat) * .(lon),
: (N + alt) * .(lat) * .(lon),
: ((b * b) / (a * a) * N + alt) * .(lat)
};
}


