Skip to content

Commit

Permalink
Add more documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
pka committed Oct 23, 2023
1 parent 07ebbb0 commit 578f397
Show file tree
Hide file tree
Showing 7 changed files with 120 additions and 21 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Components:
* [BBOX Tile server](bbox-tile-server): OGC API Tile service
* [BBOX Asset server](bbox-asset-server): Serving static and templated files
* [BBOX Processes server](bbox-processes-server): OGC API Processes service
* [BBOX Routing server](bbox-routing-server): OGC API Routing service (experimental)

Features:
* Built-in high performance HTTP server
Expand Down
30 changes: 28 additions & 2 deletions bbox-asset-server/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
BBOX Asset server
=================
# BBOX Asset server

Serving static and templated files.

Expand All @@ -8,3 +7,30 @@ Features:
- [x] Serve fonts and other assets for Tile services
- [x] QGIS plugin repository
- [ ] Templates with inputs from path, arguments and configuration


## Configuration

Static file serving:
```toml
[[assets.static]]
# ./assets/* -> http://localhost:8080/assets/
dir = "./assets"
path = "/assets"
```

Template file serving:
```toml
[[assets.template]]
# ./templates/name.html -> http://localhost:8080/html/name/param
dir = "./templates"
path = "/html"
```

QGIS plugin repository:
```toml
[[assets.repo]]
# ./plugins/*.zip -> http://localhost:8080/qgisrepo/plugins.xml
dir = "./plugins"
path = "/qgisrepo"
```
2 changes: 1 addition & 1 deletion bbox-feature-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Features:
- [x] OGC API - Features - Part 1: Core 1.0
- [ ] OGC API - Features - Part 2: Coordinate Reference Systems by Reference 1.0
- [x] OpenAPI endpoint
- [x] Native backends: PostGIS, GeoPackage
- [x] Builtin storage backends: PostGIS, GeoPackage
- [x] Output formats: GeoJSON


Expand Down
41 changes: 33 additions & 8 deletions bbox-map-server/README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,43 @@
BBOX map server
===============
# BBOX map server

Asynchronous map server with FCGI backend.

Features:
- [x] OGC WMS 1.3 Server
- [ ] OGC Map API Server
- [X] Map rendering backends: QGIS Server + UNN Mapserver
- [x] FCGI backends:
- [X] QGIS Server
- [X] UNN Mapserver
- [ ] Instrumentation data for WMS backends
- [ ] Intelligent process dispatching (slow query detection)

Usage
-----

## Configuration

Map server settings:
```toml
[mapserver]
# num_fcgi_processes = 4 # Default: number of CPU cores
# wait_timeout = 30000 # FCGI wait timeout in ms. Default: 90s
# search_projects = false # Scan directories and build inventory
```

QGIS Server settings:
```toml
[mapserver.qgis_backend]
project_basedir = "../assets" # Base dir for project files (.qgs, .qgz)
qgs.path = "/qgis" # WMS URL base path
qgz.path = "/qgz" # WMS URL base path
```

UMN MapServer settings:
```toml
[mapserver.umn_backend]
project_basedir = "../assets" # Base dir for project files (.map)
path = "/wms/map" # WMS URL base path
```

## Usage

cd ..
cargo run
Expand Down Expand Up @@ -42,13 +68,12 @@ UMN Mapserver:
curl -o /tmp/map.png 'http://127.0.0.1:8080/wms/map/ne?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=40.83354209954528358,0.542981257600549938,49.84069885574058389,15.5221558872974672&CRS=epsg:4326&WIDTH=1372&HEIGHT=825&LAYERS=country&STYLES=&FORMAT=image%2Fpng%3B%20mode%3D8bit'


Development
-----------
## Development

Documentation of main libriaries:
* Actix: https://actix.rs/
* Async Process: https://docs.rs/async-process/
* QGIS Server plugins: https://docs.qgis.org/3.10/en/docs/user_manual/working_with_ogc/server/plugins.html
* QGIS Server plugins: https://docs.qgis.org/3.28/en/docs/server_manual/plugins.html

Fast CGI:
* Fast CGI: https://fastcgi-archives.github.io/FastCGI_Specification.html
Expand Down
20 changes: 15 additions & 5 deletions bbox-processes-server/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
BBOX Processes Service
======================
# BBOX Processes Service

The OGC API - Processes standard specifies an interface for executing computational tasks.

Expand All @@ -9,11 +8,22 @@ Features:
- [ ] OGC API - Processes - Part 1: Core
- [x] Support synchronous and asynchronous process execution
- [x] OpenAPI endpoint
- [x] [dagster](https://dagster.io/) backend
- [x] Multiple backend engines
- [x] [Dagster](https://dagster.io/)
- [ ] [Windmill](https://www.windmill.dev/)


Usage
-----
## Configuration

Dagster Backend:
```toml
[processes.dagster_backend]
graphql_url = "http://localhost:3000/graphql"
repository_name = "the_repository"
repository_location_name = "the.repos"
```

## Usage

### Request examples

Expand Down
45 changes: 41 additions & 4 deletions bbox-routing-server/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,52 @@
BBOX Routing Service
====================
# BBOX Routing Service

Routing services with Contraction Hierarchy.

Features:
- [ ] OGC API - Routes - Part 1: Core
- [ ] OpenAPI endpoint
- [ ] GeoZero backend (PostGIS, GeoPackage, ...)
- Supported search APIs:
- [x] OGC API route requests
- [x] Basic from/to requests
- [x] Valhalla API compatible requests
- [x] Builtin storage backends: PostGIS, GeoPackage
- [ ] Extract routing graphs from OSM planet files


## Configuration

GeoPackage line geometry table:
```toml
[[routing.service]]
profile = "railway"
gpkg = "../assets/railway-test.gpkg"
table = "flows"
geom = "geom"

PostGIS Edge/Vertices tables:
```toml
# Node search distance
search_dist = 0.01
# Edge table
table = "rail_arcs"
# Node/Vertices table
node_table = "rail_arcs_vertices_pgr"
# Geometry column
geom = "geom"
# Node ID column in node table
node_id = "id"
# Cost column
cost = "cost"
# Column with source node ID
node_src = "source"
# Column with destination (target) node ID
node_dst = "target"
```

This assumes tables created e.g. with PgRouting `pgr_createTopology`.

The contraction hierarchy is created on first startup and stored as cache files named `.graph.bin` and `.nodes.bin`


Usage
-----

Expand Down
2 changes: 1 addition & 1 deletion bbox-tile-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Features:


Tile seeder features:
- [ ] Parallelized seeding of raster and vector tiles
- [x] Parallelized seeding of raster and vector tiles
- [x] Storage Backend: S3 - optimized for tile transfer
- [x] Storage Backend: Local files

Expand Down

0 comments on commit 578f397

Please sign in to comment.