1. 天文坐标系
常见的为以下 3 种:
- WGS84 坐标系
- GCJ02(火星)坐标系
- BD09(百度)坐标系
国内基本上应用前面 2 者。
2. 投影坐标系
投影坐标系应用基于 X,Y 值的坐标零碎来形容地球上某个点所处的地位。
投影坐标系由 以下参数确定:
- 天文坐标系(如 WGS84)
- 投影办法(如 Mercator 投影)
2.1 常见的投影坐标系
- EPSG:4326(经纬度投影)
- EPSG:3857(球面墨卡托投影)
看材料的时候发现 EPSG:4326 是天文坐标系,而 EPSG:3857 是投影坐标系, 这让我产生困惑,为什么 openlayer 中 projection 能设置EPSG:4346。
defs('EPSG:4326', "+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees");
defs('EPSG:3857', "+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");
通过 proj4js 源码能够看出,都是基于 84 坐标系,然而 proj 的不雷同。我的了解是在同一个坐标系下(WGS 84)采纳了不同的投影形式。
例如,广州天地图 API 服务提供了 2 种投影形式的 API 服务
总结
高德地图采纳了 Web Mercator(简直市面上所有地图都是如此),所以 openlayers 的 projecttion 的默认值为“EPSG:3857”,如果手动设置为“EPSG:4326”, 看起来会变形失真(见下图)。同时火星坐标系是基于 84 坐标系的根底上偏移计算失去的,只有投影形式统一,且点位数据进行坐标系转换,即可正确显示地图上。
- 原图(WGS84 坐标系)
- 墨卡托投影(Mercator)