要使用 OpenLayers 3 加载天地图,首先要弄清楚天地图发布的原理,以及遵循的发布规范,上一篇中我们提到了使用 OpenLayers 3 加载百度地图,我们提到一般网络地图为了加快访问速度,都采用缓存切片地图的方式,天地图也不例外,而且原理极其类似,但是其切片的索引组织方式还是有一些不同,虽然都是切片,但是切片的起始坐标原点不一致,百度地图是屏幕的左下角,而天地图是屏幕的左上角(与谷歌地图一致),且所在的坐标系是球形墨卡托投影坐标系(EPSG:3857)。
针对这种形式发布的地图切片,OpenLayers 3 中有一个对应的数据源(ol.source)类 – ol.source.TileImage
,上一篇的 OpenLayers 3 加载百度地图,就是使用的这个类。当然,我们使用这个类,加载天地图也是可以的,但是天地图的发布方式和切片组织方式与谷歌地图是一致的,在 OpenLayers 3 中有针对加载谷歌地图专门写好的类 - ol.source.XYZ
,这个类是 ol.source.TileImage
的一个特例,继承了 ol.source.TileImage
,其中 XYZ 分别对应切片所在的 x y 坐标和当前的缩放级别 z。
注:代码部分基于上一篇文章, OpenLayers 3 之 加载百度