POST
|
When adding WMSLayers using the resourceinfo instead of using a proxypage to get the capabilities of the layers, the sublayers property is not used to populate the "layers" in the request to get the WMS images. In version 4.4 of the api it was possible to use the "customlayerParamaters" to add the sublayers to the end of the request , but in version 4.5 this does not seem to work anymore. This is also described in the API documentation : WMSLayer | API Reference | ArcGIS API for JavaScript 4.5 A sample of the code i'm using at the moment can be found at the bottom of this post. The catalogItem.SubLayerCode is a string that contains comma separated values , where each value is a sublayername. The request seems to be created correctly except for the "layers" property that is empty. Getting the capabilities via a proxy is not an option as the server that is running the application does not have internet access. does anyone know a workaround for this possible issue or is there something wrong with the way the sublayers are created? thanks in advance. var wmsSubLayers = []; var sublayers = catalogItem.SubLayerCode.split(','); sublayers.forEach(element => { var subL = new WMSSubLayer({ id: element, name: element, spatialReferences: [31370], visible: catalogItem.DefaultVisibility, title: catalogItem.Name }); wmsSubLayers.push(subL); }); var layer = new WMSLayer({ //version: '1.3.0', customLayerParameters: catalogItem.SubLayerCode, visible: catalogItem.DefaultVisibility, id: catalogItem.Name, title: catalogItem.Name, imageFormat: 'image/png', url: catalogItem.Uri, sublayers: wmsSubLayers, resourceInfo: { currentVersion: 10.31, serviceDescription: '', mapName: 'Asset infrastructuur Fluxys', description: '', copyrightText: '', supportsDynamicLayers: false, layers: catalogItem.SubLayerCode.split(','), tables: [], spatialReference: { 'wkid': 31370, 'latestWkid': 31370 }, singleFusedMapCache: false, initialExtent: { 'xmin': 143818.85645561828, 'ymin': 217505.93448663258, 'xmax': 143845.3148418684, 'ymax': 217688.82808158646, 'spatialReference': { 'wkid': 31370, 'latestWkid': 31370 } }, fullExtent: { 'xmin': 0, 'ymin': 0, 'xmax': 300000, 'ymax': 250000, 'spatialReference': { 'wkid': 31370, 'latestWkid': 31370 } }, minScale: 0, maxScale: 0, units: 'esriMeters', supportedImageFormatTypes: 'PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP', documentInfo: { 'Title': '', 'Author': '', 'Comments': '', 'Subject': '', 'Category': '', 'AntialiasingMode': 'Fastest', 'TextAntialiasingMode': 'Force', 'Keywords': '' }, capabilities: 'Map,Query,Data', 'supportedQueryFormats': 'JSON, AMF', exportTilesAllowed: false, maxRecordCount: 1000, maxImageHeight: 4096, maxImageWidth: 4096, supportedExtensions: '' } });
... View more
10-27-2017
09:32 AM
|
0
|
0
|
465
|
POST
|
Hi Thomas, Thanks for the fast reply. good to hear the issue has been identified. Can you tell me if this will be fixed as a patch to the javascript api or if this will be something that will be fixed for the next release? kind regards, Bart
... View more
07-17-2017
01:24 AM
|
0
|
3
|
3572
|
POST
|
When adding a WMS Layer on its own the layer works and the map gets loaded. As soon as I add 2 or more WMSLayers(which work on their own added as only WMS layer) the second WMSLayer produces the following erro message : [] #load() Failed to load layer (title: 'undefined', id: 'undefined') TypeError: Cannot read property 'sublayers' of undefined at WMSLayer.js:5 at Array.forEach (<anonymous>) at r (WMSLayer.js:5) at Object.b.readSublayers (WMSLayer.js:9) at Object.n (init.js:472) at Object.e.read (init.js:982) at Object.l (init.js:225) at init.js:1018 at Object.f.readLoadable (init.js:473) at Object.e.read (init.js:1018) All the WMS layers after the first layer also produce this error message. In attachment the index.html file i've used to reproduce the issue as wel as the proxy page + config that is used to allow the getcapabilities requests for the WMSLayers. Using presentations/2017-devsummit/building-custom-layers at gh-pages · ycabon/presentations · GitHub I am able to work around the issue but I would prefer not having to use custom classes to be able to use WMSLayers in my application.
... View more
07-14-2017
02:52 AM
|
1
|
6
|
4930
|
Title | Kudos | Posted |
---|---|---|
1 | 07-14-2017 02:52 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|