ILWIS Mobile

Introduction

ILWIS Mobile will be a mobile application for android making use of the ILWIS framework. More information can be find in the blog post.

About the student

I, the student that is working on this project, am Bouke Pieter Ottow. I study Geo-Information Science at the university of wageningen and I have a bachelor in Civil Engineering. Until now I worked on several small projects on developing android apps with a geospatial focus. More about me can be found on my LinkedIn profile. My mentors are Rob Lemmens, Martin Schouwenburg, Henning Bredel and Bas Retsios.

References

ILWIS Objects

Source Code

The code of the app can be found on GitHub.

Progress reports

GSoC report week #13 (11/8/2014) | ILWIS Mobile

Status

  • Current location is shown with a round marker on the map, the location is refreshed each second with the input from the gps of the device.
  • When a template is downloaded a dialog pops up and asks wether or not to download the historical observations. In the map-tab of the template there is a button; show observations with a time-filter.
    13_1_historical_observations.png 13_2_markers.png
    When the show observations is pressed the downloaded (xml) observations are parsed and shown on the map. A marker is clickable and shows then the data of the observations.
    13_3_observation.png
  • On Thursday we had a field test. Overall the result was good, the main functions worked correctly. There were some (minor) things which should be improved in futere versions. And there are some recommendations for future functions that can be included.
  • I made a start with the technical documentation including the setting up of the developing environment.

Problems

The update location button at the record observation tab seems to be not working.
There might be a little shift in the markers maybe due to the size of the image.
The upload all button doesn't work always, especially not when connection is slow.

Next tasks

  • Finish the technical documentation.
  • Structure the code.
  • Add readme and information in a wiki to the github repo.
  • Start with final blogpost.
  • Make a demo.

GSoC report week #12 (4/8/2014) | ILWIS Mobile

Status

  • When an observation is uploaded the response of the server is shown (see screenshot below). If the uploading fails completely and there is no response, there will be a message that it failed.
    12_1_server_response.png
  • The "continue last template" button works also after the app is restarted.
  • The names of the templates are also stored with spaces, so in the lists it is shown with them.
  • The location (coordinates) of the observation can be changed with a text input field, but it is not neccesary.
  • When a template is downloaded, the app searches the metadata to see if there is a basemap available. If so it asks to download it:
    12_2_download_basemap.png
    When a template is opened of which a basemap is downloaded an extra tab is shown with "Map". When clicked the downloaded map (png image) is shown which can be panned with taps and zoomed with the buttons. The map shows now two markers, the round one will be the current location of the observer (from the GPS) and the other one a location of an historic observation. It looks like this:
    12_3_basemap.png

Problems

The QT Location module is not available anymore in QT 5. This makes it harder to make a nice map. I solve this to just show an image and program the markers and actions myself.

Next tasks

  • Current location (from the GPS) should be shown on the map.
  • Previous observations should be downloaded and parsed from xml.
  • Previous observations should be shown as markers on the map.
  • Coming Friday I will have a field test of the app at the ITC, Enschede.
  • I will create a concise document with how to set up the developing environment.

GSoC report week #11 (28/7/2014) | ILWIS Mobile

Status

  • Downloading a template from the server works. First is shown which templates there are:
    10_1_download.png
    When one is selected it is downloaded and available for making observations.
  • For all the four usecases (as shown above) a QML template is made which is available on the server.
  • A settings section is added in the top menu:
    10_2_settings.png 10_3_settings.png
    Here it is possible to give the server location and the name of the observer. A default is given. This is stored and used for the uploads of the observations.
  • The list which is shown to select a template is esthetically nicer:
    10_4_select_template.png
  • When an observations is made and the save button is tapped (the screen is shown in updat #10 and #9) the data of the observation is stored in a local textfile.
  • In the main menu a button "Saved observations" is added (as visible in the screenshot above). When tapped an overview of the saved observations is shown:
    10_5_upload.png
    It is possible to select one and delete it or upload it. When it is uploaded it is also deleted. With "Upload All" all observations are uploaded.

Problems

No currently unsolved problems

Next tasks

  • When an observation is uploaded there is a response from the server (if it is succesful or not) this should be shown to the user.
  • The "continue last template" button should also work after the app is restarted.
  • In the list of templates and observations it should show the template name with spaces.
  • I will create a concise document with how to set up the developing environment.
  • It should be possible to change the coordinate of the observation manually.
  • I will make a start with showing a background map.

GSoC report week #10 (21/7/2014) | ILWIS Mobile

Status

1. Template file is cut in two and added to the list (from dowload folder for now)

The template file looks (for example) like this:

gatherer_template.PNG

The first metadata part has 4 fields per input:

1) generic field name.This field name is used to couple UI and information in request/responses in a way that is generic. The field id has a different meaning in each of contexts that is used.
2) Datatype of the field. Either a single value ( e.g. char or position) or a set of values which can be shown in a combox or listview. The set items are always seperated by semi-colons
3) A more descriptive id for the field. Not striclty needed but it makes interpretation of the template line bit easier
4) Marker if the field is read-only ( seen from the client side) or readwrite, meaning that data should also be written back to the server. S2C = readonly, C2S = read/write

