Skip to content
This repository has been archived by the owner on Jun 7, 2021. It is now read-only.

Mobile GUI GSoC 2012

Marco Bernasocchi edited this page Aug 25, 2016 · 1 revision

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 attachment:qgis_mockups.tar.gz

Current state

Screenshots

Last build 21/08/12

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.

  1. The GUI is made completely with QML and consists of dialogs, buttons, text fields, animations, etc.
  2. 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++

Source

Due to inactivity the project is now at mbernasocchi’s Github

OLD: 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.

Todo

  • 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.