laptop and a wrench

漏洞

Vector tile services fail to display in ArcGIS API for JavaScript 4.18 and above and return the error message, "Cannot read property 'getAttributeLocations' of undefined."

上次发布: October 29, 2021 ArcGIS API for JavaScript
漏洞 ID 编号 BUG-000143069
已提交September 21, 2021
上次修改时间June 5, 2024
适用范围ArcGIS API for JavaScript
找到的版本4.20
操作系统N/A
操作系统版本N/A
状态Will Not Be Addressed

附加信息

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

重现步骤

漏洞 ID: BUG-000143069

软件:

  • ArcGIS API for JavaScript

当漏洞状态发生变化时获得通知

下载 Esri 支持应用程序

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项