13

From my reading of the Esri web pages the Collector for ArcGIS is tightly tied to that platform. I would be delighted to learn that I am wrong about this.

I have a strong interest in generic mobile data collection apps for iOS and Android devices with GPSs. Particularly ones that can collect data while out of coverage, and then sync when they get back in to coverage. Ideally, they would also be able to cache portions of the data locally for use when off line.

What I envision is a web based application that allows one to specify your data layout, constraints, etc. and which will then generate the the backend database and allow access via a restful API.

What I need to do is enter data from a form on an mobile device, preferably both iOS and android, which will update tables in a backend database, potentially something with GIS extensions such as PostGIS. That would enable me to easily incorporate the data into QGIS. It must be able to work offline and many of the areas we work have not 3G coverage. Ideally you would be able to also cache selected data on the device for offline use. Map integrations is not important.

I have found some good cloud based solutions but I really want something where I have control of the back end data collection as some of the data is potentially sensitive. e.g. reporting sighting of rare reptiles which are a smuggling threat.

What alternatives are the for mobile apps to get data into QGIS.

3
  • Check out epicollect.net , I found this very useful as an open source method of data collection for my masters.
    – Ryan
    Commented Oct 9, 2015 at 11:03
  • EpiCollect.net looks interesting. Seems to do everything OP required. -Free Opensource developed by Department of Infectious Disease Epidemiology, Imperial College London and development has been fully funded by The Wellcome Trust. - Web based but can be used off line and sync later - for Android or iPhone - Data collected on the phones is stored on the phones internal database until synchronised with the central project website. At the website, and for projects created at www.epicollect.net, data is stored on Google's AppEngine - a free
    – user60622
    Commented Oct 12, 2015 at 14:58
  • as the OP EpiCollect fits my requirements. I am having a few problems getting the mobile app working but I am sure I will figure it out. When I have I will write up a detailed answer. Commented Oct 13, 2015 at 17:43

6 Answers 6

21

This question has been converted to Community Wiki and wiki locked because it is an example of a question that seeks a list of answers and appears to be popular enough to protect it from closure. It should be treated as a special case and should not be viewed as the type of question that is encouraged on this, or any Stack Exchange site, but if you wish to contribute more content to it then feel free to do so by editing this answer.


ODK

As @flippinGeo says, ODK is great. But it is not an integrated product (i.e., forms are set up in one area, aggregation is done in another, and the app is Android only). It works fantastically, though, and we use it at work and it is simple and fast to use. We host it on Google's AppEngine and it costs basically nothing, even storing a few thousand photos. I get it to push data to a fusion table that can then be visualised with Leaflet, see: http://maps.gcc.tas.gov.au/graffiti.html.

Fulcrum

