I3SNode requesting 'undefined' geometry buffer
What happened?
For the Scene https://basemaps3d.arcgis.com/arcgis/rest/services/OpenStreetMap3D_Buildings_v1/SceneServer?layers=ca0470dbbddb4db28bad74ed39949e25 the current implementation will not render as geometry request is malformed, i.e.
https://basemaps3d.arcgis.com/arcgis/rest/services/OpenStreetMap3D_Buildings_v1/SceneServer/layers/0/nodes/4046909/geometries/undefined/?layers=ca0470dbbddb4db28bad74ed39949e25&f=pjson
This error is coming from the method I3SLayer.prototype._findBestGeometryBuffers which I believe in case of not finding an exact attribute match should return the first buffer:
return {
bufferIndex: 0,
definition: geometryDefinition,
geometryBufferInfo: geometryDefinition[0],
};
Instead 0 is returned hence when building the uri in I3SNode geometryDefinition.bufferIndex is undefined.
Happy to submit a PR but wanted to check my understanding of the bug was correct first
Reproduction steps
- Load sandcastle link
- Zoom to an appropriate scale
- The following error is thrown
TypeError: Cannot read properties of undefined (reading 'getDerivedResource')and the scene is not rendered.
Sandcastle example
https://sandcastle.cesium.com/#c=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
Environment
Browser: Chrome CesiumJS Version: 1.120.0 Operating System: OSX
Hi @ljowen, we'd be happy to accept a PR for the fix!
Thanks @ggetz I've created a PR #12132