Here Maps - переключать слой плитки в меню «Выбор вида» - PullRequest
0 голосов
/ 01 ноября 2019

Я могу создать слой листов и добавить его на карту с помощью этого кода ...

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);

... но это не работает.

Есть ли какой-нибудь способ сделать плитку позже, как эта, переключаться через меню?

1 Ответ

0 голосов
/ 05 ноября 2019

Ваш слой должен быть перемещен из baseLayers массив в слои массив:

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);

Для получения дополнительной информации см .: https://developer.here.com/documentation/maps/dev_guide/topics_api/h-ui-mapsettingscontrol-options.html#h-ui-mapsettingscontrol-options

...