• Ajax
  • Ant design
  • Axios-Fetch
  • Avue
  • Browser
  • Canvas
  • CSS
  • Dos-bat
  • Dva
  • Dedecms
  • Echart
  • ElementUI
  • Editors
  • Git
  • GeoServer
  • GIS
  • H5
  • Jquery
  • Java安卓
  • Json
  • Javascript
  • Leaflet
  • Linux
  • Life-Info
  • Mock
  • MongoDB
  • Network
  • NodeJS
  • NPM
  • React
  • 设计运营
  • SEO
  • SVG
  • TypeScript
  • Tools
  • umi
  • uni-APP
  • Vant
  • Vue
  • Windows
  • webpack
  • 位置:OC中文网 > OpenLayers >

    OpenLayers 3857坐标系和4326坐标系

    来源:openlayers-cesium.com 时间:02-23

    EPSG:4326 (WGS84)

    世界大地测量系统1984 (World Geodetic System of 1984) 是 GPS 用来描述地球上位置的地理学坐标系统(三维)。WGS84 通常使用 GeoJSON 作为坐标系统的单位,GeoJSON 中使用数字作为经度和纬度的单位。大部分时候,当你描述一个经纬度坐标的时候,它就是基于 EPSG:4326 坐标系统的。这也是我们在 Mapbox 中储存数据的方式。

    我们没有办法在二位平面上展示 WGS84 坐标系统,所以大部分的软件在展现这种坐标的时候都会使用一个叫做 equirectangular (EPSG:54001)的投影(即直接使用经纬度单位)
    Equirectangular projection(ERP)是一种简单的投影方式,将经线映射为恒定间距的垂直线,将纬线映射为恒定间距的水平线。这种投影方式映射关系简单,但既不是等面积的也不是保角的,引入了相当大的失真。

    EPSG: 3857 (Pseudo-Mercator)

    Pseudo-Mercator 投影系统将 WGS84 坐标系统投影在平面上(这个投影规则也被称之为球面墨卡托或者 web 墨卡托)。但是这个投影系统并不是包含地球上所有的位置,北纬和南纬的85.06度以上的地区不会展示。这个投影首次是被使用在 Google 地图上,加上几乎所有的 Web 地图,但是有趣的一点是,这些投影(EPSG:3857)内部都是使用的 WGS84 坐标系统 -- 即使用的 WGS84 椭球体构建,但是将它们(EPSG:3857)的坐标是投射在一个球面上。

    通过这个投影规则可以投射出的正方形的地图,但是如果想将两个不同的参考椭球体投影在同一个投影坐标系上是不对的,这就表示在软件上必须展示是动态可变的。当在软件上是可变的,那我们在软件中就不能对一个位置得出稳定的坐标。这些意味着 EPSG:3857 对于计算机而言是一个非常好的用来展示的坐标系统,但是不是一个稳定的可以用来分析存储数据的坐标系统。(这也是为什么 mapBox 在存储数据的时候使用的是 EPSG: 4326 但是展示的时候使用 EPSG:3857)。

     

    在 openlayers 中默认的坐标就是google的摩卡托坐标,也就是我们经常看到的 EPSG:3857 坐标系。

    EPSG:3857 的数据一般是这种的。[12914838.35,4814529.9],看上去相对数值较大。不利于存储,比较占内存。

    4326 WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块)

    EPSG:4326 的数据一般是这种的。[22.37,114.05]。利于存储,可读性高

    所以我们常常看到和用到的坐标系数据往往不是墨卡托坐标,而是EPSG:4326坐标系下的坐标数据。因为易读和存储小。

    OpenLayers坐标转换相关函数

    import { fromLonLat, toLonLat, transform } from "ol/proj";

    fromLonLat(coordinate, opt_projection):一般将4326转换为3857坐标

    toLonLat(coordinate, opt_projection):一般将3857转换为4326坐标

    transform(coordinate, source, destination):coordinate的坐标是source坐标,转换为destination的坐标。