openlayers怎么加载百度地图为底图?

请问openlayers怎么加载百度地图作为底图?
搜到了一些帖子但都已经打不开了.

阅读 12.9k
1 个回答

望采纳:

//坐标参考系
var projection = ol.proj.get("EPSG:3857");
//分辨率
var resolutions = [];
for (var i = 0; i < 19; i++) {
    resolutions[i] = Math.pow(2, 18 - i);
}
var tilegrid = new ol.tilegrid.TileGrid({
    origin: [0, 0],
    resolutions: resolutions
});
//拼接百度地图出图地址
var baidu_source = new ol.source.TileImage({
    //设置坐标参考系
    projection: projection,
    //设置分辨率
    tileGrid: tilegrid,
    //出图基地址
    tileUrlFunction: function (tileCoord, pixelRatio, proj) {
        if (!tileCoord) {
            return "";
        }
        var z = tileCoord[0];
        var x = tileCoord[1];
        var y = tileCoord[2];

        if (x < 0) {
            x = "M" + (-x);
        }
        if (y < 0) {
            y = "M" + (-y);
        }
        return "http://online3.map.bdimg.com/onlinelabel/?qt=tile&x=" + x + "&y=" + y + "&z=" + z + "&styles=pl&udt=20151021&scaler=1&p=1";
    }
});
//百度地图
var baidu_layer = new ol.layer.Tile({
    source: baidu_source
});
//地图容器
var map = new ol.Map({
    target: 'mapCon',
    layers: [baidu_layer],
    view: new ol.View({
        center: [0, 0],
        zoom: 2
    })
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进