Skip to content

spanc29/qmap

 
 

Repository files navigation

QMap - README

Authors

Nathan Woodrow, Damien Smith

Version

1.0

QMap is a simple to use, simple to configure, data collection program built by Southern Downs Regional Council that uses QGIS. QMap is a QGIS Python plugin that removes most of the interface and replacing it with a simple to use interface for data collection. The program is only in early alpha stage but is functional and activly worked on.

Although this project is written as a QGIS plugin it is designed to be run in in it's own QGIS sandbox using the --config path command line option of QGIS. This means that it acts like a standalone program and will store its settings away from the normal QGIS install. This is to provide a controlled QGIS environment with a minimal interface

As QMap is just QGIS you can use your normal QGIS project files (.qgs) in order to create mapping projects. Forms are loaded based on the naming of layers in the project. E.g. A form can be bound to the layer "Sewer Main" and will be useable in any project that includes a layer with the name "Sewer Main". Note QGIS allows you rename layers without renaming the underlying file name.

Requirements

  • Latest development QGIS Version (this is due to bug fixes in master)
  • mock (for Python tests)
  • Qt Designer (for form building)
  • Something to install it on (some kind of fancy tablet PC)

If you want SQL Server syncing support

  • MS SQL Server 2008 (express or greater)
  • .NET 3.5 (or greater)
  • Microsoft Sync Framework

OSGeo4W Packages

  • qgis-dev
  • qt4-devel

Syncing

At the moment syncing is done using MS SQL Sync Framework as it takes away a lot of the leg work for MS SQL Server 2008 based layers.

If syncing support is not needed you can just remove the button from the interface and and call build.py with --with-mssyncing=False. Syncing support for different data sources e.g. PostGIS, SpatiaLite might added later.

Program Layout

There are two parts to QMap. - The client program and - The client manager

Client Program

The client program includes a QGIS plugin, a bootloader to load QGIS using --configpath, and depolyed forms and projects.

The client progam can be depolyed to a client using:

python build.py --target=Touch --with-tests=False deploy

with Touch being defined in targets.ini as:

[Touch]
client : \\computername\path\to\desktop
projects : Water.qgs
forms : formWater

See /docs/README for more information

The client Manager

The client manager is the side of the program that contains the all depolyable forms and projects, tools to build the client project, tools to depoly forms and projects to the client/s.

Forms and projects are stored under /project-manager/. Forms should be added into the /project-manager/entry_forms folder and projects into the /project-manager/projects/ folder.

Project and forms in the /project-manager/ folder can then be used inside targets.ini to depoly different forms and projects to different clients by running:

python build.py --target=Client1 deploy
python build.py --target=Client2 deploy
python build.py --target=Client4 deploy

With Client1, Client2, Client4` being different devices with different forms and projects. Client Manager and Data +++++++++++++++++++++++ |name| takes a hands off approach to data management in that it will not manage, copy, move, or otherwise touch your project data. Data should be managed by the admin of the clients. The best way to make portable project files is to use a database on the client and build a project using a mirror of the database on the admins machine, or else you can use relative paths in the project file. **Example of using relative paths:** On admin machine in/project-manager/projectsfolder: :: myproject.qgs data |-- layer1.shp |-- layer2.shp |-- layer3.shp |-- rasterlayer.tiff After using: :: python build.py --target=Client1 deploy Themyproject.qgsfile will be depolyed but not the data. Copy the data into{deploypath}/QMap/app/python/plugins/QMap/projects/and the project will open the data using relative paths. Provided of course that your project file is saved in QGIS with relative paths. Running the sample ------------------- - Download the sample data from https://github.com/downloads/NathanW2/qmap/sample_data.sqlite - Run make_win.bat in the OSGeo4W shell. Making sure --target is set to Sample. - Save sample_data.sqlite intoC:QMapapppythonpluginsQMapprojects- Lauch QMap.bat from insideC:QMap- Load theTrees (Sample)`` project from the project list.

License

QMap is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 (GPLv2) as published by the Free Software Foundation.

The full GNU General Public License is available in LICENSE.TXT or http://www.gnu.org/licenses/gpl.html

Disclaimer of Warranty (GPLv2) --------------

There is no warranty for the program, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. Should the program prove defective, you assume the cost of all necessary servicing, repair or correction.

Limitation of Liability (GPLv2) --------------

In no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who modifies and/or conveys the program as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if such holder or other party has been advised of the possibility of such damages.

About

A simple data collection program built using QGIS and Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published