3D Tile definitions

In the 3D tile definition (https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification), the properties section of the tileset.json file specifies that a maximum and a minimum value be specified.

In this example https://github.com/AnalyticalGraphicsInc/3d-tiles/blob/master/examples/tileset.json the Latitude, Longitude and Height properties all have a max and min value.

What does this max and min value refer to? 3D Tile spec (first link) mentions that both a max and min are required, but I have no understanding of what those values are.

How does a Lat/Lon have a max and min value? How does Altitude have a max and min value? Which of those two values is the ACTUAL location of the model? Why the need for a range?

And more importantly, if I have a lat/lon and alt values for a model, I how I enter that into the tileset.json file?

Is there further documentation that i haven’t come across that talks more about this, that I haven’t discovered?


Hey Adrian,

If you go to this section you’ll see that it says that :

The properties value in a tileset is an object containing objects for each per-feature property in the tileset.

So these values do not determine the location, but rather they are properties that can be used in styling, picking or other analysis. I think the reason it’s min/max is because these are defined on a tile, not on a model. If I tell you that a tile is at lat/long (20,30), that might mean that there are no buildings at all in that particular location, because a tile can contain one or more tiles and each can contain multiple buildings.

So knowing the min/max values at least tells you that all your buildings are in this area. I hope that answers the first question.

For your second question, if your tileset contains a glTF model which has a coordinate at (0,0,0), this will be placed in the center of the earth, unless you move the tileset in CesiumJS by setting a modelMatrix transform, or by defining a transform for your root tile:


So if you wanted your tileset to appear at a certain lat long, you can construct this translation in the root tile’s transform matrix, and all child tiles will be relative to that (or can have their own transforms as well).

Does that make sense?