OpenLayers 3 - setBaseLayer Hybrid显示空白地图

时间:2016-04-02 01:07:06

标签: google-maps openlayers hybrid

这是我对社区的第一个问题

我的问题是:我无法启动默认情况下启用混合层的OpenLayers3应用程序

我使用OpenLayers 2直到我的网站开始显示空白地图。由于大量的调试,我没有解决方案移动到OL3。使用来自http://dev.openlayers.org/examples/google-v3-alloverlays.html的“无脏”样本我意识到当我想将混合层从Google设置为baseLayer时出现问题(请查看示例中的源代码)。如果我将Satellite Layer设置为baseLayer,则地图会完美显示,如果一旦加载,我就切换到Hybrid我可以看到它。但是,再一次,默认情况下,我无法使用Hybrid启动应用程序。

var map;
function init() {
map = new OpenLayers.Map('map', {allOverlays: true});
map.addControl(new OpenLayers.Control.LayerSwitcher());

// the SATELLITE layer has all 22 zoom level, so we add it first to
// become the internal base layer that determines the zoom levels of the
// map.
var gsat = new OpenLayers.Layer.Google(
    "Google Satellite",
    {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22}
);
var gphy = new OpenLayers.Layer.Google(
    "Google Physical",
    {type: google.maps.MapTypeId.TERRAIN, visibility: false}
);
var gmap = new OpenLayers.Layer.Google(
    "Google Streets", // the default
    {numZoomLevels: 20, visibility: false}
);
var ghyb = new OpenLayers.Layer.Google(
    "Google Hybrid",
    {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 22, visibility: false}
);

map.addLayers([gsat, gphy, gmap, ghyb]);

// Google.v3 uses EPSG:900913 as projection, so we have to
// transform our coordinates
map.setCenter(new OpenLayers.LonLat(10.2, 48.9).transform(
    new OpenLayers.Projection("EPSG:4326"),
    map.getProjectionObject()
), 5);
map.setBaseLayer(ghyb); --> this is the issue
}

0 个答案:

没有答案