MapImageLayer - Set definition expressions on sublayers

Explore in the sandboxView live

This sample shows how to add an instance of MapImageLayer to a Map in a MapView and update thedefinitionExpression of a sublayer.

                                            
// This layer has four sublayers. You can define the definitionExpression in each sublayer.
var layer = new MapImageLayer({
  url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer",
  sublayers: [
    {
      id: 3,
      visible: false
    },
    {
      id: 2,
      visible: true
    },
    {
      id: 1,
      visible: true
    },
    {
      id: 0,
      visible: true,
      definitionExpression: "pop2000 > 100000"
    }
  ]
});

...

/*****************************************************************
 * Listen for events on when the slider values have changed.
 * When the slider value changes, apply the new value to the
 * MapImageLayer definitionExpression.
 *****************************************************************/
layer.when(function() {
  var cities = layer.findSublayerById(0);
  populationSlider.on("thumb-drag", populationValueChanged);
  function populationValueChanged(event) {
    selectedPopulation = event.value;
    document.getElementById("population-display").innerHTML = parseInt(selectedPopulation).toLocaleString()
    // update the layers after the user stops the slider to avoid continues requests
    if (event.state === 'stop')
    {
      cities.definitionExpression = "pop2000 > " + selectedPopulation;
    }
  }
});