Snippets

Piotr Szrajber Smart M.App - set maxZoom to 25 for all layers

Created by Piotr Szrajber
/**
 * Iterate over all the layers and set maxZoom to 25
 * 2017-03-16 Piotr Szrajber <piotr.szrajber@hexagongeospatial.com>
 * This is using private API calls and should be used only as a workaround
 */
function iterate(layers, fn, predicate) {
    var keys = Object.keys(layers);
    for (var i = 0, l = keys.length; i < l; i++) {
        var layer = layers[keys[i]],
            subLayers = layer._layers;
        if (predicate(layer))
            fn(layer);
        if (subLayers)
            iterate(subLayers, fn, predicate);
    }
}

function setMaxZoom(value) {
    mainContext.switchingMapViewerAdapter.getMapAdapter().then(function(mapAdapter) {
        var map = mapAdapter.getMap(),
            layers = map._layers;
        map.options.maxZoom = value;
        iterate(layers, function(layer) {
            layer.options.maxZoom = value;
        }, function(layer) {
            return true; // that means it affects all layers
        });

    });
}

setMaxZoom(25);

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.