OpenLayers 3使用的坐标系

目前OpenLayers 3支持两种投影,一个是EPSG:4326,等同于WGS84坐标系,参见详情。另一个是EPSG:3857,等同于900913,由Mercator投影而来,经常用于web地图,参见详情。一个是全球通用的,一个是web地图专用的,自然OpenLayers 3支持它们。在使用过程中,需要注意OpenLayers 3默认使用的是EPSG:3857。这也是为什么前面的代码里需要进行坐标转换的原因。 既然支持EPSG:4326,为什么还要转换?当然是可以不用转换的,但前提是你得指定使用具体那种投影,就像下面这样。

代码很简单:

<body>
    <div id="map" style="width: 100%"></div>
    <script>
      new ol.Map({
            layers: [
                new ol.layer.Tile({source: new ol.source.OSM()})
            ],
            view: new ol.View({
                // 设置成都为地图中心
                center: [104.06, 30.67],
                // 指定投影使用EPSG:4326
                projection: 'EPSG:4326',
                zoom: 10
            }),
            target: 'map'
      });
    </script>
</body>

所以开发时需要记住的是当前OpenLayers 3使用的坐标系及投影,以及我们自己的数据所使用的坐标系及投影。在没有弄清楚之前,就不要继续后面的内容学习,直到弄清楚为止。