All-in-one Project QGIS Plugin

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche

This is a software project containing a (potential) plugin about sharing and using a QGIS project file including data layers and symbology (styles).

Often users ("producers") want to share a QGIS project file including possibly many layers (data sources), a related symbology (style/styling) and some common project settings. On the other hand other, users ("consumers") want to open a single data source and get same data and map layer styling.

About

Project Weblinks:

See also QGIS, QGIS-Materialien

Current state and recommendation

While a nice solution is not available you can try out following alternatives (Not: All are date back to 2015/2014!):

  • "relocator" QGIS Plugin - Relocates all your project data to a specific local directory. Version 0.9 2015-05-08 with minimal QGIS v2.0.0. Autor Riccardo Klinger, Geolicious. plugins.qgis.org, github
  • "QConsolidate" QGIS Plugin - Consolidate QGIS project into one directory. Version 0.2.1 2014-01-29 with minimal QGIS v2.0.0. Autor Alexander Bruy. plugins.qgis.org github.



Problem Statement

Main use cases are:

  • Producers users want to share a QGIS project including possibly many layers (data sources), a related symbology (style/styling) and some common settings.
  • Consumer users want to open a single data source and get same data and map layer styling.

In addition to the main use case, data and symbology currently is handled in QGIS as if there was a one-to-one relationship, meaning one dataset attached to one QGIS instance: A dataset is styled with one symbology using a user-specific project file where symbology files can be anywhere. But in fact, one dataset can be styled with different symbologies - and one symbology can style different datasets of same schema.

Related use cases:

  • Users ("producers") want to share a QGIS symbology which is common to several datasources of same schema. Other users ("consumers") get a new dataset (corresponding to this schema) and want to attach a common QGIS symbology to it.
  • There is a proposal to put all data and related styling info into a single specific GeoPackage file.
  • For sharing and downloading QGIS styles (.qml), QGIS symbols definitions (.xml) and SVG markers there's a GSoC project (see wiki.osgeo.org and @akbargumbira github) which implements a web application to allow users use them in QGIS.

Issues:

  • Data:
    • A map layer source is stored in local files somewhere in a directory.
    • A map layer source is a local or remote database (with credentials).
    • A map layer source is a remote web service which requires credentials.
    • A map layer is a temporary (in-memory) data layer.
  • Styling:
    • SVG files are stored somewhere locally or remote.
    • Color Ramps are stored somewhere locally or remote.
    • Required symbol fonts are installed locally.
  • Others:
    • While some functionality allows to manage changed data paths or styles of a single layer, it's tedious to manage thus when there are dozens layers.
    • A plugin enables or changes a Layer source functionality. There are data resources which require plugins, which are eventually not installed. See e.g. Editable_GeoCSV_QGIS_Plugin GeoCSV.
    • A styling default changed after in a new QGIS version.

Solution

An obvious approach for a QGIS project and data publisher is to put everything - including data, styles and project settings - into one file.

When copying/moving project files to other people, it is necessary to manually collect all required files and update the project file. This is complicated. and it getos even more complicated when working with databases and secured webservices and with style files on different places

See also Martin Dobias' GSoC 2012-Proposal. It's related to the proprietary ArcGIS Layer and ArcGIS Map Packages and the standardized GeoPackage.

Discussion

The user must be able to specify what should be inside the project:

  1. link everything (no zipping, just plain XML as before)
  2. include everything (put all files into zip),
  3. hybrid (put some resources into zip, keep something as a link, e.g. put symbol SVGs into ZIP but keep original links to layers)

Internally the all-in-one projects could work in a fashion similar to ODT from LibreOffice or KMZ from Google Earth: All files required by the projects would be identified and put into a ZIP file (together with the project XML file).