Skip to content

Commit

Permalink
rewrite?
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelKreil committed Mar 31, 2024
1 parent 49adcc9 commit 8b225ef
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions v02/readme.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,68 @@
# VersaTiles Stack Specification v2.1

## Foreword

This document provides detailed specifications for the VersaTiles stack, a modular framework for creating, storing, serving and displaying map tiles. The stack is structured into four distinct layers, each dedicated to a specific aspect of tile creation, management and presentation.
The specification uses the terminology "SHALL", "SHOULD" and "MAY" to denote mandatory requirements, strong recommendations and optional practices respectively.

## 1. Stack Layers Overview

- **Generator:** Creates map tiles from geographic data sources such as OpenStreetMap (OSM).
- **Server:** Manages the storage and distribution of map tiles to clients.
- **Network:** Enhances security and optimizes performance through load balancing, TLS and caching.
- **Frontend:** Provides the user interface for map interaction, leveraging libraries like MapLibre GL JS.

### 2. Generator Layer

The Generator creates map tiles from geographic data sources such as OpenStreetMap (OSM).

[^req]: <b id="req-2.1">Requirement 2.1</b> The Generator layer SHALL produce map tiles based on input from geographic data sources, such as OpenStreetMap (OSM).

2.1.2 The Generator SHALL output tiles in formats compliant with the specifications detailed in later sections of this document.

**Requirements:**
- Tiles must be packaged in a [*.versatiles containers](container/readme.md).
- Vector tiles must conform to the [Shortbread schema](https://shortbread-tiles.org/).
- Containers must include detailed metadata compliant with [TileJSON 3.0.0](https://github.com/mapbox/tilejson-spec/tree/master/3.0.0), specifically:
- `attribution` detailing source data copyrights.
- `vector_layers` describing the vector tiles' layered composition.

**Recommendations:**
- Use optimal compression techniques to efficiently reduce tile size without compromising data integrity. Recommended methods include:
- Brotli compression for vector tiles.
- WebP format for raster tiles to improve loading efficiency and reduce bandwidth.

### 3. Server

2.2.1 The Server layer SHALL manage the storage of generated map tiles.

2.2.2 The Server SHALL distribute map tiles to clients upon request, adhering to the HTTP/HTTPS protocols.

2.2.3 The Server SHOULD implement mechanisms to determine its public URL dynamically to facilitate proper resource referencing.

### 2.3 Network

2.3.1 The Network layer SHALL implement security measures, including, but not limited to, Transport Layer Security (TLS).

2.3.2 The Network layer SHOULD provide load balancing functionalities to distribute incoming traffic across multiple server instances efficiently.

2.3.3 The Network layer MAY implement caching strategies to optimize the performance and scalability of tile delivery.

### 2.4 Frontend

2.4.1 The Frontend layer SHALL provide an interactive interface for map visualization and interaction.

2.4.2 The Frontend SHOULD leverage established libraries such as MapLibre GL JS to ensure compatibility and performance.

2.4.3 The Frontend MAY support additional functionalities, such as layer toggling and dynamic data visualization, to enhance user experience.




---



# VersaTiles Stack Specification v2.0

This document provides detailed specifications for the VersaTiles stack, a modular framework designed for the creation, hosting, and display of map tiles. The stack is structured into four distinct layers, each dedicated to a specific aspect of tile management and presentation.
Expand Down

0 comments on commit 8b225ef

Please sign in to comment.