Brandon,
No
optionsArray[1,3] = drawingOptions;
is not valid code.
You would need
optionsArray[1] = drawingOptions;
optionsArray[3] = drawingOptions;
But I would use a whole other LayerDrawingOptions class for the other layer.
Here is another working sample labeling two different layers:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
<title></title>
<link rel="stylesheet" href="http://js.arcgis.com/3.24/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.24/esri/css/esri.css" />
<style>
html,
body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#map {
margin: 0;
padding: 0;
}
</style>
<script src="https://js.arcgis.com/3.24/"></script>
<script>
var app = {};
require([
"esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "esri/layers/ArcGISDynamicMapServiceLayer",
"esri/layers/LayerDrawingOptions", "esri/layers/LabelClass", "esri/symbols/TextSymbol",
"dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dojo/domReady!"
], function (
Map, ArcGISTiledMapServiceLayer, ArcGISDynamicMapServiceLayer,
LayerDrawingOptions, LabelClass, TextSymbol, parser
) {
parser.parse();
app.dataUrl = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/2";
app.defaultFrom = "#ffffcc";
app.defaultTo = "#006837";
app.map = new Map("map", {
center: [-85.787, 39.782],
zoom: 9,
slider: false
});
var basemap = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer");
app.map.addLayer(basemap);
var ref = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer");
urlDyn = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer";
usaLayer = new ArcGISDynamicMapServiceLayer(urlDyn, {
id: "us_counties",
opacity: 0.7,
visible: false
});
usaLayer.setVisibleLayers([1,3]);
app.map.addLayer(usaLayer);
var optionsArray = [];
var drawingOptions = new LayerDrawingOptions();
var labelClass = new LabelClass({
labelExpression: '[' + "POP2000" + ']',
labelPlacement: 'esriServerPolygonPlacementAlwaysHorizontal',
symbol: new TextSymbol(),
maxScale: 840000
});
drawingOptions.labelingInfo = [labelClass];
drawingOptions.showLabels = true;
var labelClass2 = new LabelClass({
labelExpression: '[' + "POP2000" + ']',
labelPlacement: 'esriServerPolygonPlacementAlwaysHorizontal',
symbol: new TextSymbol(),
minScale: 540000
});
var drawingOptions2 = new LayerDrawingOptions();
drawingOptions2.labelingInfo = [labelClass2];
drawingOptions2.showLabels = true;
optionsArray[1] = drawingOptions2;
optionsArray[3] = drawingOptions;
app.map.getLayer("us_counties").setLayerDrawingOptions(optionsArray);
app.map.getLayer("us_counties").show();
});
</script>
</head>
<body class="claro">
<div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline',gutters:false" style="width: 100%; height: 100%; margin: 0;">
<div id="map" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
</div>
</div>
</body>
</html>