Mobile GUI GSoC 2012¶
Goal¶
The aim of this project is to create a new GUI for QGIS with basic functionality for using on small touch-screen Android devices.
You can get more information from my GSoC proposal
Mockups¶
Here is the expected result qgis_mockups.tar.gz
Current state¶
There are some bugs and TODOs below.
Development¶
How it works¶
The app is developed with Qt Quick, and QGIS core of course.
There are two parts, the GUI and some C++ classes that use QGIS core.
- The GUI is made completely with QML and consists of dialogs, buttons, text fields, animations, etc.
- The C++ part do the actual work: adding layers, creating spatialite databases, the map tools, etc. This part is based STRONGLY on the desktop QGIS app, even there are some copied files with only a couple of modified lines.
Each part is isolated, but the Qt Quick runtime environment provides bindings that allows to expose data from C++ to QML and viceversa. You can read some useful documentation here:
Extending QML
Binding QML and C++
The project is hosted on Github. All the code related with the mobile app is in src/mobileapp/
Map¶
Render the current visible layers. I use QgsMapCanvas and expose it to QML through QGraphicsProxy.
On this page you can:- Zoom and pan the map using gestures.
- Select a tool to edit the features.
- Use the GPS for adding features.
Legend¶
Show the list of loaded layers using a ListView on QML. A ListModel is needed, so I implemented a QAbstractListModel that have a reference to the loaded layers and a reference to the map canvas.
On this page you can:- Add and delete layers.
- Enable/disable visibility and editing of a layer.
- Reorder layers.
- Custom form support (QML forms?).
General todos¶
- Style for message boxes.
- Use a declarative extension to add custom QML types and exposed Qgis classes.