漏洞 ID 编号 |
BUG-000163573 |
已提交 | December 8, 2023 |
上次修改时间 | December 6, 2024 |
适用范围 | ArcGIS Maps SDK for JavaScript |
找到的版本 | 4.28 |
操作系统 | Windows OS |
操作系统版本 | 11.0 64 bit |
状态 | Known Limit
经开发团队审核,已确定此问题与不受 Esri 控制的软件的已知限制有关。 问题的“其他信息”部分可能包含进一步说明。
|
附加信息
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.
解决办法
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];
}
重现步骤