top logo
 

QGIS @ 4200m

One of the nice things of being freelance it that you can work on Sundays when the weather is horrible and get out on Tuesdays when it rocks ;) .
So Tuesday I decided to go test QGIS at high altitude and went to the Breithorn and the Pollux with my best friend for a nice winter end tour.

At the summit of Breithorn I took out my Galaxy, started QGIS and opened my basic project, turned on GPS and voilà… it all worked… even in high winds and -15°C ;)

Definitely time to get involved in using it and supporting its developement.

ciao Marco

Breithorn Screenshot_2012-05-08-11-31-24 Pollux

 


QGIS on Android using external GPS receivers

Thanks to FORNAT AG which sponsored me I could spend some time looking for solutions to make QGIS on android working with an external GPS receiver that sends NMEA strings.
It all boils down to the following:

  • via bluetooth works
  • via USB not yet (as soon as I get more sponsoring or time I’ll look more into it since I’ve some ideas).

To use an external bluetooth GPS you have to follow six easy steps:

  1. Turn of internal gps
  2. enable allow mock locations in settings>developer options
  3. install Bluetooth GPS app (there are others as well but I had some problems, this was the best for me)
  4. Pair the tablet and the gps receiver
  5. start Bluetooth GPS select enable mock locations provider and hit connect (here you can see if the connection works by checking the coords you see or even by looking on a google map)
  6. start QGIS, enable the GPS panel (view> panels > gps) and hit connect. that’s it

The only caveat is that you can’t check satellites and signal strength directly from within QGIS since the GPS data is relayed over the mock locations provider.

but for the rest it works as expected, now it would be cool if somehow it would be possible to connect a magic usb-to-bluetooth converter to our beloved usb only gps units…

ciao

 


QGIS on Android Phone

At FOSSGIS I was asked to try to install qgis on a very small android phone, I think it was a 3.2″ screen. the install went smoothly after making some space but then the problems came because of the small screen.
Eventually I thought about setting a smaller font size to make the UI scale more, the problem was that it was impossible to get to the size setting because the UI was to big.
As a workaround I created a QGIS.conf file with this content
[General]
IconSize=32
fontPointSize=4
and pushed it to the device using the android debug bridge like this:
adb push myQGISConfigFile.conf /data/data/org.qgis.qgis/files/Settings/QuantumGIS/QGIS.conf
On the next start the whole gui was nice and small and fitted the screen.

Here some screenshots from my Samsung galaxy 9000 with 4″ screen and a video demonstrating digitising (with pen and fingers), GPS, compass and zooming on the phone.

This video shows QGIS on a Samsung I9000 Galaxy S Android smartphone with 4.0″ screen. the point size in settings->option->general is set to 4

QGIS Multiview and globe screenshots

