-
Notifications
You must be signed in to change notification settings - Fork 246
Update TilesetViewGroup to have information about their associated credits #1270
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update TilesetViewGroup to have information about their associated credits #1270
Conversation
… is referenced or not
…uce new referencer for raster overlay credits;
|
Thanks @ludovic-cheval-bentley-systems for opening this PR! @kring do you mind taking a look? |
|
Just realized this PR is still marked as draft; @ludovic-cheval-bentley-systems let us know when it's officially ready for review. |
|
@ludovic-cheval-bentley-systems now that this is passing CI, go ahead and hit that "Ready for review" button and we'll take a look. Unless there is more you want to do with it first? |
|
Thanks again for the PR @ludovic-cheval-bentley-systems. It looks good, but I have a couple of questions about use-cases.
|
|
Hello @kring Since we can load 3D Tiles with different data sources (for example, Google Maps imagery applied on Cesium ION terrain), we need to distinguish these credits'sources for legal compliance and ensure we display which credit belongs to which source (instead of a soup of credentials from undistinguished sources). Regarding the getCreditSnapshot implementation: Since I don’t have deep mastery of Cesium internals, I didn’t see a way to implement this without iterating through each TileSet credit snapshot and checking against TileSetViewGroup’s CreditReferencer via the new method I added.
This minimizes code changes and reduces the risk of me introducing bugs 😅. |
|
Thanks @ludovic-cheval-bentley-systems!
That's not a legal requirement we've run into anywhere else, as far as I know. But if you do need to separate credits by data source, then the implementation in this PR is insufficient anyway, because it doesn't allow you to separate credits that come from two different tilesets or from two different raster overlays. Perhaps you're getting away with it for now because you are only displaying one tileset and one raster overlay. I think that's very likely to change in the future, though. Let me think about how it might be possible to provide credits both per view and per data source. It's not entirely straightforward to do it efficiently...
Ok, so it sounds like the interface in this PR is more convenient for your application, even if we put aside any difficulties in implementation getCreditSnapshot on the cesium-native side? |
|
FYI @ludovic-cheval-bentley-systems I'm working on a system to allow us to identify exactly which tileset or raster overlay a Credit comes from. I should have a PR with it open by this time tomorrow so you can take a look and make sure it satisfies your use-cases. |
|
Hello
To be honest, the minimum expected for that legal requirement is simply to display the credits. That's why associating all tileset's credit to each viewgroup is acceptable since it will overdisplay credit but none would be missing. However, it might be a little odd to explain why we display credits from view 2 area in view 1 (and vice versa) 😅. That said, this approach only addresses our current needs. I’m fully aware it won’t cover future scenarios where we might have multiple raster overlay providers or several tileset providers combined into a single 3DTile. For now, the only supported use case on our side is one tileset provider, potentially with a different raster overlay provider.
Yes, it is. But it might just be convenient for us. If you need or want to redesign that solution and implement a getCreditSnapshot, I can update our code to adapt. |
By calling getSnapshot on a CreditSystem, clients can retrieve the current set of active credits. However, this snapshot represents credits across all TilesetViewGroups.
Some clients need to display credits separately for each viewport. To support this, new isCreditReferenced methods have been added to both CreditReferencer and TilesetViewGroup. These allow clients to check whether credits obtained from the CreditSystem apply to a specific TilesetViewGroup.
Similarly, certain clients must distinguish credits originating from raster overlays from other credits. To enable this, a dedicated CreditReferencer has been introduced within TilesetViewGroup to reference raster overlay credits. The existing CreditReferencer continues to reference all credits associated with the TilesetViewGroup.