Javascript 此处映射-在“中切换平铺层”;选择“查看”;菜单

Javascript 此处映射-在“中切换平铺层”;选择“查看”;菜单,javascript,maps,here-api,here-maps-rest,Javascript,Maps,Here Api,Here Maps Rest,我能够创建一个平铺层,并将其添加到地图与此代码 var tileProvider = new H.map.provider.ImageTileProvider({ opacity: 0.8, getURL: function (column, row, zoom) { return 'https://1.base.maps.api.here.com/maptile/2.1/truckonlytile/newest/reduced.day/

我能够创建一个平铺层,并将其添加到地图与此代码

var tileProvider = new H.map.provider.ImageTileProvider({
        opacity: 0.8,
        getURL:  function (column, row, zoom) {
            return 'https://1.base.maps.api.here.com/maptile/2.1/truckonlytile/newest/reduced.day/' + zoom + '/' + column + '/' + row + '/256/png8?app_id=...&app_code=...'
        }
    });
    overlayLayer = new H.map.layer.TileLayer(tileProvider, {
        // Let's make it semi-transparent
        opacity: 0.8
    });
    map.addLayer(overlayLayer);
这很好,图层覆盖在地图上,但我希望能够通过“选择视图”菜单将其打开/关闭

我不知道怎么做。。。我试过这个

var defaultLayers = platform.createDefaultLayers();
    ui.removeControl('mapsettings');
    var ms = new H.ui.MapSettingsControl( {
    baseLayers : [ {
            label: 'Map View',layer: defaultLayers.raster.normal.map
        },{
            label: 'Satellite',layer: defaultLayers.raster.satellite.map
        }, {
            label: 'Terrain',layer: defaultLayers.raster.terrain.map
        },{
            label: 'overlay', layer: overlayLayer
        }
        ],
        layers: [{
            label: 'layer.traffic', layer: defaultLayers.vector.normal.traffic
        },
        {
            label: 'layer.incidents', layer: defaultLayers.vector.normal.trafficincidents
        }            
        ]
    });
    ui.addControl('customized',ms);
。。。但它不起作用


有没有办法在以后通过菜单进行类似此切换的平铺?

您的图层应该从基本图层阵列移动到图层阵列:

var defaultLayers = platform.createDefaultLayers();
ui.removeControl('mapsettings');
var ms = new H.ui.MapSettingsControl({
    baseLayers: [{
        label: 'Map View', layer: defaultLayers.raster.normal.map
    }, {
        label: 'Satellite', layer: defaultLayers.raster.satellite.map
    }, {
        label: 'Terrain', layer: defaultLayers.raster.terrain.map
    }],
    layers: [{
        label: 'layer.traffic', layer: defaultLayers.vector.normal.traffic
    },
    {
        label: 'layer.incidents', layer: defaultLayers.vector.normal.trafficincidents
    },
    {
        label: 'overlay', layer: overlayLayer
    }]
});
ui.addControl('customized', ms);

有关更多信息,请参见:

您好,请查看此问题。这很有效。。。“覆盖”可用并可切换开/关,但基本层“地图视图”卫星和“地形”不起作用。单击它们在地图上没有任何作用,并出现javascript错误“无法读取null属性“cg”-没有帮助,因为它在缩小的js文件中。关于如何让baseLayers正常工作,你有什么想法吗?这看起来像是API方面的问题。看起来团队已经解决了这个问题,问题不再发生,@user12260850你能再试一次吗?