CRS.EPSG3857
概述
CRS.EPSG3857
和CRS.EPSG900913
都是基于Web Mercator 投影(球形墨卡托投影)的坐标系,用于地理信息系统中的投影转换,是互联网地图(如 Google Maps、OpenStreetMap)的事实标准
源码分析
源码实现
CRS.EPSG3857
和CRS.EPSG9000913
的源码实现如下:
export var EPSG3857 = Util.extend({}, Earth, {
code: "EPSG:3857", // 标准编码,表示基于WGS84坐标系下的Web Mercator投影
projection: SphericalMercator, // 使用球形墨卡托投影,简化椭球模型为球体
// 定义坐标变换矩阵,将投影后的平面坐标(米)转换为标准化的像素坐标
transformation: function () {
var scale = 0.5 / (math.PI * SphericalMercator.R);
return toTransformation(scale, 0.5, -scale, 0.5);
},
});
// EPSG900913是EPSG3857的别名,用于向后兼容,已被弃用
export var EPSG900913 = Util.extend({}, EPSG3857, {
code: "EPSG:900913",
});
注意事项
- 坐标翻转 :
Y
轴变换中的负号 (-scale
) 确保地图顶部对应高纬度。 - 兼容性:
EPSG:900913
仅用于兼容旧系统,新项目应使用EPSG:3857
。 - 性能优化:球形模型简化计算,适合高频渲染的在线地图。
总结
CRS.EPSG3857
和CRS.EPSG9000913
都是基于 Web Mercator 投影的标准坐标系,适用于互联网地图的显示和地理信息系统的投影转换。它们简化了投影计算,提供了高精度的地图显示效果,是现代互联网地图服务的标准。
CRS.EPSG4326
概述
CRS.EPSG4326
是一个地理坐标系,基于等距圆柱投影,对应EPSG:4326(WGS84 地理坐标),符合EPSG:4326
标准,适用于全球定位系统(GPS)、导航等需要精确坐标的场景。
源码分析
源码实现
CRS.EPSG4326
的源码实现如下:
export var EPSG4326 = Util.extend({}, Earth, {
code: "EPSG:4326", //标识符,代表WGS84,经纬度直接作为坐标值
projection: LonLat, // 等距圆柱投影,直接映射
// 坐标变换矩阵
transformation: toTransformation(1 / 180, 1, -1 / 180, 0.5),
});
变换矩阵详解
作用:
- X 轴 :将经度
[-180°, 180°]
映射到[0, 2]
(因1/180 \* 180 + 1 = 2
),进一步缩放后适配瓦片坐标。 - Y 轴 :将纬度
[-90°, 90°]
映射到[1, 0]
(翻转方向,确保原点在左上角)。 - 归一化 :最终坐标范围调整为
[0, 1]
,方便瓦片索引计算
EPSG:4326 和 EPSG:3857 对比
特性 | EPSG:4326 | EPSG:3857 (Web Mercator) |
---|---|---|
投影类型 | 等距圆柱投影 | 球形墨卡托投影 |
坐标单位 | 经纬度(度数) | 米(平面坐标) |
高纬度变形 | 无(保留真实比例) | 严重拉伸(两极区域) |
适用场景 | GIS 数据叠加、科学可视化 | 在线地图(Google Maps 等) |
瓦片标准 | TMS | XYZ(Slippy 地图) |
总结
CRS.EPSG4326
是一个精确、适合全球定位系统的地理坐标系,适用于需要精确坐标的应用。
CRS.EPSG3395
概述
CRS.EPSG3395
是一个投影坐标系,基于椭球体墨卡托投影,符合EPSG:3395
标准,适用于航海、航空等需要高精度投影的场景。
源码分析
源码实现
CRS.EPSG3395
的源码实现如下:
export var EPSG3395 = Util.extend({}, Earth, {
code: "EPSG:3395", // 坐标系标识符,遵循EPSG标准
projection: Mercator, // 使用椭球体墨卡托投影,考虑了地球扁率
// 定义从平面坐标到地图像素坐标的线性变换矩阵
transformation: (function () {
var scale = 0.5 / (Math.PI * Mercator.R);
return toTransformation(scale, 0.5, -scale, 0.5);
})(),
});
注意事项
- 精度匹配:确保瓦片服务与
CRS
匹配,否则显示错位。 - 坐标循环:默认不循环经度(
wrapLng: null
),需手动处理地图边缘。 - 性能优化:椭球体投影计算复杂,高频操作时需关注性能
总结
CRS.EPSG3395
是一个高精度、适合航海、航空等场景的投影坐标系,适用于需要精确显示的地图应用。