Simple and Fast Geospatial OGC Features and Tiles API for PostGIS.
Documentation: https://developmentseed.org/tipg/
Source Code: https://github.com/developmentseed/tipg
tipg
, pronounced T[ee]pg, is a python package which helps creating lightweight OGC Features and Tiles API with PostGIS Database backend. The API has been designed with respect to OGC Features and OGC Tiles specifications.
Note This project is the result of the merge between tifeatures and timvt.
$ python -m pip install pip -U
$ python -m pip install tipg
# or from source
$ git clone https://github.com/developmentseed/tipg.git
$ cd tipg
$ python -m pip install -e .
Specification | Status | link |
---|---|---|
OGC Common Part 1: Core | ✅ | https://docs.ogc.org/DRAFTS/19-072.html |
OGC Common Part 2: Geospatial Data | ✅ | http://docs.ogc.org/DRAFTS/20-024.html |
OGC Features Part 1: Core | ✅ | https://docs.ogc.org/is/17-069r4/17-069r4.html |
OGC Features Part 2: CRS by Reference | ❌ | https://docs.ogc.org/is/18-058r1/18-058r1.html |
OGC Features Part 3: Filtering / CQL2 | ✅ | https://docs.ogc.org/DRAFTS/19-079r1.html |
OGC Tiles Part 1: Core | ✅ | https://docs.ogc.org/is/20-057/20-057.html |
Notes:
The project authors choose not to implement the Part 2 of the specification to avoid the introduction of CRS based GeoJSON. This might change in the future.
While the authors tried to follow OGC specifications to the letter, some API endpoints might have more capabilities (e.g geometry column selection).
tipg
rely a lot of ST_*
PostGIS functions. You need to make sure your PostgreSQL database has PostGIS installed.
SELECT name, default_version,installed_version
FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';
CREATE EXTENSION postgis;
To be able to work, the application will need access to the database. tipg
uses starlette's configuration pattern which make use of environment variable and/or .env
file to pass variable to the application.
Example of .env
file can be found in .env.example
# you need define the DATABASE_URL directly
DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis
More info about configuration options in https://developmentseed.org/tipg/advanced/configuration/
$ pip install uvicorn
# Set your postgis database instance URL in the environment
$ export DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis
$ uvicorn tipg.main:app
# or using Docker
$ docker-compose up app
See CONTRIBUTING.md
See LICENSE
Created by Development Seed
See CHANGES.md.