qgis for android
TRANSCRIPT
OPENGIS.CH
Quantum GIS on Android
Marco Bernasocchi
MSc in Geography with specialisation in GIS UZH
Independent programmer
Ski and Dive instructor
OPENGIS.CH
In this talk...
● Tell you about QGIS and the people who use it & make it
● Explain why it is important that projects like QGIS exist
● QGIS in Natural sciences● QGIS on Android● Live demo, discussion & questions
Part of this presentation are based on Tim Sutton's QGIS for humanity presentation: http://linfiniti.com/2011/11/zurich-qgis-developer-meeting-summary-november-2011/
OPENGIS.CH
Some history: proprietary GIS
● Pay to use model● Pay for support model● Pay to share model● Good software for those who can afford it, no
software for those who can't
Cc image : http://en.wikipedia.org/wiki/File:Paul_Wall.jpg
OPENGIS.CH
But, sometimes life is hard...
OPENGIS.CH
...you can barely afford good hardware infrastructure... Let alone the cost of
expensive software
OPENGIS.CH
What if there was another way?
OPENGIS.CH
...to build something bigger than ourselves...
OPENGIS.CH
...that many, many DO enjoy...
...hundreds of thousands...
OPENGIS.CH
...all around the world...
OPENGIS.CH
...and many help to build...
- slide courtesy G. Sherman
OPENGIS.CH
To make something awesome like Linux, like LibreOffice, like GIMP...
Please welcome: “QGIS and the Open Source world”
OPENGIS.CH
History of QGIS development
http://pvanb.wordpress.com/2011/01/10/how-qgis-has-grown-over-the-years/
OPENGIS.CH
QGIS development this year
www.youtube.com/watch?v=3D60XJGerDFWI
OPENGIS.CH
Now lets see some use cases...
OPENGIS.CH
Emergency response
OPENGIS.CH
Emergency response
OPENGIS.CH
Animal Tracking
OPENGIS.CH
Animal Tracking
OPENGIS.CH
Filter for Zebra
OPENGIS.CH
Zebra only
OPENGIS.CH
Web map publishing
OPENGIS.CH
Planning
OPENGIS.CH
Marster Thesis in GIS
● Visualising multivariate spatio-temporal data● Design and evaluation of an open source
software environment based on 3D DEMs and multiple linked views
OPENGIS.CH
Globe
OPENGIS.CH
Globe 3D anaglyph
OPENGIS.CH
Globe 3D on a geowall
OPENGIS.CH
Linked Visualisation Framework
OPENGIS.CH
Timeplot Summit
OPENGIS.CH
Timeplot Face
OPENGIS.CH
Helix Summit
OPENGIS.CH
Helix Face
OPENGIS.CH
QGIS Features
● PostGIS and SpatiaLite, most vector formats supported by the OGR library, including ESRI shapefiles, MapInfo, SDTS and GML.
● raster formats supported by the GDAL library*, such as digital elevation models, aerial photography or landsat imagery,
● GRASS locations and mapsets,
● online spatial data served as OGC-compliant WMS , WMS-C (Tile cache), WFS and WFS-T
● Convert other GPS formats to GPX, or down/upload directly to a GPS unit
● Perform spatial analysis, including: map algebra, terrain analysis, hydrologic modeling, network analysis
OPENGIS.CH
QGIS Features
● on-the-fly reprojection
● print composer
● overview panel
● spatial bookmarks
● identify/select features
● edit/view/search attributes
● feature labeling (with data driven labelling as well)
● vector diagram overlay
● advanced vector and raster symbology
● graticule layer
● map decorations like north arrow, scale bar and copyright label
OPENGIS.CH
QGIS Features
● digitizing tools for vector features
● field and raster calculator
● Georeferencer plugin
● Publish your map on the internet using QGIS Server or the "Export to Mapfile" capability (requires UMN MapServer)
● Adapt QGIS to your needs through the extensible python and C++ plugin architecture.
OPENGIS.CH
Subprojects
● QGIS Browser● QGIS Server● QGIS Client● QGIS on Android
OPENGIS.CH
Questions so far?
See you after the break for “Why and how go mobile?”
OPENGIS.CH
Why go mobile? Because sometimes civilisation is far away...
OPENGIS.CH
Why go mobile?
● Work on the terrain● Lightweight and portable● Automatic georeferencing and bearing● Possibility of custom calculations at input time
depending on position, bearing, …● So we can get off our offices :)
OPENGIS.CH
Why to go mobile?
● Finally widespread of (almost) adequate hardware at “normal” prices
– Good performance– Good battery life– Integrated GPS and compass– Finger and pen input– In near future rugged tablets
● Strong development of software● It's modern ;)
OPENGIS.CH
How to go mobile? By getting our hands dirty...
OPENGIS.CH
How to go mobile?
● Choose a platform– IOS and you'll have little →
hardware choice– Win mobile and you'll be →
shaking hands with Lucifer soon :) and have almost no devices available
– Android Many devices, →Linuxish, Trendy
● Adapt UI to touch
OPENGIS.CH
Strategy
● Two different version– First a 1-to-1 port of the FULL desktop
application with the same GUI ● targeting Tablets (10.1”)● Started as a Google Summer of Code project
– Later, a new application using an ad-hoc minimalistic GUI optimized for smaller screens like smart-phones
● Development not started yet
– Application installer
OPENGIS.CH
Let's get technical: Technologies
● QGIS: Qt (C++) + cmake + external libs (GDAL, GEOS, Proj4, expat, GSL, Iconv, QWT, sqlite, libpq, open-ssl)
● ANDROID: Java + Android ant build system● NDK (android native development kit): Java + C++ +
JNI + Android ant build system● NECESSITAS (Qt-android port): Qt + qmake
= BIG complex mess !!!
OPENGIS.CH
Let's get technical: implementation
● Necessitas consists of:– The Android port of the Qt libraries– Ministro II, the Qt libraries manager for android
(a sort of apt)– Java android application that takes care of the
Java to C++ (via JNI) binding of the UI and libraries dependency management.
OPENGIS.CH
Let's get technical: implementation
● QGIS on Android consists of:– The cross compiled dependencies (in form of
unversioned .so files)– An .so file (shared object) of QGIS (there is no
executable binary) and of all the QGIS libs– A necessitas based Java application
OPENGIS.CH
Let's get technical: workflow
● Cross compilation of dependencies● Cross compilation of QGIS linking the
croscompiled dependencies● Building and enhancing the Java wrapper● Packaging● Distributing● All by scripts and now automatically on the
server as well
OPENGIS.CH
Let's get technical: application workflow
● Install apk (using the installer)● On first run, the assets (svg, translations, …)
are extracted to the filesystem (this could be optimized)
● A service call is issued to Ministro II to deliver the required Qt libs. If the libs are not installed, Ministro asks to download them
● After all dependencies are load the qgis.so is loaded and its main gets executed
OPENGIS.CH
Current limitations
● No GPS nor compass reading yet● No right click gesture● Shapefiles bug preventing use of shapefiles
with strings in dbf● Some dialogs are too big● No SSL● Debug version with no armV7 optimization
OPENGIS.CH
Bug Tracker
OPENGIS.CH
Current features
OPENGIS.CH
Use cases: on terrain digitizing
● Central DB (Postgress)● Save to spatiallite locally● Go on the field and get your hands dirty● Back in the office, sync it back to the Postgress
DB
OPENGIS.CH
Multiple users on terrain digitizing
● As soon as Android QGIS will support Python plugins
OPENGIS.CH
Next Plans
● Implement GPS● Fix Shape files bug● Implement Right click gesture (long click)
OPENGIS.CH
Future Plans
● Implement Compass● Add ssl● Optimize build for arm-v7a● Fix “all” bugs at http://hub.qgis.org/projects/android-qgis/issues
● Add Python support● Create a new UI for the mobile version
OPENGIS.CH
Conclusion
We build it for you to use!
OPENGIS.CH
Conclusion
When you improve QGIS (by contributing time, money, code, translations, help on the mailing list
etc.), there is a huge multiplier effect that you don't get with proprietary software:
“By helping yourself, you help others”
OPENGIS.CH
Conclusion
Use it and join our community – become a participant in the process of making the tools you
use.
OPENGIS.CH
Conclusion
There are many other Free and Open Source GIS tools out there!
http://osgeo.org
OPENGIS.CH
What next?
You can get your copy at
http://download.qgis.org http://android.qgis.org
Visit the home page at http://qgis.org
Visit QGIS' blog to find out about us and to read many informative articles:
http://planet.qgis.org
OPENGIS.CH
Demos
● Multiview Plugin● Globe● Android● Offline editing