Bug ID Number |
BUG-000163573 |
Submitted | December 8, 2023 |
Last Modified | December 6, 2024 |
Applies to | ArcGIS Maps SDK for JavaScript |
Version found | 4.28 |
Operating System | Windows OS |
Operating System Version | 11.0 64 bit |
Status | Known Limit
After review by the development team, it has been determined that this issue is related to a known limitation with the software that lies outside of Esri's control. The issue's Additional Information section may contain further explanation.
|
Additional Information
When assigning a value to WMSLayer.sublayers at layer initialization, it essentially overwrites the layer's sublayers discovered from the service's get capabilities response. Unless specified, all sublayer properties are set to their default values, instead of the values found in the service.
The solution is to wait for the layer to load and then 'turn off' the undesired sublayers. This ensures that all sublayer properties, like minScale and maxScale, are imported from the layer's get capabilities response.
For example:
const wmsLayer = new WMSLayer({
url: "your-url-here"
});
await wmsLayer.load();
const sublayer = wmsLayer.findSublayerByName("my-sublayer-name");
if (sublayer) { // check if sublayer exists
wmsLayer.sublayers = [sublayer]; // only show desired sublayer
}
map.add(wmsLayer);
The team plans to update the documentation to make this more clear.
Workaround
Add the WMSSubLayer subsequently.
For example:
const wmsLayer = new WMSLayer({
url: "your-url-here"
});
await wmsLayer.load();
const sublayer = wmsLayer.findSublayerByName("my-sublayer-name");
if (sublayer) { // check if sublayer exists
wmsLayer.sublayers = [sublayer];
}
Steps to Reproduce