openlayers中的坐标:’EPSG:4326’和’EPSG:3857′

openlayers中新建map的时候,有一个view属性,

该属性中会设置center,同时也会设置这个center是什么坐标系下的坐标,一个坐标离开坐标系,就没有任何意义。

OPENLAYERS中默认的坐标是GOOGLE的魔卡托:‘EPSG:3857’,但是我们常常看到的是’EPSG:4326’坐标系下的坐标。所以我们常常手动输入的坐标一般是我们常见的4326,比如我们百度得到的经纬度就:

但是我们在OPENLAYERS中用来计算的,比如计算两点之间长度时候,使用3857下的坐标数据来算。

所以会存在两个坐标系下坐标的转化。

  1.  
    <!DOCTYPE html>
  2.  
    <html>
  3.  
     
  4.  
    <head>
  5.  
    <script src=“../bin/ol.js”></script>
  6.  
    <link href=“../bin/ol.css”>
  7.  
    </head>
  8.  
     
  9.  
    <body>
  10.  
    <div id=“map”></div>
  11.  
    <script>
  12.  
    var map = new ol.Map({
  13.  
    layers: [
  14.  
    new ol.layer.Tile({
  15.  
    source: new ol.source.OSM()
  16.  
    })
  17.  
    ],
  18.  
    view: new ol.View({
  19.  
    center: [130, 30],
  20.  
    projection:‘EPSG:4326’,
  21.  
    zoom: 7
  22.  
    }),
  23.  
    target: ‘map’
  24.  
    });
  25.  
    </script>
  26.  
    </body>
  27.  
     
  28.  
    </html>

然后在浏览器控制台查看两种坐标系下的坐标:

  1.  
    map.getView().getCenter();//这里是在新建view时候指定坐标系下的中心点坐标
  2.  
    (2) [130, 30]
  3.  
    ol.proj.fromLonLat(map.getView().getCenter());//这个是转化为默认坐标系下的中心点坐标
  4.  
    (2) [14471533.803125564, 3503549.843504374]

openlayers中的可以在veiw中指定坐标使用的坐标系:

  1.  
    1.在括号中我们填写了常用坐标系下的数据,但是使用ol.proj.fromLonLat来将4326坐标系下数据转化为
  2.  
    3857坐标系下的坐标:
  3.  
    ol.proj.fromLonLat([103, 39])
  4.  
    实际上这里也可以指定将当前数据转化为指定坐标系下的数据:
  5.  
    ol.proj.fromLonLat(coordinate坐标,opt_projection指定坐标系)
  6.  
    该方法默认坐标系是3857
  7.  
     
  8.  
    2.也可以使用在创建center的时候u,指定坐标系:
  9.  
    center:[103,39],
  10.  
    projection:’EPSG:4326′
  11.  
     
  12.  
    3.可以将数据从指定从一个坐标系转化到另一个坐标系
  13.  
    ol.proj.transform(coordinate,source,destination)

 

 

 

 
版权声明:本文为Handsome2013原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/Handsome2013/article/details/102898529