Geopaparazzi

From OpenStreetMap Wiki
Jump to navigation Jump to search
Geopaparazzi
Android-geopaparazzi-cycle.png
Author: Andrea Antonello and contributors
License: GNU General Public License v3 (free of charge)
Platform: Android
Version: 6.1.1 (2022-01-20)
Languages: English, Italian, Finnish, Greek, Korean, Japanese, Polish, Portuguese, and German
Website: http://geopaparazzi.github.io/geopaparazzi/
Install:
Source code: https://github.com/geopaparazzi/geopaparazzi
Programming language: Java

Navigation offline and online, OSM and custom map display (vector data or tiles, offline, cached or online), field mapping, mark POI. Actively being developed. Keywords: GPS, field mapping, GPS navigation, navigation system, satellite navigation, sat nav, satnav, GPS tracker, GPS tracking, GPS map, OpenStreetMap, OSM viewer, map viewer, OSM mapping, outdoor.

Geopaparazzi is a tool developed to do very fast qualitative engineering/geologic surveys. Even if the main aim is in the field of surveying, it contains tools that can be of great use also to OpenStreetMappers as well as tourists that want to keep a geo-diary.

It runs on your Andriod device and works with the built-in GPS like a navigation program, but with field mapping capabilities.

It supports online tiled map backdrop sources such as OSM and caches them into a local MBTiles database. You can also prerender map tiles into your own MBTiles database and overlay GPX tracks and Spatialite GIS data. It reportedly also is able to display offline maps based on Mapsforge - for example from Openandromaps.

Geopaparazzi stores data in a spatialite database. Specific information can be exported from the app - for example images, and a track and points (and accompanying notes) recorded using the gps (as gpx or kml). It is also possible to use the spatialite database directly, for example importing tables into a GIS application such as QGIS directly, or by using a plugin such as ExportGeopaparazzi (which despite its name is for importing data from the database to QGIS) which also styles the layers and adds some QGIS 'actions' making it easier to view the photographs.

Geopaparazzi allows the definition of forms which guide note-taking - with each note having its location also recorded.

Notes can include images from the smartphone's camera, a simple sketching function (which includes the ability to load another existing image to the canvas), or an image of the current map.

Geopaparazzi can also display overlay information if it is stored in a (separate) spatialite database.

OSM Customizing

Geopaparazzi forms provide a GUI for human readable input and structured output. In order to show you the different survey capabilities, GP comes with predefined forms; these forms define text notes, photo and sketch notes. For and OSM oriented survey, we'll consider text notes only.

Forms

Forms are defined in tags.json file (file manager, built-in storage > geopaparazzi folder). The simple trick to have an OSM ready survey tool is customizing tag.json. Starting reading the default one could give you an idea about structure to be used for obtaining OSM xml’s. To modify tags.json you can use a json editor app (like ie: “Json genie”) directly in your mobile device. This app allowed me to clone and customize several other form items for OSM. As a starting point you can use the following code:

[     
   "sectiondescription": "Trasporto pubblico",
   "sectionname": "Trasporto pubblico",
   {
      "forms": [
         {
            "formitems": [
               {
                  "key": "highway",
                  "mandatory": "yes",
                  "type": "string",
                  "value": "bus_stop"
               },
               {
                  "key": "operator",
                  "type": "stringcombo",
                  "values": {
                     "items": [
                        {
                           "item": "APT Gorizia"
                        },
                        {
                           "item": "SAF Udine"
                        },
                        {
                           "item": "ATAP Pordenone"
                        },
                        {
                           "item": "Trieste Trasporti"
                        },
                        {
                           "item": "Trenitalia"
                        }
                     ]
                  }
               },
               {
                  "key": "bench",
                  "type": "boolean",
                  "value": "\"\""
               },
               {
                  "key": "bin",
                  "type": "boolean",
                  "value": "\"\""
               },
               {
                  "key": "shelter",
                  "type": "boolean",
                  "value": "\"\""
               }
            ],
            "formname": "Bus stop"
         },
         {
            "formitems": [
               {
                  "key": "public_transport",
                  "mandatory": "yes",
                  "type": "string",
                  "value": "stop_position"
               },
               {
                  "key": "bus",
                  "mandatory": "yes",
                  "type": "string",
                  "value": "yes"
               }
            ],
            "formname": "Stop position"
         }
      ]
   }
]
Buttons defined by section

This public transport tag.json above defines:

  • Section definition "Trasporto pubblico" (the button you'll find entering the geopaparazzi note function)
  • First form item defining the mandatory OSM highway=bus_stop and some ancillary elements (shelter=yes|no, bench=yes|no, bin=yes|no) and finally a pool of operators.
  • Second form item is for OSM public_transport=stop_position

Overwrite tags.json with the json lines above. Once GeoPaparazzi is restarted (maybe its cache should be cleaned also) tapping the notes button should display another single “Trasporto pubblico” button (the name of the section). Tapping “Bus stop” should display the form in which you can enter data.

Form item

Importing in OSM

Geopaparazzi stores notes in its project file (whatever.gpap you’ll find with file manager in root built-in storage); project file can be converted by Francesco Frassinelli's gpap converter. Load the resulting osm-xml file in JOSM and you have a layer ready to upload. Of course I suggest a conflation check before going any further.

Combos, checkboxes, date forms

Another OSM oriented example on data entry forms can be found in this tags.json. It provides:

  • traffic signs (weight and speed)
  • AI (fire fighting)
  • Arredo urbano (benches, waste baskets)
  • Recycling containers (various meterials)
  • Trasporto pubblico (descripted in this wiki)
  • Disabili (parking spaces for disabled)

It contains sample of drop down menus, single and multiple checkbox, date and number entry.