CesiumGS / CesiumGS/cesium

Some imagery layers from ion don't drape on 3DTiles

Open
#12,940 1 comment 0 reactions 0 assignees View on GitHub
category - terrain and imagery type - bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.