This screenshots have been created using the QGIS with the following plugins:

  • Multitemporal and multivariate data visualisation (http://hub.qgis.org/projects/multiview)
  • Scttergram identify (http://hub.qgis.org/projects/scattergramdentify
  • Globe Plugin
Screenshot-13 Screenshot-14 Screenshot-15 Screenshot-16 Screenshot-17 Screenshot-18 Screenshot-19 Screenshot-20 Screenshot-22 Screenshot-23 Screenshot-24 Screenshot-25 Screenshot-26 Screenshot-27 Screenshot-28 Screenshot-29 Screenshot-30 Screenshot-31 Screenshot-32 Screenshot-33 Screenshot-34 Screenshot-35 Screenshot-36 Screenshot-37 Screenshot-38


QGIS for android alpha 7

7, my luck number… So here you are, the latest and greatest QGIS for Android.
This release includes the super new pinch zoom tool, should have no blocking dialogs anymore (i fixed the attribute table) and the help->about shows now from which commit the package has been created.
The packages containing armeabi and armeabi-v7a code are still less stable that the armeabi only packages (the ones with the -armeabi suffix) which are still the preferred. For the moment the release packages are built with Debug symbols as well.

I hope you will enjoy this release, and remember that if you or anybody you know can help sponsor the development I would greatly appreciate it.
Btw, noticed the nice new yellow PayPal donate button ;) ?

Ciao Marco

QGIS for android gets Pinch zooming

Well, it is a super winter and there is a lot of snow here in Switzerland and all this makes me super happy which means that my productivity increases… here you are, the last and greatest improvement for QGIS on android: a fancy zooming map tool like you know from other applications like google maps.
The tool allows for:

  • panning
  • pinch zooming
  • double tap zoom in with Center
  • twofinger tap zoom out

Furthermore I added a close button to the attribute table so that there are no blocking dialog left. The attribute table doesn’t look perfect yet, but works well (a workaround to make it look better is to force it into a dock-widget by checking “Open attribute table in dock window” under Settings->Options->General
I’ll release soon a new version and look forward to your comments and support.

and here a video:

QGIS supports now an all new touch maptool that allows panning, pinch zooming, double tap zoomWithCenter and twofinger tap zoomOut

ciao Marco


QGIS for android alpha 6

Hi all, release time again… happens that just couple of hours after i pushed alpha5, the necessitas framework received a new update [1] that addresses some important issues. Meanwhile I managed to compile GEOS and GDAL with armeabi-v7a optimizations

[1]https://groups.google.com/d/msg/android-qt/NQCRsz92ois/C511seqSFwEJ

QGIS on android ALPHA 5

Hi all couple of days ago I pushed a new alpha version of qgis for android on android.qgis.org

This release includes all the goodies that I got to implement lately including: – right click support through longClick – shape file support – gps – compass – android 4 support – partial hardware optimization for armV7a (most newish devices have it) – no debug symbols

I m very happy with this release because it adresses and fixes all high priority bugs. Adding support for a armv7a optimized whit no debug symbols build increased greatly the speed of the app. The package you need to install is the same and includes both armv5 and armv7a code. Android will take care of using the correct version. Gdal and geos are not available yet in v7a code so the v5 versions will be loaded. I couldn’t test much the v7 code so I hope you can help me testing it. As well, on www.opengis.ch I published many videos and screenshots of qgis. As usual, please remember if you can (or if you know anybody that could) that sponsoring would help a lot implementing some more great features.

Ciao


QGIS on Android gets right click support

So, finally I managed to add the right click support to QGIS on android, I made a video demonstrating the current super status of QGIS on android. here you go: This addition was the last show stopper bug.

QGIS on Android videos

So, finally preparing for the next conferences, I made some videos demonstrating the current super status of QGIS on android. here you go: In this video I use all currently available features of QGIS on android. Part of the video


QGIS on android screenshots

In this post i’ll keep on adding screenshots of QGIS on android


QGIS gets Compass support

After implementing GPS support for QGIS on Android I’ve implemented a plugin that reads the internal compass readings and shows the value in a small dock widget.
All theese new features are available in the master-alpha4 version and the nightly.
Hope you enjoy


QGIS on Android gets GPS support

Lately I’ve been working on adding native GPS support to QGIS on Android, here is a short video showing how it works. A big thanks goes to the municipality of Schoten in Belgium which sponsored the developement. This functionality is included in the latest nightly builds as of yesterday.

GPS tracking on QGIS for android from Marco Bernasocchi on Vimeo.


Creating non-versioned shared libraries for android

While porting QGIS to android using necessitas I encountered the problem of versioned libs. Android does not support versioned libs and it is not going to. In the first vesions I used rpl -R -e libqgis_core.so.1.9.90 "libqgis_core.so\x00\x00\x00\x00\x00\x00\x00" $APK_LIBS_DIRand similar hacks to remove the version from the libs. But it was rather hacky. Then I found this post by Tom Russo where he mentioned how he changed his build process to force non versioned libs. I wrote him with some questions and finally, thanks to his hints, I managed to create a fairly general patch for libtool to make it generate android compatible configure scripts. I sent the patch to libtool and we’ll see what they think.diff --git a/m4/libtool.m4 b/m4/libtool.m4
index a9e20cf..a5cc8eb 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -2642,8 +2642,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
+ case $host_os in
+ # This must be Linux Android ELF which has no support for versioned libs.
+ linux-android*)
+ library_names_spec='$libname${shared_ext}'
+ soname_spec='${libname}${shared_ext}'
+ ;;
+ *)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no

