We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Input: A touch friendly mobile app for data collection

00:00

Formal Metadata

Title
Input: A touch friendly mobile app for data collection
Title of Series
Number of Parts
295
Author
Contributors
License
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Data collection is an essential part of most GIS users. There are several mobile apps (open source and proprietary) which can be used carry out such tasks. We have extended QGIS libraries to take advantage of [QT Quick framework](https://doc.qt.io/qt-5/qtquick-index.html) and introduced [QGIS Quick library](https://github.com/qgis/QGIS-Enhancement-Proposals/issues/109). QGIS Quick library has become a part of the official QGIS project and it adds the possibility to create custom mobile apps. Just like plugin architecture for desktop QGIS allows great flexibility to introduce custom functionality, QGIS Quick library provides similar groundwork for mobile mapping apps. [Input](https://github.com/lutraconsulting/input) a free and open source mobile app has been developed, leveraging on the new QGIS Quick library.
Keywords
129
131
137
139
Thumbnail
28:17
outputDifferent (Kate Ryan album)Presentation of a groupoutputField (computer science)TrailMobile appOpen sourceSlide ruleBitCartesian coordinate systemSoftware developerWave packetHuman migrationInformation technology consultingTouch typingMobile WebDemo (music)Lecture/Conference
outputFunction (mathematics)Interface (computing)TouchscreenGreatest elementTouchscreenFunctional (mathematics)Mobile WebCartesian coordinate systemKeyboard shortcutTerm (mathematics)BitOpen sourceUser interfaceLimit (category theory)Open setTablet computeroutputComputer animation
Digital photographyOperator (mathematics)Software developerArtistic renderingComputer animation
Form (programming)Artistic renderingoutputSynchronizationHypermediaSystem administratorArchaeological field surveyServer (computing)Form (programming)Set (mathematics)Electronic visual displayDemo (music)Configuration spaceShared memoryFile formatWritingDifferent (Kate Ryan album)Row (database)DatabasePoint (geometry)Computer fileOpen sourceRevision controlConnectivity (graph theory)CloningSign (mathematics)Cartesian coordinate systemDefault (computer science)Boolean algebraMenu (computing)Type theoryGrand Unified TheoryTesselationConnected spaceSoftware testingIntegrated development environmentTerm (mathematics)InternetworkingProjective planeService (economics)Multiplication signSynchronizationTemplate (C++)Digital photographyClosed setArchaeological field surveyMereologySystem administratorAuthorizationInterface (computing)AuthenticationWeb browserMultiplicationCollaborationismHypermediaWeb applicationArtistic renderingLibrary (computing)outputLevel (video gaming)Presentation of a groupDataflowThomas BayesVideo gameWeb 2.0Right angleLoginMatching (graph theory)GoogolCuboidDrop (liquid)WeightField (computer science)FreewareComputer animation
Projective planeoutputMenu (computing)Computer animation
Projective planeoutputComputer iconMultiplication signMenu (computing)Web pageConnected spaceInternetworkingDigital photographyServer (computing)HypermediaMathematicsQueue (abstract data type)Archaeological field surveyForm (programming)Greatest elementBitMatrix (mathematics)Type theoryPoint (geometry)Graphics tabletCuboidComputer animation
SynchronizationRevision controlStreaming mediaPolygonLine (geometry)AdditionAsynchronous Transfer ModePoint (geometry)Computer animation
PlanningThresholding (image processing)Set (mathematics)outputLevel (video gaming)Green's functionWhiteboardSource codeComputer animation
Ljapunov-ExponentRevision controlPlanningMathematicsImplementationoutputProjective planeMobile appServer (computing)BitLibrary (computing)Image resolutionClient (computing)GeometryDifferenz <Mathematik>Sign (mathematics)Computer animation
Connectivity (graph theory)PlanningDemo (music)Process (computing)Goodness of fitCoefficient of determinationAdditionServer (computing)Image registrationMereologyService (economics)Mobile appFile formatOpen sourceDifferent (Kate Ryan album)Beat (acoustics)outputMilitary baseTerm (mathematics)Front and back endsOffice suiteComputer fileRevision controlImage resolutionPlastikkarteBitAsynchronous Transfer ModeVector spacePlug-in (computing)Quantum gravityLecture/Conference
Transcript: English(auto-generated)
Okay, so most of you were here for the first presentation of this track. We're doing all kinds of different mobile field applications. As I said, it's nice weather, we have a field day and we're all locked up here and here.
So I'll give it to you for input. There you go. Afternoon all. Okay, I directly go to the presentation, input touch friendly mobile app. The overview is a bit of a slide on introduction and then why we went through another application.
And then hopefully, yeah, and then hopefully a demo. Lutra Consulting, it's a software development company mainly in UK.
We do consultancy and migration to open source GIS and training. Okay, why input? When we looked at other applications for mobile and tablets in open source,
we figured out that there is still room for yet another application. Because unlike desktop, mobile is a bit more wider audiences and more usages and limited inputs in terms of adding mouse and keyboard to add data
so we can optimize the user interface and have another application. So the main goal was to have a simplified interface so that it's usable on smaller devices. And by design, we limited the functionalities.
So these are some screenshots and you can see there aren't many buttons on the app and if you can operate Google Map, you should be able to operate this software as well. Then another big issue we had was choosing the rendering engine.
We decided to go with QGIS and based on the great work of other QGIS community developers, we created the library QGIS Quick so that it allows you to create customized application. We created input on it but if you want to build your own application,
you should be able to build that, not exactly as simple as plug-in but in future hopefully it should be easier to grab different components of QGIS Quick and build your own applications, customized way. And rendering and forms are based on QGIS.
So that was the rendering and form side. The other shortcoming we have seen in most of open source GIS applications for mobile was data synchronization. There wasn't a clear workflow for users to collect data
and usually use it in a collaborative way to collect data in a team. It was always you had this offline download data, go to field, have your USB cable ready when you come back or use some third party Dropbox
or Google Drive or some other services to update your data. So what came up, we built a service around that called Merging Service. It allows you to do all those things I've mentioned.
It's web-based service so it synchronizes your data, your QGIS project and media. It versions your data and you can do collaborative editing with multiple people editing the same data. And it has got authentication and authorization so you can set it up for many users,
share data, share projects with different user permissions and then start working on project. We had also, inspired by other closed source applications, created some features like templates.
So as a data administrator you can create a template and your user can just check out that template and they have got already all the data and ready to survey so they don't need to spend time in QGIS to set up the project. And also you have got cloning projects.
If you like a project, if it's public, you can clone it or if it's already shared with you, you can clone it as well. We tried to be inspired by GitHub and GitLab workflow basically, both in terms of data versioning. So what we are trying to do is to create some kind of environment for geodata.
So this is a merging interface. User logs in. You can see the projects, the data usage.
You can create a project. Then on the project you can see different versions. For example, two file additions, one file edited. You can even roll back at some point to different versions. It's not still available on the interface, but the database has got all the records of your versions.
And you can share your project with other merging users with different permissions, read, write and ownership. And then for creating data, as I said, creating project, if somebody has got some project templates,
you can just clone those projects and use those. And for that also we came up with a plug-in in QGIS so you can connect to your QGIS, in QGIS browser,
connect to merging and it will populate the same interface as your merging web. It will appear in your browser. You have got my project shared with me and explore which are public. You log on to the service and you will be able to create project,
upload projects, delete projects and synchronize projects. And typical workflow we have considered was you have a data administrator. He or she will set up the project, set up the forms, survey layers,
create map themes and upload the projects to merging and shares it with different users. And then surveyors will be just worried about collecting data and press download, sorry, to download the data, collect data and press upload to upload it so they don't need to deal with the project set up
and all the complicated QGIS part of it. So let's look at the demo project I have prepared for Bucharest. This project is, as you can see in QGIS, I have got it here, Fast4G public.
I have downloaded it. To download it, I need to first log in to merging, which you can first need to install the project and then after registering you should be able to log in here,
test connection and then if you have internet connection, hopefully my internet connection is not good, but it will give you an okay. Connection failed. Anyway, you will see the project here
and then the things that I have set up here is the template. So I have aerial photo, which is XYZ tile. So whatever file formats you support in QGIS will be supported in input. It uses the guts of QGIS.
You don't need to be worried about your data formats. And then you have got some layers, OSM for background map, two survey layers, point of interest and path. You can style the layer and set up a form for that. The way I have set up the form, I can show you briefly.
For example, FID, I've hidden it. Name, it's a free text. Type is a drop-down menu. Access to public is Boolean. Survey date is a calendar. Photo is an attachment. So you can take a photo with your phone when you collect data. And next survey, it's a slider.
And X and Y for the coordinate, which supports the default value. So you put dollar sign X. And automatically when you collect a point, it will pick the X for that point. And also there are some extra configuration under the display to show a preview, Google map-like preview of the feature when you tap on it.
I'll show you shortly. And then the other setting is to, on the data sources, you need to make sure only your layers that you want to edit in input are not readable.
The rest of them, all the vectors, you need to make them read only. As I said, this workflow is mainly for data administrator. Once they have set up this form and this project, they can upload it and others can clone it and create template out of it. Once the project is ready, you can synchronize it.
I've already uploaded it, but by pressing synchronize, it synchronizes the data back to the server. And you will be able to see the server here that it's been updated. Somewhere here, I haven't updated it, but 18 hours ago it was updated.
And you can see the person who has edited it as well on your history. So it was me and I didn't do any, I edited one layer.
So that project is now ready to be used in input. If I move to input, you will open input first from menu. And it shows you home folder, my projects. It will be a bit slow, okay.
And shared with me, explore. Explorer is the public one at the bottom, and my project is the one you have created and shared are people who have shared projects with you. So the projects you want to download, there is a download icon. You can press download, and when it's downloaded, you see this tick box.
It means it's available for offline use. You go to offline use and fast 4G public. So I go here, and it shows where we are above intercontinental hotel. And I want to capture a point of interest. So if I press record, it will tell me what layers I want to.
So the point of interest, and I add a point. And the forms I've shown you in QGIS, so it's intercontinental hotel. And the type, it's hotel. It's access to public, probably not. If you pay for it, you access it.
The data, survey date is today. And take your photo. You can take your photo, a bit of matrix. I'm not sure if I'm allowed. Or you can select it from media from your gallery. And then the next survey time, the slider I showed you, and X and Y are already populated.
And press save. And automatically it applies the icon based on the QGIS styling you have set. And if you go back to project, my project, you will be able to see that there is an icon for fast 4G public. And you can upload your changes back to the server. Don't know with internet connection on that photo it will go.
But let's see. OK. Now it's been updated. And if we go to merging and refresh that page, there should be version 9. And one layer is edited. So you will see that others can synchronize the data back to here.
I can go to QGIS and synchronize and pull the data back to QGIS. In addition to points, it supports obviously line and polygon. And you can use the follow me to stream the GPS to create vertices. Or you can just add three points.
So if I want to add path. So for example, in path mode, you have got two options. Add vertices. Or if you are driving or cycling or walking, you can press and hold GPS.
And then from then onward, it will trace your path. And there are some settings here specific to input. You can set the interval where it creates vertices, the threshold. So it will show a traffic light, what GPS accuracy you have.
So if you are connected to some Bluetooth GPS and you want to have very high accuracy, you can set that. So the GPS marker on the map, it's orange. But it will turn green when you set that threshold. And yeah, that's pretty much all the features.
And go back to future plans. We have for input, the first one is to officially release iOS. We have got it on iOS and it works. So I can go and download the changes for the same project on my iOS.
So essentially for that, we have ported the whole QGIS to iOS to be able to build this app. And now, I'm not going to do it now, but no, that's fine. But it's available on iOS, but we are planning to release it in market in the next two, three weeks.
And also, we have developed a library called GeoDiff for handling the diff between two Geo packages or SQLite-based data.
We plan to extend it for post-GIS as well. But essentially, all the changes will be done in a smart way. So you can have conflict resolutions and very lighter upload and download data synchronization. The GeoDiff is already on GitHub if you want to have a look. And we have got some implementation on client and the server side.
A bit of work needs to be done to finish the work. And yeah, that's our future plan. Any questions, suggestions? Pretty fast. I was just going to give you the five-minute sign.
No, I was a bit panicking for the demo, but everything went well. Yeah, it did, really. So any questions? In the back first.
If you pass the mic. Yeah, thank you. Any plans to release all the three components? So the QGIS plugin, the backend, and the app on open source license?
Input, QGIS plugin, the app and the plugin are already available on GitHub open source. The service, we are planned to have it similar to Git.
So the engine of it will be released under open source. But the registration and user handling and having Git running on a server, we will handle that part. And I don't think we will release all of it as open source. So it will be similar to GitLab and GitLab CE or some community edition.
About geodiff, how it is coded? What is the source code? Is it Python? Is it SQL-based?
I'll pass it to my colleague who can answer that. He wrote it. Hello, it's C++. And basically, what it does, it's an MIT license. It's on GitHub, you can check it. It uses this session mode of SQLite.
And with the session API, if you know a bit, it's trying to get these differences and then do some smart resolution of conflicts based on what you probably would do manually. And then the future problem is that it will also do some conflict files.
So then you can manually check the conflict resolution in QG's desktop and find out if it's good for you. But that's not implemented yet. And we also would like to extend it to different formats in the future. But geodiff, we started with geopackage because we expect that
we will encourage everyone to use that primary for vector layers. Sorry? As I said, we started with geopackage because we expect that we will continuously build on that.
So hopefully all the common formats probably. Other questions? I see no hands. Thank you.