Numéro d’ID de bogue |
BUG-000163573 |
Envoi | December 8, 2023 |
Dernière modification | December 6, 2024 |
S’applique à | ArcGIS Maps SDK for JavaScript |
Version trouvée | 4.28 |
Système d’exploitation | Windows OS |
Version du système d’exploitation | 11.0 64 bit |
Statut | Known Limit
Après examen par l’équipe de développement, il a été déterminé que ce problème est lié à une limitation connue du logiciel sur laquelle Esri n’a aucun contrôle. Pour d’autres explications, reportez-vous à la section Informations supplémentaires correspondant au problème.
|
Informations supplémentaires
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.
Solution de contournement
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];
}
Étapes pour reproduire