Now, the problem is that this patch fixes libtool.m4 which is the file that is used when a project manager creates a configure script. So it will take time until libtool includes the patch, your project manager updates the configure script and so on. But, no problem, mean while you can just look for something similar in your configure file (I was very lucky using “this must be linux ELF” as search criteria) and replace it accordingly and reconfigure passing –host=arm-linux-androideabi (as you probably already do if you are reading this). I managed to crosscompile expat, gdal, geos, gsl, proj, libiconv and libcharset without version.
QGIS uses libpq (postgres client) to connect to some services, but there is no hint in the configure script about soname_spec and library_names_spec, so I searched for SO_VERSION and found it set in Makefile.shlib and adapted it accordingly. Bottom line is that you need to search creatively for anything related to soname, SO_VERSION and similar.

QGIS uses as well QWT, which is QMAKE based, in this case to generate non versioned libs it’s enough to add CONFIG += plugin to the .pro or .pri file.

Finally, in CMAKE you need IF (NOT ANDROID)
SET_TARGET_PROPERTIES(qgis_core PROPERTIES
VERSION ${COMPLETE_VERSION}
SOVERSION ${COMPLETE_VERSION}
)
ENDIF (NOT ANDROID)
in your CMakeList.txt and call cmake with -DANDROID

Hope this helps and that more and more people port cool libs to android.
Ciao Marco


GSoC 2011 final report

So, it is over, after 3 months working on QGIS for android as a Google Summer of code project it is now time to wrap up what I did and didn’t do.

First of all a QGIS android app exists now and it has many features including:
- reading/writing projects
- raster support
- spatialite support
- wms support
- (apparent – untested) wfs and postgress support
- partial shape files support (string attributes still chrash the app)
- Fully functional gui (SymbologyV2 doesnt work yet)
- (all?) core C++ plugins beside globe (any takers? ;)

Further more I created a series of build scripts that make it easier to set up a dev environement.

Unfortunately I didnt manage to implement live GPS tracking and a larger gui optimisation, but all in all I’m very happy with the results and seeing that few peoples are already testing it. Soon ill publish a video.

cheers
Marco


QGIS Android works!

image

Just a quick screenshot to show that qgis on android is now a working reality. Tomorrow I’ll make a video and so on. The major missing thing now is reading shp files ad maybe spatialite… maybe tomorrow. Now it’s sunday ;)
Ciao

test it now:


QGIS Android the first test map

image

image

Today I loaded the first data into qgis and although the mapcanvas stays black, in the map composer the data is shown. Here some screenshots.

GSoC 2011 weekly report #12

See my last posts. In short I managed to get qgis packaged as an apk and to properly run with only one major problem. The map canvas is always black. I ll investigate this till Tuesday.
Cheers


QGIS data providers and map canvas

After finishing with the gui(see previous post) i started testing the data providers.reading and writing shp files always ends in an app crash. Loading rasters, wms and gpx seems to work but the mapcanvas is never drawn. I have to investigate why. But probably it has to do with the draw used in qgis. The properties are there and get updated, but the canvasstays black. The same happens with decorations plugins like north arrow and copyright.
Next things i want to check is the shape error and the canvas problem. Then probably sqlite and gps.
Ciao Marco

QGIS on android has complete gui and supports translations

Hi I just managed to create an apk with al the resources needed by qgis. On the first runrun the application extracts this file to the proper location a thus the gui is now complete. This means as well that translations and crs databases now work properly. The gui works nice beside some small glitches. It is usefull to go under settings->general->icon size and set it to 32. The only inconvenient at the moment is that at the first startup the app shows a blackscreen while its copying the files for about 30 to 60sec so just be patient and remember that the whole app will takeup to 230mb (it installs on external storage by defaut). I tested th install on my transformer 3.2 and my galaxy 2.3.3and the install works flawless on both.

I wonder if this solves the “squares text problem” also. Tomorrow i ll do a video and will post it.


bottom

Powered by Django!