openlayer在方位座標系下顯示北極地區地圖

使用openlaye時默認的座標系爲EPSG:3587,如果要使用其他座標系可自定義使用。

效果圖:

這裏寫圖片描述
極點位置有一個大圓,暫時未能消除,如果有人搞定了還望說明一下。

代碼:

更改座標系需要用到proj4.js文件,可百度免費下載。爲方便,我也會將這個博客中用到的文件和代碼上傳到我的csdn代碼庫中。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <title>mamq</title>
  <script type="text/javascript" src="js/ol.js"></script>
  <script src="js/proj4.js"></script>
</head>
<body>
      <div style="width:100%;height:100%;border:#ccc solid 1px;" id="map"></div>
<script>
  //////////////////////////////////////////////////
  //自定義座標系
  //如果想使用其他的座標系,此處可自己修改。可在http://epsg.io中查找自己需要的座標系。具體方法參考文末第一個參考資料。
  proj4.defs("EPSG:3995","+proj=stere +lat_0=90 +lat_ts=71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs");

  var projection_3995 = new ol.proj.Projection({
      code: 'EPSG:3995',
      extent:[-25026376.39,-25496570.74,25026376.39,25764656.23],
      worldExtent: [-180, -60, 180, 90]
  });
  //座標系轉換
/*  ol.proj.addCoordinateTransforms("EPSG:4326", "EPSG:3995",
      function(coordinate) {
          return proj4("EPSG:4326","EPSG:3995",coordinate);
      },
      function(coordinate) {
          return proj4("EPSG:3995","EPSG:4326",coordinate);;
      }
  );
  ol.proj.addCoordinateTransforms("EPSG:3857", "EPSG:3995",
      function(coordinate) {
          return proj4("EPSG:3857","EPSG:3995",coordinate);
      },
      function(coordinate) {
          return proj4("EPSG:3995","EPSG:3857",coordinate);;
      }
  );*/

  var map = new ol.Map({
    layers: [
      new ol.layer.Tile({
          source:new ol.source.OSM({layer:'sat'})
        })
    ],
    target: 'map',
    view: new ol.View({
      center: [0, 90],
      projection: projection_3995,//使用自定義好的座標系
      zoom: 4
    })
  });
    //////////////////////////////////////////////////
</script> 
</body>
</html>

參考資料:
[1]http://www.jianshu.com/p/9eca1bc8a12d
[2]http://epsg.io/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章