openlayers中的坐标:’EPSG:4326’和’EPSG:3857′
openlayers中新建map的时候,有一个view属性,
该属性中会设置center,同时也会设置这个center是什么坐标系下的坐标,一个坐标离开坐标系,就没有任何意义。
OPENLAYERS中默认的坐标是GOOGLE的魔卡托:‘EPSG:3857’,但是我们常常看到的是’EPSG:4326’坐标系下的坐标。所以我们常常手动输入的坐标一般是我们常见的4326,比如我们百度得到的经纬度就:
但是我们在OPENLAYERS中用来计算的,比如计算两点之间长度时候,使用3857下的坐标数据来算。
所以会存在两个坐标系下坐标的转化。
-
-
<html>
-
-
<head>
-
<script src=“../bin/ol.js”></script>
-
<link href=“../bin/ol.css”>
-
</head>
-
-
<body>
-
<div id=“map”></div>
-
<script>
-
var map = new ol.Map({
-
layers: [
-
new ol.layer.Tile({
-
source: new ol.source.OSM()
-
})
-
],
-
view: new ol.View({
-
center: [130, 30],
-
projection:‘EPSG:4326’,
-
zoom: 7
-
}),
-
target: ‘map’
-
});
-
</script>
-
</body>
-
-
</html>
然后在浏览器控制台查看两种坐标系下的坐标:
-
map.getView().getCenter();//这里是在新建view时候指定坐标系下的中心点坐标
-
(2) [130, 30]
-
ol.proj.fromLonLat(map.getView().getCenter());//这个是转化为默认坐标系下的中心点坐标
-
(2) [14471533.803125564, 3503549.843504374]
openlayers中的可以在veiw中指定坐标使用的坐标系:
-
1.在括号中我们填写了常用坐标系下的数据,但是使用ol.proj.fromLonLat来将4326坐标系下数据转化为
-
3857坐标系下的坐标:
-
ol.proj.fromLonLat([103, 39])
-
实际上这里也可以指定将当前数据转化为指定坐标系下的数据:
-
ol.proj.fromLonLat(coordinate坐标,opt_projection指定坐标系)
-
该方法默认坐标系是3857
-
-
2.也可以使用在创建center的时候u,指定坐标系:
-
center:[103,39],
-
projection:’EPSG:4326′
-
-
3.可以将数据从指定从一个坐标系转化到另一个坐标系
-
ol.proj.transform(coordinate,source,destination)
版权声明:本文为Handsome2013原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。