Numéro d’ID de bogue |
BUG-000143069 |
Envoi | September 21, 2021 |
Dernière modification | June 5, 2024 |
S’applique à | ArcGIS API for JavaScript |
Version trouvée | 4.20 |
Système d’exploitation | N/A |
Version du système d’exploitation | N/A |
Statut | Will Not Be Addressed
L’équipe de développement a examiné le problème ou la demande et a décidé qu’ils ne seraient pas traités. Pour d’autres explications, reportez-vous à la section Informations supplémentaires correspondant au problème.
|
Informations supplémentaires
By definition, the JS AP identifies style-layers by their names, and the assumption is that names are unique across the style (they are case insensitive). In this particular case, there are two layers named background:
{
"id": "background",
"type": "background",
"paint": {
"background-color": "#FEFFFF"
}
},
{
"id": "Background",
"type": "fill",
"source": "esri",
"source-layer": "Background",
"layout": {},
"paint": {
"fill-color": "#A9DDEF"
}
},
The MapBox style spec indicate that layer Id (name) must be unique: https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/. The renderer is accessing the layer by it's name (using lowercase form) and therefore in this case we end up with the wrong layer type.
At 4.18, we added new methods to interact with style-layers and made some code cleaning as part of it. https://developers.arcgis.com/javascript/latest/4.18/#vectortilelayer
We can add a protection to bail out in case. BUT we end up with the wrong layer type and we would still end up not rendering all layers. This is what is happening for MapBox I am sure. So we will not add a protection to bail out in those cases. The best solution here is for the user to update their layer Ids.
This test app shows the user's vector tile layer working at JS API version 4.21. https://codepen.io/U_B_U/pen/XWgBEVX?editors=1000
Étapes pour reproduire
ID de bogue: BUG-000143069
Logiciel:
- ArcGIS API for JavaScript