opengeospatial / 2D-Tile-Matrix-Set

OGC 2D Tile Matrix Set & TileSet Metadata standard
https://www.ogc.org/standards/tms
Apache License 2.0
8 stars 10 forks source link

conceptual model for tiled feature data? #86

Open jyutzler opened 3 years ago

jyutzler commented 3 years ago

In the current draft, there are a number of references to tiled feature data in Section 6. However, it is unclear how this feature is to be implemented. We have a conceptual model (OGC Simple Features) for feature data. We have a conceptual and logical model (OGC Tile Matrix Set) for tile pyramids. However, there is no known conceptual or logical model for tiled feature data. My impression is that Implementers will expect to see this gap filled before concurring on OAPI-T as a standard. If this gap is not to be filled by this SWG, then who?

This gap in the OGC baseline also affects GeoPackage but I am bringing this up here because this SWG is closer to having a formal definition of this capability.

I suppose this is an escalation of opengeospatial/ogcapi-tiles#54.

joanma747 commented 3 years ago

Given the OGC simple Features, what are the elements that are needed to have a tiled feature data conceptual model?. I was under the impression that vector tiles are just simple features that has been subset or cut in tiles. Do we need something more? Are tiles feature data simplified in resolution (integer coordinates)? Have they to include default symbolization?.

This is definetelly out of the scope of the OGC API Tiles

jyutzler commented 3 years ago

If not tiles then common? https://github.com/opengeospatial/ogcapi-common/issues/261

jerstlouis commented 3 years ago

vector tiles are just simple features that has been subset or cut in tiles.

That is exactly what they are conceptually, though they are also generalized to be appropriate for the tile's scale, and features may also be filtered, usually based on a style with scale-dependent visibility rules.

Again conceptually generalization/LoDs and tiling are separate concepts but tightly combined in both TileMatrixSets and Vector Tiles. (https://github.com/opengeospatial/2D-Tile-Matrix-Set/issues/29)

Are tiles feature data simplified in resolution (integer coordinates)?

Whether quantization to integer coordinates is applied would be encoding-specific (e.g. MapboxVector Tiles or GNOSIS Map Tiles both perform quantization) -- this does not apply to GeoJSON or GML vector tiles. Simplification as in cartographic generalization is part of the vector tile concept as described above.

Have they to include default symbolization?.

No.

jerstlouis commented 1 year ago

@ogcscotts @joanma747 @jyutzler @kryden @cnreediii @ayoumans @jeffharrison

We may need to have an abstract spec for tiled feature data ("vector tiles") to clarify any misconceptions about them.

Is this a necessary step before publishing additional standards based on vector tiles concepts (e.g., a GeoPackage extensions for vector tiles), or could this work be done in parallel or at a later time? Which WG would be in charge of this abstract spec? Should we move this issue to the 2D Tile Matrix Set repository?

We already have the possibility of publishing / accessing vector tiles from OGC API - Tiles, including tiled feature data encoded using the Mapbox Vector Tiles specification. The 2D Tile Matrix Set and Tileset metadata standard 2.0 already clarifies several aspects of tiled feature data. From a conceptual standpoint, vector tiles essentially are at the intersection of Simple Features (though the Features and Geometry Abstract Topic may be the conceptual aspect) and the Core Tiling Conceptual and Logical model for 2D Euclidean Space.

A few clarifications:

jratike80 commented 1 year ago

The MVT vector tiles were mostly designed for client side rendering. Therefore it is acceptable for MVT that geometries are simplified, coordinates are quantized, and geometries are cut at tile boundaries (maybe buffered) because all that is not visible in the rendered raster. Z coordinates is also needless for 2D rendering, no no need to support them in the format.

Because MVT geometries are vectors it is not a surprise that people would like to utilize MVT data beyond the rendering, like "How can I reproject MVT data into EPSG:4326 and save the result into shapefile" https://gis.stackexchange.com/questions/389791/converting-mvt-file-to-shp-file.

It may be that the conceptual model would not need to care about what the users want do with the data, and serving tiled feature data for analysis etc. could be solved simply by encoding the tiles with alternative encodings, like GeoJSON.

jerstlouis commented 1 year ago

Thanks for the input @jratike80

The MVT vector tiles were mostly designed for client side rendering.

What we would like to clarify in this abstract specification is that "vector tiles" ("tiled feature data") are in no way limited to a particular encoding like MVT, and are not limited to visualization. Vector tiles are first and foremost a practical way to deal with large vector features that are both at a high resolution and cover a large spatial area for use cases such as repository, analytics as well as visualization.

Therefore it is acceptable for MVT that geometries are simplified, coordinates are quantized, and geometries are cut at tile boundaries (maybe buffered) because all that is not visible in the rendered raster.

At the most detailed zoom level of a tiled vector dataset, geometries would normally not be simplified. The quantization should not be so coarse as to negatively affect the precision of any given level (similar to the suitable number of decimals in a GeoJSON file), and although the geometry is cut at the tile boundaries, it is possible to put it back together without resulting in tile edge artifacts (whether through the use of a buffer zone or flags). All of this makes them suitable for use cases beyond visualization.

Because MVT geometries are vectors it is not a surprise that people would like to utilize MVT data beyond the rendering, like "How can I reproject MVT data into EPSG:4326 and save the result into shapefile"

Our products support doing exactly this kind of thing, whether the source vector tiles are MVT, GNOSIS Map Tiles as in our native optimized data store, or GeoJSON vector tiles, and whether sourced from a GeoPackage with vector tiles extensions, or from an OGC API - Tiles instance.

It may be that the conceptual model would not need to care about what the users want do with the data, and serving tiled feature data for analysis etc. could be solved simply by encoding the tiles with alternative encodings, like GeoJSON.

We have experimented with GeoJSON vector tiles in the Vector Tile Pilots, including as both an output format of OGC API - Tiles and as a format used with the GeoPackage extensions. There are other formats that could be suitable like flatgeobuf and we have our own GNOSIS Map Tiles format that can store vector tiles (along with n-D gridded coverage tiles, point clouds and map tiles). So while it should be completely agnostic of encoding (and not focus on any one particular encoding like MVT), the conceptual model should clarify that vector tiles are suitable for a range of use cases and not only visualization.

jerstlouis commented 1 year ago

I almost forgot about this ER from the Vector Tile Pilot:

OGC Vector Tiles Pilot: Tiled Feature Data Conceptual Model Engineering Report (OGC 18-076)

Surely another starting point.