Django geographic store and vector tile generation
Project description
django-geostore
Dynamic geographic datastore with Vector Tiles generation from PostGIS and json schema definition and validation.
Functions
- Geographic layer management
- Add and manage geographic features on layers
- Manage feature properties with JSON schema
- Import and export data
- Generate GeoJSON and MapBox Vector Tile on single or group of layers
- Full management API available
- Optional PGRouting capabilities with plugin django-geostore-routing
Requirements
General
- Python 3.6+
- Postgresql 10+
- PostGIS 2.4+
Optionnal to use PgRouting functionnalities :
- PgRouting 2.5+ and django-geostore-routing
Libraries
these are debian packages required
- libpq-dev (psycopg2)
- gettext (translations)
- binutils (django.contrib.gis)
- libproj-dev (django.contrib.gis)
- gdal-bin (django.contrib.gis)
recommended
- postgresql-client (if you want to use ./manage.py dbshell command)
Installation
from PYPI
pip install django-geostore
from GitHub
git clone https://github.com/Terralego/django-geostore.git
cd django-geostore
python3 setup.py install
in your project settings
INSTALLED_APPS = (
'geostore',
)
Development
with docker :
docker-compose build
docker-compose up
docker-compose run web ./manage.py test
with pip :
python3.6 -m venv venv
source activate venv/bin/activate
pip install -e .[dev]
CHANGELOG
1.0.0 (2024-01-12)
- Add support for django 5.0
- Add support for python 3.12
- Improve TileJSON and Tile cache keys
0.8.0 (2023-09-08)
- Works with fiona >= 1.9
- Add support for django 5.0
- Add support for python 3.12
0.7.3 (2023-04-17)
- Support django 4.2
- Allow layer access with group limit to superusers
- Drop django 2.2 and python 3.6 support
0.7.2 (2023-03-06)
- Allow dates and objects in feature properties by using DjangoJSONEncoder
0.7.1 (2023-03-03)
- Set default zoom levels to 0-23
- Limit Fiona version < 1.9 until fix
0.7.0 (2022-12-09)
- Don't limit psycopg2 version in setup.py
- Add migration check in CI
0.6.9 (2022-11-22)
- Support python 3.10 and django 4.1
0.6.8 (2022-07-04)
- Add layer extent endpoint
0.6.7 (2022-02-21)
- Change distance relation calculation with dwithin
0.6.6 (2022-02-11)
- Add relations in vector tiles
0.6.5 (2021-10-13)
- Fix missing migration
0.6.4 (2021-10-06)
- Fix shapefile export
0.6.3 (2021-10-05)
- Improve performances relations
0.6.2 (2021-10-04)
- Fix email link causing scam-alerts in some email clients
0.6.1 (2021-04-30)
- Improve performances relations
0.6.0 (2021-04-30)
!! WARNING - BREAKING CHANGES !!
- Add constraint extra geom empty / is_valid. Check that your feature extra geometries are not empty or invalid before using this version
0.5.8 (2021-04-30)
- Add format geojson relations
0.5.7 (2020-12-11)
- Include translation files in pypi releases.
0.5.6 (2020-12-11)
- Fix and include translations
- Fix template export mail with hyperlink
0.5.5 (2020-12-10)
- Fix templates not included in setup.py sdist
- Fix save generation export file
0.5.4 (2020-12-01)
- Add endpoint to get all distinct values of any layer property
0.5.3 (2020-11-16)
- Use get_username() to keep compatibility with custom User model
- Revert shape file url generation
0.5.2 (2020-11-06)
- Add functions to export layers in shape / geojson / kml in async mode with a celery worker. User should have email to receive link to download export.
0.5.1 (2020-10-28)
- BugFix on Polygon Vector tiles
- Improve documentation
0.5.0 (2020-10-27)
!! WARNING - BREAKING CHANGES !!
Features with empty geometry will not pass anymore Integrity Error Check Please, check and fix you geostore_feature table first before making migrations
-
Add constraint empty geometries
-
Add validation of constraints on geometries
-
geostore.routing has been extracted to django-geostore-routing
- add django-geostore-routing to your project dependencies
- add geostore_routing to you INSTALLED_APPS instead of geostore.routing
-
Add relation property to handle relations directly in feature
-
Force geometries 2d
-
Improve tile generation
0.4.3 (2020-10-09)
- Fix settings used by renderers
0.4.2 (2020-10-06)
- Fix geometry file labels in feature serializer
0.4.1 (2020-10-02)
- Add KML and GPX renderers
0.4.0 (2020-09-02)
-
WARNING Breaking Changes !!
- to continue to use PGRouting features, please add geostore.routing to INSTALLED_APPS
- Some changes in routing API response. Now final geometry and full feature segment list are provided by API
- Configurable tolerance for routing topologies (Default value from 0.0001 to 0.00001)
- HOSTNAME setting is deprecated. Default request HOST is now used to generate absolute full urls for vector tiles. You can set TERRA_TILES_HOSTNAMES = [HOSTNAME, ] to avoid this
-
Improvements :
- Officially support django 3.1
- Set HOSTNAME or TERRA_TILES_HOSTNAMES is not required anymore. Now full absolute urls are prefixed with current host request
- Installing PGRouting is not required anymore.
- source / target routing attributes :
- add indexes
- Hide by default (editable=False)
- Using JSONField from django.db.models
- Updating DjangoModelFactory location
0.3.19 (2020-06-25)
- WARNING : Ordering and Searching in feature properties are disabled for layers without schema.
- OPTIMIZATIONS : Improve API feature by disabling big queries to find layer's properties
- Fix duplicated index
0.3.18 (2020-06-24)
- Improve database indexes
0.3.17 (2020-03-04)
- Factorize Feature Extra Geom serializer to be customized directly in ViewsSet
0.3.16 (2020-01-27)
- Manage relations between layers and features (manual / intersections or distances).
- GeoJson renderer. Now API can render .json or .geojson endpoint (or format=?geojson)
- Partial properties patch. A patch on feature viewset keep properties not sended.
- Add Json value search filter in FeatureViewset
0.3.15 (2019-12-13)
- support django rest framework 3.11
0.3.14 (2019-12-11)
- Officially support django 3.0
- Add possibility to modify, create, update, delete extra geometries
- Add field editable to extra layers
0.3.13 (2019-12-09)
- Order extra geometries by layer
0.3.12 (2019-12-03)
Improves
- Improve documentation
Features
- Ability to define and package extra geometries for features (One to One)
0.3.11 (2019-11-05)
Fixes
- Prevent token group id decoding error
0.3.10 (2019-10-16)
News
- Ability to sort API feature results with property key content
Fixes
- Add missing migration file
0.3.9 (2019-10-15)
- Admin part is removed. Please use your own admin in project.
- DRF yasg is removed. Configure it in your project if required.
- Add authentication management on layers
0.3.8 (2019-10-11)
Fixes
- Add permission management on FeatureViewset
0.3.7 (2019-10-09)
Fixes
- Fix tilejson's layer attribution and description parsing
0.3.6 (2019-10-09)
Fixes
- Fix tilejson when Layer has no Feature
- Fix deprecation warning : "ST_Line_Substring signature was deprecated in 2.1.0. Please use ST_LineSubstring"
- Fix tile generation when no feature is present in the layer
- Fix permission management of layers
0.3.5 (2019-10-03)
News
- Add a method to get json schema property type by its name
Fixes
- Fix bug with shapefile export on geometry defined layer.
- Fix group's tiles URLs in tilejson
- Fix tilejson when Layer has no Feature
- Return a tilejson even if it has no feature
0.3.4 (2019-09-26)
Fixes
- integrate test/factories in packaging
0.3.3 (2019-09-25)
Breaking Changes with front
- key to access tilejson is changed from 'layer_tilejson' and 'group_tilejson' to 'tilejson' in both cases.
Fix
- Fix migration file that prevent old terracommon app migration
0.3.2 (2019-09-24)
Fix
- Fix migration file that prevent old terracommon app migration
0.3.1 (2019-09-11)
Breaking Changes
- App name move from terra to geostore. Structure is the same, so backup and restore your data
0.3.0 (2019-09-09)
First public tag
- Terra app extracted from terracommon.terra
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-geostore-1.0.0.tar.gz
.
File metadata
- Download URL: django-geostore-1.0.0.tar.gz
- Upload date:
- Size: 50.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4148c99247102a06452e5495e74de8af03c1b22d9a69c0da161993a25430917 |
|
MD5 | 0c136c6d7c59aa3840d17db9d7b86ce8 |
|
BLAKE2b-256 | 5e2487419a028d4c180c515ac277d283d876c5fd39493bbab79732b2ab72d332 |