关于前端: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服务

总结

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

  • 原图(WGS84坐标系)

  • 墨卡托投影(Mercator)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理