Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Geographic data visualizer backend for terra-visu

Project description

Build Status codecov PyPi version

Terra Layer

This django applications aims to provide an API to connect django_geosource to django_geodata. It serve an API that provides informations wanted by a frontend to configure data rendering.


You need the last version of docker and docker-compose to execute a dev instance.

Set configuration

In Django settings, you must set the different views provided to fronted, like this:

# Map settings. Sent to mapbox clientside.
    'accessToken': '<your mapbox access token>',
    'backgroundStyle': '<background style file>',
    'center': [-0.655, 43.141], # Default view center
    'zoom': 7.7, # Default zoom
    'maxZoom': 19.9,
    'minZoom': 5,
    'fitBounds': { # Default bounding box
        'coordinates': [
            [-4.850, 46.776],
            [-0.551, 48.886]

# Style and Legend autogeneration
    "circle_min_legend_height": 14, # minimum height for circle legend label.
    "fill_color": "#0000cc", # Default fill color
    "fill_opacity": 0.4, # Default fill opacity
    "stroke_color": "#ffffff", # Default stroke color
    "stroke_width": 0.3, # Default stroke width

Add a load xls command

You can define in the project using terra_layer a load_xls command that takes two parameters:

  • -s (--scene-name): receive the scene name.
  • -f (--file): the input xls file to load.

This command is launched when a file is send with a view. See the test project for an exemple.

To start a dev instance

Define settings you wants in test_terralayer django project.

docker-compose up

First start should failed as the database need to be initialized. Just launch the same command twice.

Then initialize the database:

docker-compose run --rm web /code/venv/bin/python3 /code/src/ migrate

You can now edit your code. A django runserver is launched internally so the this is an autoreload server.

You can access to the api on http://localhost:8000/api/


To run test suite, just launch:

docker-compose run --rm web /code/venv/bin/python3 /code/src/ test


You must use factoryboy factories to develop your tests. The factories are available at terra_layer/tests/factories

You must update the file on each MR and increment version if needed.

0.5.2 / 2020-10-27

  • Move popup data into a config json field for deeper customization/configuration

0.5.1 / 2020-10-07

  • Feature: Show scene with it's map settings from config json field
  • Feature: Add credit from layer's source
  • Fix: Tabular view is exportable only if the global export parameter is set to true on the layer

0.5.0 / 2020-06-30

  • Fix bad format type sent to server
  • Add an option to not generate wizard
  • Fix circle legend generator using decimal value
  • Style generator: graduated, no data close to small value in legend
  • Style generator: deal with null value vs empty table
  • Gen style, fix color usage
  • Fix & remove default params to gen_legend_circle()
  • Add a dict level style in wizard config
  • Style generator, support of null value on layer style and legend
  • Updating a layer's source do not delete field settings anymore

0.4.13 / 2020-06-25

  • Update source layer by layer pk and not by name

0.4.12 / 2020-06-23

  • Fix missing property on interactions

0.4.11 / 2020-06-04

  • Command to replace the source of the layer

0.4.10 / 2020-04-27

  • Filter NULL value on discretize method

0.4.9 / 2020-03-19

  • Add missing display and config field properties

0.4.8 / 2020-03-16

  • Add import file process only if load_xls command exists
  • Add way to specify selectors when inserting in tree
  • Fix boundaries when no data
  • Allow to provide manual boundaries for graduated
  • Fix circle size legend
  • Add default style on field less layer
  • Implement auto legend for Proportional Symbol
  • Add mapbox gl style generator

0.4.7 / 2020-03-10

  • Add initial opacity of layer
  • Add insert in tree to ease processing
  • Review README

0.4.6 (2019-02-06)


  • Field order was not saved
  • Don't save layer group on write

0.4.5 (2019-02-04)


  • Replace SimpleRouteur by DefaultRouter that handle format param

0.4.4 (2019-01-22)


  • Remove id to source field translation for fields

0.4.3 (2019-01-21)


  • Fix field ordering bug
  • Fix migration bug on Group
  • Add permission on layers
  • Remove code slug is None


  • Increase coverage
  • Add a lot of tests
  • Add flake8 pipeline travis
  • Fix coveragerc

0.4.2 (2019-01-07)


  • Fix load layer command


  • Add uuid field for layer to ease import/export

0.4.1 (2019-12-19)


  • Handle group selectors and settings in tree

0.4.0 (2019-12-18)


  • Add tree edition support via Scene API
  • Can now have geolayers at tree root
  • Geolayers and groups can be mixed in any order

0.3.14 (2019-12-18)

  • Support python 3.8, django 3.0 and DRF 3.11
  • Improve ordering and filters
  • Drop requirement over url-filter

0.3.13 (2019-12-11)


  • Update code documentation
  • Allow layer ordering by view name
  • Allow layer search by name and settings
  • Allow layer filter by source

0.3.12 (2019-11-25)


  • Custom styles must be anonymized on exports to be importables

0.3.11 (2019-11-21)


  • Fixes some layer's export/import mistakes

0.3.10 (2019-11-20)


  • Add layer_dump and layer_load_dump management command to save and restore layers

0.3.9 (2019-11-19)


  • Add default layer activation support
  • Add layer_dump and layer_load_dump management command to save and restore layers

0.3.8 (2019-11-13)


  • Deep layer groups raises an error

0.3.7 (2019-11-12)


  • slug can now be modified and is optionnal


  • Add default layer activation support

0.3.6 (2019-11-07)


  • Fix geolayer urls double dash

0.3.5 (2019-11-06)


  • Set correct permission classes to viewsets

0.3.4 (2019-11-06)


  • Fix geostore namespace that is not necessary anymore

0.3.3 (2019-11-06)


  • Add Manifest

0.3.2 (2019-11-05)


  • Fix url namespace of geostore

0.3.1 (2019-11-05)


  • Integrate terra permissions mecanism

0.3.0 (2019-10-18)


  • First release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for terra-layer, version 0.5.2
Filename, size File type Python version Upload date Hashes
Filename, size terra-layer-0.5.2.tar.gz (34.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page