Solved! Go to Solution.
// layer json (layerInfo below) { type: 'dynamic', id: 'vertcontrol', url: 'https://some_server/arcgis/rest/services/Control/Vertical_Control/MapServer', name: 'Vertical Control', secured: true, token: 'some_token' }
// in layer loading class // create layer var li = lang.mixin({ secured: false, token: null, visible: false, opacity: 1, imageFormat: 'png32', dpi: 96, sublayers: true, identify: true, query: true }, layerInfo); this.layerInfo = li; var ip = new ImageParams(); ip.format = li.imageFormat; ip.dpi = li.dpi; this.layer = new Dynamic((li.secured) ? li.url + '?token=' + li.token : li.url, { id: li.id, imageParameters: ip, visible: li.visible, opacity: li.opacity }); this.layer.mapx = li; // reset url if (li.secured) { this.layer.url = li.url; }
_getLegend: function (deferred, layer) { var url = layer.url; if (!isNaN(parseInt(url.charAt(url.length - 1), 10))) { url = url.replace('FeatureServer', 'MapServer'); url = url.substring(0, url.length - 2); } esriRequest({ url: url + '/legend', callbackParamName: 'callback', content: { f: 'json', token: (typeof layer._getToken === 'function') ? layer._getToken() : null } }, { usePost: this.usePost }).then(function (r) { deferred.resolve(r); }, function (e) { console.log(e); deferred.reject('getLegend::an error occurred retrieving legend'); }); },
// layer json (layerInfo below) { type: 'dynamic', id: 'vertcontrol', url: 'https://some_server/arcgis/rest/services/Control/Vertical_Control/MapServer', name: 'Vertical Control', secured: true, token: 'some_token' }
// in layer loading class // create layer var li = lang.mixin({ secured: false, token: null, visible: false, opacity: 1, imageFormat: 'png32', dpi: 96, sublayers: true, identify: true, query: true }, layerInfo); this.layerInfo = li; var ip = new ImageParams(); ip.format = li.imageFormat; ip.dpi = li.dpi; this.layer = new Dynamic((li.secured) ? li.url + '?token=' + li.token : li.url, { id: li.id, imageParameters: ip, visible: li.visible, opacity: li.opacity }); this.layer.mapx = li; // reset url if (li.secured) { this.layer.url = li.url; }
_getLegend: function (deferred, layer) { var url = layer.url; if (!isNaN(parseInt(url.charAt(url.length - 1), 10))) { url = url.replace('FeatureServer', 'MapServer'); url = url.substring(0, url.length - 2); } esriRequest({ url: url + '/legend', callbackParamName: 'callback', content: { f: 'json', token: (typeof layer._getToken === 'function') ? layer._getToken() : null } }, { usePost: this.usePost }).then(function (r) { deferred.resolve(r); }, function (e) { console.log(e); deferred.reject('getLegend::an error occurred retrieving legend'); }); },