Skip to content
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

Global feature IDs #265

Open
bagnell opened this issue Oct 20, 2017 · 11 comments
Open

Global feature IDs #265

bagnell opened this issue Oct 20, 2017 · 11 comments

Comments

@bagnell
Copy link
Contributor

bagnell commented Oct 20, 2017

  • The batch ids are limited to [0, featuresLength). The batch id should be allowed to be any arbitrary number.
  • For vector tiles, batch ids are required for all features or they are all generated.Batch ids should be generated if they are not provided.
  • For vector tiles, a feature with e the same batch id should be styled the same across tiles.
@bagnell bagnell added the next label Oct 20, 2017
@bagnell bagnell changed the title Remove batch id restriction Remove batch id restrictions Oct 20, 2017
@lilleyse
Copy link
Contributor

I'm running into the same sorts of issue with classified point clouds. We may need a concept of global batch ids.

@pjcozzi pjcozzi added 1.0 and removed next labels Oct 31, 2017
@pjcozzi
Copy link
Contributor

pjcozzi commented Oct 31, 2017

@lilleyse can you give an example for global batch ids

@bagnell would Cesium still have a fast path that basically avoids the indirect texture lookup when batch ids are in range? We could make that an Implementation Note in the 3D Tiles spec; we do this often for glTF.

@lilleyse
Copy link
Contributor

@lilleyse can you give an example for global batch ids

There could be a case where you have a feature whose points are split between 8 tiles and you want to change the feature's color or edit its properties. A common case is changing its color on pick. In Cesium you would only be able to pick an eighth of the feature at a time. With a global id you could at least identify which features across all tiles belong to the same thing.

This isn't really a problem though if your tileset is read-only and all you want to do is style it.

@pjcozzi
Copy link
Contributor

pjcozzi commented Oct 31, 2017

Ah yes, we should scope out what it will take to address this and decide if it fits into 1.0.

@pjcozzi pjcozzi changed the title Remove batch id restrictions Remove batch id restrictions / Global Batch IDs Nov 24, 2017
@pjcozzi
Copy link
Contributor

pjcozzi commented Apr 6, 2018

@lilleyse realistically can this be scoped to be small and quick for 1.0? Or hold for the future?

@lilleyse
Copy link
Contributor

lilleyse commented Apr 9, 2018

This one can hold - it will require a bit of thinking to do properly and it's possible for an app to work around it.

@lilleyse lilleyse added next and removed 1.0 labels Apr 10, 2018
@lilleyse lilleyse removed the next label Nov 15, 2021
@pjcozzi pjcozzi changed the title Remove batch id restrictions / Global Batch IDs Remove batch id restrictions / Add Global Batch IDs Nov 15, 2021
@lilleyse
Copy link
Contributor

lilleyse commented Nov 15, 2021

This is still very relevant for replacement-refinement tilesets that have the same features across tile boundaries or across LODs - e.g. photogrammetry and vector data.

Global IDs can be stored in a property table indexed by local feature IDs. These global IDs can be used to access metadata from an external database, or maybe from an external property table (CC #136).

If this is a common enough use case there could be a GLOBAL_ID metadata semantic.

@lilleyse lilleyse changed the title Remove batch id restrictions / Add Global Batch IDs Global feature IDs Nov 15, 2021
@lilleyse
Copy link
Contributor

Related discussion in #407 about querying features in a tileset, possibly based on some global ID.

@donmccurdy
Copy link
Contributor

Perhaps the existing ID semantic? We don't define "unique" — which may differ for 3D Tiles and glTF — but I think the idea is the same.

@ptrgags
Copy link
Contributor

ptrgags commented Nov 16, 2021

@donmccurdy note that ID is a STRING (so more like an identifier in a programming language than an index). But certainly we could have a separate semantic

@donmccurdy
Copy link
Contributor

donmccurdy commented Nov 16, 2021

It sounded like the idea of a Global ID was to provide an ID that is not constrained to be an integer [0, count -1], have I misunderstood that? We could also loosen the type requirement of ID, if the expected meaning is otherwise consistent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants