Some imagery layers from ion don't drape on 3DTiles
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
### What happened?
Testing https://github.com/CesiumGS/cesium/pull/12913 which adds a `Google2DImageryProvider` to support new ion assets from Google Maps, a few ion assets - in particular Google Maps Labels Only (ion assetId: 3830185) which is the equivalent to Bing Maps Labels only (ion assetId: 2411391) - do not drape as expected as shown in our [draping imagery sandcastle](https://sandcastle.cesium.com/?src=Drape%20Imagery%20on%203D%20Tiles.html).
I am able to create an overlay with Google Maps labels using the `Google2DImageryProvider` that drapes as expected (see below), but it would be good to ensure draping works with our curated assets in ion.
This could be a code issue in CesiumJS or an "asset" (but really code) issue in ion, not sure which yet, but leaving the issue in CesiumJS for great visibility and documentation of the workaround.
### Works
Google Maps Labels Only Overlay drapes fine (ie this is a workaround) [sandcastle](http://localhost:8080/Apps/Sandcastle/index.html#c=bVRdb+I4FP0rFk9UKvkkJOl0Rttlum26DbSQDjsVL45zaQxOHNkGJqzmv6+TwAq1fYni+33OPbZpojsoQWAFCCOZYwFoAzVacYEwISAlUhzhEtFkT0u0pyrnW4WmN1uVL0vTRLlSlbwyzQx2wHgFwkihVAxqg/DCxBWVZldnQHipBGeDnWM2cVhRXkqTCNC9B1Tp8oO2v7ksxyDptjCipucTw0pPUxgZrPCWqXkT87ce8euyRGjZg/ohT+8IndKH6OUQ2RMayaiceWQcjaJN9c+P8UNo6KDqx31WpRu2idacTpLY/plE1s8kVtNFVE/nlvWaRIfHxQOdLJ61bcJe7yI7Xs/Wk8PzIaJ7ihfPuknkTJLbfXx4OcTUcuLixX1MZsXrXZczqW06/R79+lnc1nEReZN1TB/HDwzub+h0fetODmQ/SV6GcZKHxnMYv8nFYkNGaWof7l8efJy/rn89KZwsbtfVZDdjpT+ZuyscL3tfluWy1BRKhXYU9iDQV1TCHh2p+tHa+sseac9jzTWmeq/L3iX6tyFK0QKYtlyhFWYSLhsbLmnRruHcKInWQ8wzeKJkA+LclWIJj7gG8d71+0KP141ltPmG3NQ3quCyykHoU873el4ltnCGQ1EGEpR24D2mCp1v/TtW2Oi0kXRhf3ExA8yoqhtflPVbWK0so+xKC8FzPewMsTsIUyccDMFxB2nqZYOQQJZ6zpD4Q1fT0WSJ80JNbuAFoW+F1sBNCRkMfSsdpED8gWOl6cgNCbHTsM39iLQStKCK7kAaOMv6R1BN2PHXKPAvWmyLuYYD5bzCBG6F4M0CnZYNfYvGLVKkckB6JW8gasQaott7eMf5GwMU40qiPsMpMIl4yeqLE5GtLery2v3o0icyz6zGSvDiSfAdzUDcyLok/YaMY2TXxfl+zDjFtUkRL2+khnJiXUunO14hN3AtO3AuOzPfgdCDt+2SuoKG2xbIjOOswNWy18T91pOfE0TPhuxY/IDoomVqjsuMYKmflyYq4W964j+3SvGy3z0G80ZoHUXHVX+o1Iqxda22JWnUj/okBy3o7AId0X2epFk9Bn5pUVx2KNoFPnK+QVihp5wynAGrcorfCYXgQr96hgbcXNaOyAykouXxDp5d5zEWSv/h0u13E9mO5zhBaHh+4Gihh5Z3ZFyL1XWCwDd8y7Idy7VOqxhavmdbnuGGnhP4vuu7reOi/XJB9Sv9se894IyWb09UkXzGGTt2Hxm2aw1HI8vxnZFvuf6pua0dtq6vNeAFziiwg8tThjbaQ9/xPDsMhp7v/d+9vUK9y961VDWDb108Qn/QouJCoa1gfcMwFRSVfvlBmulWU64MIuXFly742jxPvc7oDtHs6ydvHyJMC1V7VlvG5vQAy963a1PHf0hlvAU+7fTbhOX2t8fOaBjGtamPn2cqzlmKxbvK/wE)
```
// Create the imagery layer for Google Maps (labels only)
const labelImageryLayer = Cesium.ImageryLayer.fromProviderAsync(
Cesium.Google2DImageryProvider.fromIonAssetId({
assetId: 3830182,
overlayLayerType: "layerRoadmap"
})
);
tileset.imageryLayers.add(labelImageryLayer);
```
### Doesn't work
Curated ion GoogleMaps Labels Only overlay does not show [sandcastle](http://localhost:8080/Apps/Sandcastle/index.html#c=dVRtc9o4EP4rGj7BTPArxnabdi5Hc4nTGJJAyjXDF1leYoEseSQBNTf97yfb5IZpel8YvPvsy/Psrmwb3QAHiTUgjFSBJaAt1GgtJMKEgFJIC4Q5oosD5ehAdSF2Gs2udrpYcdtGhdaV+mDbOeyBiQqklQHXDGqLiNLGFVV2l2dIBNdSsOHesxsc1lRwZRMJpvaQapN+2Na3V3wCiu5KK2lqPjCsTTellcMa75ieN5ivpsVPK47Qqgf1XZHdEDqjd8nzMXGnNFEJfwrIJBkn2+rvb5O72DKg6tttXmVbtk02gk4Xqft9kTjfF6meLZN6Nnecl0VyvF/e0eny0dim7OUmcdPN02Z6fDwm9EDx8tEUSbzp4vqQHp+PKXW8tHz27xdP5ctNFzOtXTr7kvz4Xl7XaZkE001K7yd3DG6v6Gxz7U+P5DBdPI/SRRFbj3H6qpbLLRlnmXu8fb4LcfGy+fGg8WJ5vamm+yfGw+ncX+N01fu44ituJFQa7SkcQKJPiMMBnaT61tr6qx5pvydGa0zNXFe9C/RPI5SmJTBj+YDWmCm4aGyY07Idw7lREbMPqcjhgZItyHNXhhXc4xrkr66fA9Ne15bVxltqW1/pUqiqAGm+CnEw/Wq5gzMemjJQoI0DHzDV6HzqX7DGVrcbiw72l5BPgBnVdeNL8n5Lq13LJP9gFiHwA+yNsD+MMy8ejsDzh1kW5MOYQJ4F3oiEI9/I0UTJ80RNbBREcejEztDPCBmOQicbZkDCoedk2diPCXGzuI19z7SStKSa7kFZOM/7J1IN7PTXKvEPWu7KuaEDfF5hAtdSimaAXquGuaJJyxTpApAZySvIGrFGaLSWokRmQgirRqrmLG+EeGWAUlwp1Gc4A6aQ4KwevOna2pIuTTsuU+lN2zOr1eR+kGJPc5BXquak32jzhhT8BH6DtPirpg0jvh/5jhsFAyPJOVV6lr/T410zg5bzHPOcYGUeiga1EK+G0p87rQXvd2c9b1amY3ca2rtM7Vq1rvWOk2aPUZ8UYFYzH3RL/39BRpAT8GMD+3li0Y7iXogtwho9FJThHFhVUPzLyAkuzftlGcLN2XWLmIPSlJ+u6ewwJ1hq8w9zv9915HqB50WxFYSRZ1Y2doKLzmHWzveiKLRCx3E9x3e8k2PkhIHrBJYfB14Uhn7ot45B+yskNe/t+7q3gHPKXx+oJsWTYOxUfWy5vjMajx0v9Mah44dvxV3jcE1+M9Yg8saRG128RRijOwq9IHDjaBSEwX/V22PoXfQula4ZfO7wCP1By0pIjXaS9S3L1lBW5g0HZWc7I7m2iFKDjx340j4PvczpHtH8029eMUSYuQDjWe8Ym9MjrHqfL22DfxfKREt8tgdpTqiBFe7n+85oWdalbT5/H6mFYBmWv2T+Fw)
```
// Create the imagery layer from ion asset for Google Maps (labels only)
const labelImageryLayer = Cesium.ImageryLayer.fromProviderAsync(
Cesium.IonImageryProvider.fromAssetId(3830182),
);
tileset.imageryLayers.add(labelImageryLayer);
```
Note - I can switch these sandcastle urls to prod sandcastle after the Oct 1 release
### Reproduction steps
1.
2.
3.
...
### Sandcastle example
_No response_
### Environment
Browser:
CesiumJS Version:
Operating System:
Contributor guide
Research direction
Start with the Drape Imagery on 3D Tiles Sandcastle examples and compare the working Google2DImageryProvider overlay with ion asset 3830182 loaded through IonImageryProvider. Determine whether the discrepancy is in CesiumJS or the curated ion asset, then verify that the affected labels imagery drapes correctly and document the result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100