I'm currently messing around with Fulcrum, which is not open-source, but is a nice SaaS product that is reasonably cheap and has a really nice web interface. I don't like their API, though (admittedly I haven't tried very hard).

QField

There is also QField for QGIS which is QGIS with a simplified interface for touch interaction. It supports constraints defined in QGIS projects, forms defined in QGIS projects and a wide variety of on- and offline data providers. Among them PostGIS and GeoPackage. Synchronisation with an offline copy of a database has to be done manually as a preparation step on a desktop computer with QGIS but a QGIS plugin QFieldSync is available to ease the job. Unfortunately it is only possible to use it on Android so far, it would be easy to port it to Windows and probably possible to port it to iOS as well.

Configurability

What ESRI does well is that if you have a geodatabase set up with a feature domain, then you publish that table to ArcGIS Online, then use Collector, all your forms are created automatically. If you need further manipulate the data after submission using programming, you can use the ArcGIS API for Python to get data in and out of AGOL.

QGIS for Android

The other answer to this question was to suggest QGIS for android, but I think that is too big for what you want to do. I think a minimal interface, with almost no spatial content on the collection side is best, which is what makes ODK so nice. It collects a point, which is enough, and the accuracy of the point, which is important, but it doesn't put it all on a big, full map interface, which is also really important for the folks collecting information, because they are NOT GIS FOLKS!

Mergin Maps

Mergin Maps is a free and open source mobile app based on QGIS. It is available for iOS and Android. Mergin Maps comes with built-in synchronisation function which allows users to upload/download their changes when there is a network connection. Mergin Maps data and project preparation is done in QGIS, therefore, all file formats supported in QGIS can be loaded in Mergin Maps.

0
7

NextGIS Mobile, native Mobile GIS for Android - http://nextgis.com/nextgis-mobile

Offline editing - check.

Syncronization - check.

Caching raster tiles - check.

Connects with web-server instance (NextGIS Web) to upload/download data - check.

Lots of other things such as customizable forms, adding TMS etc:

1
6

While not technically an answer to your question, "Does an Open Source equivalent ... exist?," this is a basis for a solution.

The OGC is working on a new spec for a storage container, being voted on right now (by January 2014), with these types of workflows, especially mobile, in mind: GeoPackage.

It is similar to and originally based upon Spatialite, a flat-file portable, cross-platform spatial database. Once/if the spec is finalized, incorporation into QGIS will more than likely happen quickly, possibly for version 2.4, since there is already preliminary support via GDAL/OGR, a core spatial provider in QGIS.

You can play with the format now, with preliminary support via the toolsets listed on the OGC GeoPackage site. In addition to those, there is newly updated support in libspatialite itself, which can be compiled for iOS and Android, and via Homebrew project for Mac using the libspatialite formula (use --HEAD option).

The new lispatialite can now more easily be loaded into SQLite as an extension, via whatever language binding you need.

If you have the means, consider helping fund the development of such a solution coupled to the QGIS Web Client or other OpenLayers-based client.

0
4

Your best bet is QGIS for Android: http://www.opengis.ch/2012/01/31/qgis-on-android-gets-gps-support/ but I'm unsure about its current status concerning tracking and sync.

Here's an example video with a Windows tablet with working tracking and sync: http://www.youtube.com/watch?v=0WevRW4tbzs

This short video show how Quantum GIS can be used to do live tracking and sampling in the field, by installing it on tablet pc (in this case with Atom architecture) and pairing it with a GPS unit (in this case a bluetooth datalogger). The specific use case is about the "MOVE" project by University of Évora (Portugal): in this project every day the roads of a specific study area are checked by car, at slow speeds, looking for road killed animals. The data is stored in a local Spatialite database, that is later used to update a PostGIS database.

0
4

As far as open source, check out Open Data Kit (ODK). I've used it for large data collection projects (10,000+ submissions at this point) and it's fairly easy to get set up on Postgres/Postgis for enterprise wide collection with the Aggregate component. Limitations include currently Android only, and not a mapping interface.

Form development is based on the Xform standard and you can do some nifty logic with your forms like conditionals, grouping, and control display parameters. It can also be run sans a Postgres. Also supports one-many relationships if your dealing with more complex collections.

Supports typical data types, GPS, photo, video, and audio. Sensor support is quite extensive as well.

0
2

I thought I would give an alternative to the answers here since we are doing something similar. We have utility planners out planning future maintenance work, and this is our process. Mind you, these guys are definitely not GIS folk, and we might be lucky if they ever used a computer before.

Instead of a web platform, we are using a windows desktop application. Our application uses a licensed map interface although you could easily (and we should have) used an open source version like DotSpatial or SharpMap for the mapping components. The rest of the application is just a few forms for input controls whose values are then mapped to a shapefile we are using in the back end. Shapefiles aren't great, but they're super compatible.

We also set up an API to our server which handles downloading of new features (e.g. parcels, utility lines, etc) and uploading of collected/edited features. So, the field storage doesn't matter because everything is transmitted to/from using geoJSON and just parsed/deserialized at each end point.

This process takes a little more up front work, but the versatility is pretty great. You can dumb down the application interface so all the user has to do is click a label (layer name), draw a figure, and fill out a couple of fields. The rest is automatically done for them. You can get more complex if you want and automatically do things for the user like spatial joining, GPS coords, validate field inputs, etc by coding it in the back end.

Point of the story.. You can use open source components to build an application to handle everything. Web interfaces will have some limitations like limits to local storage, etc. If you want something more complex and really dumbed down, it can be done but takes a little effort.

I would estimate that if you knew exactly what you wanted to do, you could put together a workable version of the desktop application and web interface within a couple of weeks.

Not the answer you're looking for? Browse other questions tagged or ask your own question.