The second part is qml code for the viewing of the template. At the moment this file is downloaded in the app from the download folder of the android mobile (because the server is not yet online), then cut in two and the QML part stored as a QML file. This file is added to a list, so the template can be selected for an observation.

2. Template is a little bit nicer with qt quick controls

Some qt quick controls are used which makes it easier to make a standard field like a text input or comobox look pretty. For example the Water Point Mapping template looks like this:

screenshot_10_1_small.png screenshot_10_2_small.png

with the selection of the water color popping up when tapped.

3. GPS position and date/time are added

When the template is opened the gps position and data/time are automatically added. When the gps is turned off it uses the course location based on the telephone signals.

Problems

No currently unsolved problems

Next tasks

  • The server will be online today and then the downloading of a template should first look at the server which templates are there to download and then download the selected template from the server to the phone.
  • Some more qml's should be made for other use cases (land use mapping and health)
  • The observers name should be included
  • Observation should be stored locally
  • Observation should be uploaded to the server

GSoC report week #9 (14/7/2014) | ILWIS Mobile

Status

I programmed in QML a (functional) basis for the app. This is the opening screen with a main menu:

screenshot_9_1_small.png

It gives three options about templates. With a template an observation can be recorded. The first one continues with the last used template, the second gives the option to select a template from the ones that are already in the app. The last option gives the function to download a new template from a server. For now only the second option works (yet). It gives this screen:

screenshot_9_2_small.png

It has a list with the local available templates, in this case 'Water access points' and 'Animal observation'. This list is populated from c++, now still static but coming week probably dynamically regarding the dowloaded files. By selecting one item of the list the record observation screen appears:

screenshot_9_3_small.png

This is one of the 'templates'. It has three input fields for normal strings and one dropdownmenu to choose of an enumerator.

Problems

The problem I am struggeling with today is to load a QML file (from QML) that is downloaded from outside the app, so it is not in the qrc file.

Next tasks

  • A downloaded template file should be cut in two and then the QML part loaded in for the observation.
  • The template should be downloaded from a server.
  • Save an observation

GSoC report week #8 (7/7/2014) | ILWIS Mobile

Status

  • Finished my course for my study where I made another app, code of this can be found here
  • Met with mentors at ITC last Friday
  • Made a planning
  • Put the code on GitHub here
    Now it just consists of the first screen:

Problems

I have been working on a good design of the different windows needed for this app. QML doesn't provide an easy method but the method described here seems handy. I am trying to implement this method and the first screen is loaded but the second after the button is clicked doesn't work yet.

Looks now that it isn't working on desktop but it is on android. To be continued in next update.

Next tasks

  • Making (coding) design for the screens
  • Make the input screen flexible from available templates.

GSoC report week #7 (30/6/2014) | ILWIS Mobile

Status

  • Wrote mid-term blogpost
  • Wrote mid-term evaluation
  • Put some code with screenshot on GitHub

Problems

Next tasks

  • Finalizing (report and presentation) my course for my study (Code for the app I programmed there can be found here and the apk can be found here)
  • Meeting with mentors at ITC
  • Refine planning for coming period

GSoC report week #6 (23/6/2014) | ILWIS Mobile

Status

  • Created a test app in qml which used a class from c++.

Problems

Next tasks

  • Write blogpost
  • Write mid-term evaluation
  • Work on framework for the gatherer app

GSoC report week #5 (16/6/2014) | ILWIS Mobile

Status

  • Made some tutorials on linking objects made in c++ with QML.

Problems

Next tasks

  • Design gui framework.
  • Continue building some gui in QML.

GSoC report week #4 (9/6/2014) | ILWIS Mobile

Status

  • Continued practising on QML

Problems

I had difficulties making the connection of QML with c++. So for example, handling the pressing of a button in c++, but which is made in QML.

