地图开发基础概念——地图服务类型、坐标系与 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 = ;
b = ;
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)
};
}


