【openlayers】基本概念

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服务

【openlayers】基本概念_第1张图片

总结

高德地图采用了Web Mercator(几乎市面上所有地图都是如此),所以openlayers的projecttion的默认值为“EPSG:3857”,如果手动设置为“EPSG:4326”,看起来会变形失真(见下图)。同时火星坐标系是基于84坐标系的基础上偏移计算得到的,只要投影方式一致,且点位数据进行坐标系转换,即可正确显示地图上。

  • 原图(WGS84坐标系)

【openlayers】基本概念_第2张图片

  • 墨卡托投影(Mercator)

【openlayers】基本概念_第3张图片

你可能感兴趣的:(【openlayers】基本概念)