Next tasks

  • Find out what is a convenient flow in the code with regards to what in QML (or Java script) and what in c++.
  • Continue building some gui in QML.

GSoC report week #3 (2/6/2014) | ILWIS Mobile

Status

  • I started to make a QML layout
  • I practised with c++

Problems

No unsolved problems

Next tasks

  • Continue working on a first screen lay-out with QML for a data filling template.
  • Getting more experience with c++

GSoC report week #2 (26/5/2014) | ILWIS Mobile

Status

Start of the project.
  • I finished my blog
  • I put content on the wiki
  • I did tutorials on c++

Problems

No unsolved problems

Next tasks

  • Continue working on a first screen lay-out with QML for a data filling template.
  • Getting more experience with c++

GSoC report week #1 (19/5/2014) | ILWIS Mobile

Status

Start of the project.

  • I explored QT and QML (made some tutorials).
  • I met my mentors in a meeting at the ITC, Enschede.
  • I drafted my first blog.

Problems

None

Next tasks (for 8 hours)

  • Further Experimenting with the tools to use (QT, c++, QML), I will make a first screen lay-out with QML for a data filling template.
  • Finish blog
  • Start-up wiki for the project.
Topic attachments
I Attachment Action Size Date Who Comment
10_1_download.pngpng 10_1_download.png manage 14 K 28 Jul 2014 - 12:10 BoukePieterOttow  
10_2_settings.pngpng 10_2_settings.png manage 17 K 28 Jul 2014 - 12:11 BoukePieterOttow  
10_3_settings.pngpng 10_3_settings.png manage 12 K 28 Jul 2014 - 12:11 BoukePieterOttow  
10_4_select_template.pngpng 10_4_select_template.png manage 21 K 28 Jul 2014 - 12:11 BoukePieterOttow  
10_5_upload.pngpng 10_5_upload.png manage 22 K 28 Jul 2014 - 12:11 BoukePieterOttow  
12_1_server_response.pngpng 12_1_server_response.png manage 23 K 04 Aug 2014 - 13:42 BoukePieterOttow  
12_2_download_basemap.pngpng 12_2_download_basemap.png manage 22 K 04 Aug 2014 - 13:42 BoukePieterOttow  
12_3_basemap.pngpng 12_3_basemap.png manage 162 K 04 Aug 2014 - 13:42 BoukePieterOttow  
13_1_historical_observations.pngpng 13_1_historical_observations.png manage 23 K 11 Aug 2014 - 08:46 BoukePieterOttow  
13_2_markers.pngpng 13_2_markers.png manage 152 K 11 Aug 2014 - 08:46 BoukePieterOttow  
13_3_observation.pngpng 13_3_observation.png manage 85 K 11 Aug 2014 - 08:55 BoukePieterOttow  
8_first_screen.PNGPNG 8_first_screen.PNG manage 5 K 07 Jul 2014 - 15:32 BoukePieterOttow  
Screenshot_2014-07-14-11-46-49.pngpng Screenshot_2014-07-14-11-46-49.png manage 43 K 14 Jul 2014 - 13:10 BoukePieterOttow Main Menu
Screenshot_2014-07-14-11-47-11.pngpng Screenshot_2014-07-14-11-47-11.png manage 36 K 14 Jul 2014 - 13:10 BoukePieterOttow Select Template
Screenshot_2014-07-14-11-47-24.pngpng Screenshot_2014-07-14-11-47-24.png manage 67 K 14 Jul 2014 - 13:10 BoukePieterOttow Water Template
gatherer_template.PNGPNG gatherer_template.PNG manage 20 K 21 Jul 2014 - 12:08 BoukePieterOttow  
screenshot_10_1_small.pngpng screenshot_10_1_small.png manage 21 K 21 Jul 2014 - 11:52 BoukePieterOttow  
screenshot_10_2_small.pngpng screenshot_10_2_small.png manage 18 K 21 Jul 2014 - 11:52 BoukePieterOttow  
screenshot_9_1_small.pngpng screenshot_9_1_small.png manage 11 K 14 Jul 2014 - 13:30 BoukePieterOttow  
screenshot_9_2_small.pngpng screenshot_9_2_small.png manage 8 K 14 Jul 2014 - 13:30 BoukePieterOttow  
screenshot_9_3_small.pngpng screenshot_9_3_small.png manage 16 K 14 Jul 2014 - 13:30 BoukePieterOttow  
Topic revision: r21 - 27 Jun 2016, UnknownUser
Legal Notice | Privacy Statement


This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback