使用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/