Andrea Antonello edited this page Oct 21, 2015 · 94 revisions

This documentation is deprecated and is kept only for archive purposes. The official documentation can be read at http://www.geopaparazzi.eu . To contribute to it, check out the manual project: https://github.com/geopaparazzi/usermanual

Geopaparazzi User Documentation

Introduction

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. Geopaparazzi is now available on the Android Market. Search for geopaparazzi on your phone or get it from the online android market.

The main aim of Geopaparazzi is to have a tool that:

  • fits in any pocket and can be always at hand, when needed
  • gives the possibility to take georeferenced and possibly orientated pictures during a survey, with further possibility to import them into GIS applications like uDig or QGis
  • is able to easily exploit an internet connection, if available
  • is extremely easy to use and intuitive, providing just few important functionalities
wiki/images/ic_launcher.png

Geopaparazzi logo.

The main features available in Geopaparazzi are:

  • georeferenced notes
  • georeferenced and oriented pictures
  • gps track logging
  • form-based data surveys
  • easy export of collected data
  • a map view for navigation with support for raster tiles and spatialite vector data

The Dashboard

Once you launch Geopaparazzi, the dashboard appears.

All the features that need to be quickly accessed, such as toggling GPS on and off, creating a note or taking a picture, as well as visualizing the current position on a map, are accessible from the dashboard.

wiki/images/01_dashboard.png

From the dashboard these primary functions can be accessed:

  • Take notes
  • Remove the last note
  • Take a GPS Track
  • Switch to Map View
  • Import Data
  • Export Data
wiki/images/02_dashboard_hor.png

Take Notes

Geopaparazzi supports 4 different types of notes:

  • text notes
  • picture notes
  • sketch notes
  • form-based notes

To access them you can tap on the first icon of the dashboard, the take notes icon. Once you tap on it, the take notes dialog appears:

wiki/images/03_notes.png

The uppermost button gives the possibility to choose if the note will be inserted in the current gps position (in case gps is on) or in the the center of the map (aka, the crossfade).

Below the button, three quick note buttons are presented:

  • The Quick text note button, which opens a simple dialog, inside which the text note can be written. Want to save the note? Tap on the ok button. Want to trash it? Tap on the cancel button.

    Remember that the position of the note is taken when the note view is opened, not closed, so you have all the time you need to insert the text.

wiki/images/04_textnotes.png
  • The Quick picture note button, which will launch the camera application that comes with your android system. We decided to switch from our custom camera application to the default one, because it gives many more possibilities of customization of the images size, focus and so on. This has one drawback, which is the fact that we are not able to pick the azimuth of the camera shot at the exact moment it is taken. The azimuth is therefore recorded at the moment the camera application is closed. That means that to have a realistic azimuth, you need to take the picture and stay with the device in the same position of the snapshot until you have closed the camera app.

  • The Quick sketch note button, which allows you to draw on a small panel and save your sketch. One can change stroke style, color, and width. Other buttons such as undo, clear, save, and share are also available.

    Once the note has been saved, it can't be changed.

wiki/images/06a_sketchnotes.png
Form based notes

Form based notes are complex notes that allow for better surveys. Some examples are available in the base installation of geopaparazzi.

The example button in particular shows all the possible form widgets available:

wiki/images/58_form_based_notes.png

The notes can be saved and modified in a second moment.

To understand how to create forms, have a look at the section Using forms.

Remove last note

The remove last note action removes the last inserted TEXT note.

Before removing the note it will prompt the user once more.

Take Gps Track

The logging functions are hidden behind the logging button. Once tapped, it pops up one of two options:

The "Start GPS logging" icon shows when the gps is not logging a track:

wiki/images/11_gps_start_logging.png

The "Stop GPS logging" icon shows when the gps is currently logging a track:

wiki/images/13_gps_stop_logging.png

When starting to log, you are asked to name the new log. The default is based on the current time ("log_YYYYMMDD_HHMMSS") and can be edited or used as-is by pressing OK.

wiki/images/12_gps_name_logging.png

The Map View

The map view can display, as base maps:

  • OpenStreetMap maps both when online (downloading new tiles) and offline (visualizing those that were cached during online mode)
  • mbtiles databases
  • local and remote TMS tiles
  • mapsforge vector files. Look at the vectormaps section to download maps.

The map engine comes from the mapsforge project.

wiki/images/14_map_view.png
Map view tools

The map view has a set of tools that can be exploited to interact with the map. They can be accessed by pulling the handle in the lower part of the map.

wiki/images/14_map_view_tools.png

Available tools are:

  • Left screen side
    • add note (the same that is accessed from the dashboard)
    • list all notes
    • add bookmark
    • list all bookmarks
    • activate the measure tool
  • Right screen side
    • the context menu button
    • the zoom in and out buttons
  • Lower center
    • battery status
    • center screen on GPS position button
    • vector layer query tool
The Notes List

The notes list shows all the available notes.

Simple images notes are all marked as image notes.

In the upper part there is a textbox that helps to filter out a particular note based on its name.

You have 3 options:

  • go to the note location
  • open or edit the note. Image notes are opened and complex notes can be edited.
  • delete the note
wiki/images/36_notes_list.png
Add Bookmark

Bookmarks are in a layer on their own, that contains saved settings of the current map view.

When you add a bookmark, a small star is added on the map in the center of the screen. With the bookmark, apart of the position and a title that one can give:

wiki/images/34_add_bookmark.png

Also the map bounds and zoom are saved. That way one can return to the scenario that the bookmark represents in any moment.

wiki/images/35_added_bookmark.png

It is possible to tap on the bookmark to read its label.

See the bookmarks list section to see how to retrieve an old bookmark.

The Bookmarks List

The bookmarks list shows all the saved bookmarks.

In the upper part there is a textbox that helps to filter out a particular bookmark based on its name.

You have 4 options:

  • go to the bookmark location
  • add a proximity alert. In that case a dialog opens and asks for a radius in meters to define the proximity area. Once the gps enters that area, the user will be notified
  • rename the bookmark
  • delete the bookmark
wiki/images/36_bookmarks_list.png
Measure tool

Activating the measure tool places you in measure mode. This mode disables the ability to pan the map while enabling the possibility to draw a line on the map and measure the line drawn. The approximate (the distance is calculated without considering elevation deltas and with the coordinate picking precision of a finger on a screen) distance is shown in the upper part of the map view.

When active, the measure tool has a red colored icon, when inactive the icon is green instead.

wiki/images/27_measure_mode.png
Openstreetmaps tools

Geopaparazzi is able to create and upload to an OSM account collected points of interest.

The first step to follow is to activate the OSM support in the preferences.

Once done, next time geopaparazzi is restarted, the user will be asked if he wants to download the OSM tags definitions. These is actually the library of simbols and tags descriptions for the different OSM point types.

wiki/images/39_osm_tagsdownload.png

From that point on in the map view you will see a small OSM icon that can be dragged to the left and shows all available OSM categories:

wiki/images/40_osm_categories.png

Once a category is selected, the tags of the category are shown:

wiki/images/41_osm_accomodation.png

The selection of a specific tag then finally opens the form with the properties to be defined by the user:

wiki/images/42_osm_motel.png

Once populated the form, it is possible to syncronize the collected POIs with an online OSM account. The user will be prompted to insert a description for the changeset he is uploading:

wiki/images/43_osm_sync.png

If user and password were properly supplied, geopaparazzi will connect to a WPS server that will take care of interacting with the OSM servers and do everything necessary to upload the data. Kudos go to Luca Delucchi, which has been of stretegic help in understanding what was necessary to make this work. He also is the author and host of the WPS service and the iconset and tags definitions.

The Map View Menu

The map menu gives the possibility to access some additional map tools:

  • access the gps data list
  • access the spatialite data list. This is explained in the Spatialite section.
  • toggle the scalebar
  • open the compass
  • center the view on the current map
  • go to a location
  • send data: sends the currently visible text notes and bookmarks via sms. If there are too many data, they are split over multiple sms.
  • view the data visible in the viewport in Mixare
wiki/images/23_map_menu.png
Gps data list

The gps data list shows the data surveyed, both points and tracks.

The notes are all kept inside a single layer and therefore have an own panel in the upper part. From there you can change visibility, size and color.

Below the notes panel, there is the list of recorded tracks.

wiki/images/24_gpsdata_list.png

Image notes can be toggled between visible and non visible.

Notes can be visualized as icons or as shapes. The size, color and opacity can be customized by the user. This can be usefull in those cases in which many notes have to coexist in a small space for better readability.

wiki/images/25a_notes_properties.png

It is also possible to show the label for the note and customize its size and halo.

wiki/images/25b_notes_properties.png

In the case of complex notes notes the labelling is a bit tricky, because any of the textfields inside the forms could be a label.

For that reason it is necessary to add a particular tag to the field that is meant to be the label: islabel.

Once that tag is added, the marked textfield will be used as a label. Look at the form based notes section to understand complex forms.

An here is how it all loks like with customized notes and labels:

  • simple notes show the complete text
  • complex form notes show the label of the marked textfield
  • the icons are now small blue circles
wiki/images/25c_notes_properties.png

It is possible to change the visibility of the single track from here, but also enter (by tapping on it) a properties panel.

wiki/images/25_gpsdata_properties.png

From here it is possible to:

  • change the name of the track
  • change track width
  • change track color
  • chart the track
  • zoom to the first point of the log in the map view
  • remove the track
Go to

The go to function has two possibilities:

  • go to coordinate
  • use geocoding and/or routing
wiki/images/29_goto.png

In the go to coordinate panel it is possible to insert lat/long coordinates and navigate to the inserted point on the map view:

wiki/images/29_goto_coordinate.png

Through geocoding it is possible to insert some address and find its location (uses google maps geocoding).

wiki/images/29_goto_geocache.png

From the same panel it is possible to create a route from the current position to the inserted location. This uses the amazing http://openrouteservice.org

The user can choose the type of route. After that a route is created and placed in the gps logs tracks.

wiki/images/29_goto_routing.png

Import Data

wiki/images/33_import_data.png

Geopaparazzi supports the import of:

  • gpx datasets
  • geopaparazzi cloud projects
  • bookmarks
GPX

By tabbing on the import gpx icon, you are taken to a simple file browser.

wiki/images/15_import_gpx_browse.png

The browser only shows folders and files with gpx extensions. Find the gpx you want to import and select it.

The file will then be imported. This might take a while for large files, so wait patiently until the process monitor stops.

wiki/images/import_gpx_progress.png

When I have to travel and obviously use geopaparazzi as limited navigation tool, I love to find my track on the Open Route Service, which then has an option to download the track as gpx file.

Geopaparazzi cloud projects

Find more about geopaparazzi web project protocol in the GeopapBrowser page.

Bookmarks

Bookmarks can be imported from csv files that must be placed in the root of the sdcard and the name of which has to start with the part bookmarks and to end with the extension .csv.

Geopaparazzi will let the user select the files to import if more than one are available and load the bookmarks from there and import only those that do not exist already.

The format of the csv is: NAME, LATITUDE, LONGITUDE as for example:

Uscita Vicenza Est, 45.514237, 11.593432
Le Bistrot, 46.070037, 11.220296
Ciolda, 46.024756, 11.230184
Hotel Trieste, 45.642043,13.780791
Grassday Trieste,45.65844,13.79320

Export Data

Geopaparazzi supports the export to the following formats:

  • gpx
  • kmz
  • geopaparazzi cloud projects
  • bookmarks
GPX

The lines and notes data are exported to gpx, creating tracks and waypoints.

KMZ

It is possible to export all collected data to kmz format. KMZ is well known as it can be visualized in the 3D viewer Google Earth.

In the export:

  • the notes are placed as red pins having the first letters of the text content as label
  • the images are placed as yellow pins
  • the gps logs are visualized as tracks
Geopaparazzi cloud projects

Find more about geopaparazzi web project protocol in the dedicated page.

Bookmarks

Bookmarks can be exported to a csv file that has to be called bookmarks.csv and must be placed in the root of the sdcard.

Geopaparazzi will write to the file only those bookmarks that do not exist already in the csv.

The Action Bar

The action bar allows to access quickly some infromation:

  • the gps state
  • the compass application
  • general project and gps information
  • the context menu

Starting from right to left, the first icon opens up the main geopaparazzi menu (see dedicated section).

wiki/images/07_gpsinfo.png

the second icon pops up a dialog containing information about the gps status. It also reports whether the gps is logging or not and if it is switched on or off.

The third icon takes the user to the compass view, which since version 2.1.0 is no longer maintained in Geopaparazzi. The compass view is borrowed from the very nice Gps Status project.

Obviously you need to have that application installed, so if it is not already installed in your system, Geopaparazzi will ask you if you want to do so and if you accept, it will take you to the market page of the Gps Status application.

The last icon is the GPS status icon.

It is:

  • RED: if the gps is not switched on
  • ORANGE: if the gps is on but no fix was acquired
  • GREEN: if the gps is on, has fix, but is not logging
  • BLUE: if the gps is logging
wiki/images/38_gpsstates.png

The panic bar

The panic functions are some kind of safety utilities. Geopaparazzi is meant to be a fast surveying tool, usable also in rough mountain conditions. We like to think that it is easy to send a help message (containing the current position) to someone to come fast and rescue us in case of some problem.

Asking for help should be as fast as possible, i.e. one button tab away. But it should also make sure that help requests are not sent accidentally. So we decided for 2 buttons taps away.

First tap: slide up the panic bar at the bottom of the dashboard.

wiki/images/16_panic_bar.png

You will find two buttons, the red panic button and below it, the status update button. This choice has been made, since some really like the possibility to send out to friends their own position and were constantly using the panic button for that. Following the cry wolf effect, this defeated the sense of having a panic button. So we added a status update button, that has the same purpose, but containing a different message.

Second tap: push the red button!

To properly work, a panic number (to which the sms is sent) has to be defined in the preferences (or more than one). If none is defined, you will be warned:

wiki/images/16_panic_number_prompt.png

The main menu

The main menu has the following functions:

  • select tile source: allows the selection of a map tile source to be used as base map
  • create new project: this will create a new project on the sdcard. A timestamp based name is proposed to the user
  • load existing project: gives the possibility to browse the filesystem to select an existing geopaparazzi project folder (the one with the database in it) to load it
  • settings: accesses the settings page
  • about: visualises the about page, which contains infos, links and acknowledgements
  • exit: shuts down geopaparazzi
wiki/images/17_main_menu.png

Loading a tile source

Geopaparazzi's mapview supports several map-types: vector or raster, editable or static. Also, maps can be pulled live from an Internet server, or be generated locally from a map data file for while in offline operation. You can switch between these modes in here.

From the main menu, when pushing the tile source button, the list of available tile sources are presented, properly divided by position inside the maps folder on the device:

wiki/images/44_tiles_source_menu.png

Two maps, mapnik.mapurl and opencycle.mapurl, are available by default. In general, Geopaparazzi uses two kinds of maps:

  • Basemaps: the background map in the map view
  • Overlay maps: vector maps that can be shown on top of the basemaps

Basemaps can be of 4 different types:

  • mapurls
  • mbtiles
  • mapsforge maps
  • rasterlite2

Regardless of what kind of map data file you select, the map data files need to be placed in the configured maps folder, which is a folder called maps in the root of the sdcard by default. You can change this path in :ref:`settings <custommapsfolder>`.

Vector maps

To have maps showing up in this submenu you will need to download some vector maps. Once the *.map file has been downloaded, it just needs to be placed in the maps folder and it will then automatically appear in the available vector maps list.

Vector maps are kindly generated by two different sources:

  • mapsforge
  • openandmaps
mapsforge

The standard maps generated, maintained and distributed by the mapsforge team and downloadable from their server.

In their default style they kind of look like:

wiki/images/47_mapsforge.png
openandmaps

Openandromaps generates maps following the opencycle theme, with isolines and more hiking related stuff. The map files are larger but worth every byte. Their download area is here.

With the Oruxmaps theme that is available from the download area, the maps look like:

wiki/images/48_openandmaps.png
Apply a render theme

Geopaparazzi applies render themes if they are found on the disk. In order to be found, the render theme xml file needs to have the same name as the map file. Ex, the above cycle map example has a:

italy_cycle.map

and a:

italy_cycle.xml

render theme file in the maps folder at the root of the sdcard.

Mapurls: Custom tiles based maps (local and remote)

Mapurl files are simple text files containing definitions of tile sources, either local or remote. A mapurl file must have the file extension/suffix .mapurl to be recognised by Geopaparazzi.

Remote Tile sources

By default, Geopaparazzi is configured to load mapnik rendered tiles live from the Internet, from OpenStreetMap's tile server. Compare the contents of the included mapnik.mapurl file for how this is done. You can exchange the OSM tile server with any other tile server as long as it adheres to the Mapurl URL conventions.

Geopaparazzi will cache/store downloaded Mapurl tiles in a local MBTiles SQLite file, so pre-fetched tiles will remain viewable when Geopaparazzi is operated disconnected from a remote Mapurl source (in offline operation).

Here are the basics of Mapurl definitions:

An example for a remote tiles source is:

url=http://myserver/tmsservice/ZZZ/XXX/YYY.png
minzoom=12
maxzoom=18
center=11.40553 46.39478
type=tms

The necessary information is:

  • the url of the tile server, having:

    • ZZZ instead of the zoom level
    • XXX instead of the tile column number
    • YYY instead of the tile row number

    One good example to understand what that means it once again Openstreetmap, where http://a.tile.openstreetmap.org/9/271/182.png has ZZZ=9, XXX=271 and YYY=182.

  • the minimum zoom level that is supported

  • the maximum zoom level that is supported

  • the center of the tile source

  • the type fo tile server. Currently both standard TMS and google based numbering of the tiles is supported by the line:

    • type=tms
    • type=google

Also WMS works as remote source, as long as it can be accessed through an EPSG:4326 projection.

An example is:

url=http://sdi.provincia.bz.it/geoserver/wms?LAYERS=inspire:OI.ORTHOIMAGECOVERAGE.2011&TRANSPARENT=true&FORMAT=image/png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application/vnd.ogc.se_inimage&SRS=EPSG:4326&BBOX=XXX,YYY,XXX,YYY&WIDTH=256&HEIGHT=256
minzoom=0
maxzoom=20
center=11.42 46.8
type=wms

Important here are:

Local Tile sources

Just like your mapurl configuration may reference an online/remote tile sources, your mapurl setting may reference a local tile source for offline use. This way it's possible to load on any smarthphone complex maps as for example the following map that has a technical basemap with shapefiles overlaid in transparency:

wiki/images/46_tiles_source_ctp.png

To be able to load such maps, one needs to prepare the tiles properly. This can be done via in several ways as explained in the next section.

The tile folder have then to be loaded in the maps folder together with the description of the tile source:

url=mytilesfolder/ZZZ/XXX/YYY.png
minzoom=12
maxzoom=18
center=11.40553 46.39478
type=tms

Nothing changes against the description for the remote source apart of the url. The url in this case represents the relative path of the tiles folder starting from the "maps" folder.

Adding mbtiles to Tile sources

Special commands for mbtiles support:

  • it is possible, while the application is running, to store the requested tiles to a mbtiles-database

  • once stored, that tile will be read from the mbtiles database and no longer requested from the tile-server:

     mbtiles=stadt-berlin.de/berlin_postleitzahlen.mbtiles
    
    * optional parameter
    * starting with version 3.7.0, a mbtiles file can be used to store the retrieved tiles
    * the given directory must be inside the `/sdcard/maps/` directory
    * if the directory does not exist, it will be created
    * if the mbtiles file does not exist, it will be created
    * all the needed tables and views (also for, the not-used, grid-tables) will be created
    * the metadata-table default values will be set, many from those used in the .mapurl file
    * Note: when images are being retrieved by the application, it will first look in the given mbtiles file
       * if found: the image will be returned
       * if not found: the normal request to the wms or tile-server will be done
          * when the image has been retrieved, it will be stored into the mbtiles file
    
  • mbtiles.metadata parameter name:

     name=Berliner Postleitzahlen ; 1:5000 ;1:10000
    
    * optional parameter, mandatory for mbtiles metadata
    
  • mbtiles.metadata parameter description:

     description=Darstellung der Postleitzahlengebiete und deren Postleitzahlen.
    
    * optional parameter, mandatory for mbtiles metadata
    
  • mbtiles.metadata parameter defaultzoom:

     defaultzoom=17
    
    * optional parameter
    * Note: together with the `center=` parameter, the mbtiles.metadata field will be created
       * `center=13.37771496361961,52.51628011262304,17`
       * this is a 'tillmill' specific parameter and NOT part of the mbtiles specification
           * useful when you have many files of the same area and want to use a common starting point
    
  • mbtiles.metadata parameter format:

     format=jpg
    
    * optional parameter
    * which image format should the tiles be stored in [jpg,png]
    * Note: `jpg` is the default.
      * in my experience mbtiles files with jpg are about 70% smaller that those with png.
    
mbtiles based maps
  • To have maps showing up in this submenu you will need to store these on the sdcard.
    • it will then automatically appear in the available maps list.
    • avoid files greater than 2.147.483.648 bytes (2 Gigabyte)
wiki/images/mbtiles/mbtiles.01.zoom_13.png

This is a collection of high scaled maps of the area of Berlin between 1870 and 1920

  • this mbtiles file is just under 2 Gb - which is the maximum supported by most sdcard with android
  • shown at Zoom 13
  • with today’s political district borders as a spatialite geometry
    • there are other geometries active, but cannot be seen due to the minimal zoom-level (to avoid cluttering)
      • Postal Borders (starting at zoom-level 15)
      • Streets (starting at zoom-level 16)
      • Houses (starting at zoom-level 17)

Preferences

The preferences page supplies some main categories:

wiki/images/18_preferences.png
Gps Preferences

In the gps preferences it is possible to

  • define the time interval for taking a point when in logging mode
  • define the minimum distance in meters, within the taken gps point is not added to the gps log. This is useful for example in the case in which the user stops during logging and the gps continues to supply points (due to the inaccuracy), while instead the user stands still in a point.
  • have the mapview recentered on the gps position when the position reaces the screen border (usefull while driving)
  • use network based position instead of GPS position. This can be useful

for testing purposes. The network based position is by no means precise!

wiki/images/19_preferences_gps.png
Sms Preferences
wiki/images/20_preferences_sms.png

It is possible to activate an SMS catcher. If that is activated, the phone listens to incoming short messages containing the word:

GEOPAP

If such a message comes in, the phone answers with an SMS to the incoming number by sending the last known position.

From here it is also possible to insert the panic numbers(s), i.e. the numbers to which a status update is sent when the panic button is tabbed.

wiki/images/21_preferences_panicnum.png
Screen Preferences

In the screen preferences it is possible to

  • change the map center cross properties (size, color, stroke width)
  • change the OSM map text size factor (normal is 1. To make text bigger, increase the value)
  • enable the always screen on mode
wiki/images/22_preferences_screen.png
Spatialite Preferences

In the Spatialite preferences it is possible to

  • set the Spatialite Recovery Mode

When should Spatialite Recovery Mode be used?

  • when a new Database has been added and the geometry does not show up
    • the Application must then be restarted
    • faulty entries will be PERMANENTLY corrected, where possible
      • afterwhich the Spatialite Recovery Mode will be set to OFF
        • so do be worried, that after restarting, that is is again OFF
wiki/images/spatialviews/20140608.Spatialite_Recovery_Mode.png
Custom sdcard path

This can be used for those devices that have more than one external storage recognized by the device. Use it at your own risk. We use it regularly, but it needs to be done properly.

OSM Preferences

To be able to use the OpenStreetMap tools you need to enable them in this settings page.

To upload collected data, a server and OSM account has to be specified. A default server to process the collected data to OSM has been kindly made available by Luca Delucchi and will be precompiled. If you do not know what to insert, leave the existing one.

wiki/images/22_preferences_osm.png
Geopap-cloud Preferences

To use the cloud service, a server and account need to be specified.

A tutorial on how to connect and interact with the geopap-cloud service can be found in the advanced section.

wiki/images/22_preferences_cloud.png

Using forms

It is possible to create a tags.json file inside the geopaparazzi folder inside the sdcard containing a json format description of the wanted tags and forms.

By default, to help the user to start, a sample tags.json is created that contains the following:

[
    {
        "sectionname": "image note",
        "sectiondescription": "note with image",
        "forms": [
            {
                "formname": "text note",
                "formitems": [
                    {
                        "key": "title",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    },
                    {
                        "key": "description",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    }
                ]
            },
            {
                "formname": "image note",
                "formitems": [
                    {
                        "key": "description",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    },
                    {
                        "key": "pictures of the environment around the note",
                        "value": "",
                        "type": "pictures"
                    }
                ]
            }
        ]
    },{
        "sectionname": "map note",
        "sectiondescription": "note with map image",
        "forms": [
            {
                "formname": "text note",
                "formitems": [
                    {
                        "key": "title",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    },
                    {
                        "key": "description",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    }
                ]
            },
            {
                "formname": "map image note",
                "formitems": [
                    {
                        "key": "description",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    },
                    {
                        "key": "map around note",
                        "value": "",
                        "type": "map"
                    }
                ]
            }
        ]
    },{
        "sectionname": "text note",
        "sectiondescription": "a simple text note",
        "forms": [
            {
                "formname": "text note",
                "formitems": [
                    {
                        "key": "title",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    },
                    {
                        "key": "description",
                        "value": "",
                        "type": "string",
                        "mandatory": "yes"
                    }
                ]
            }
        ]
    },{
        "sectionname": "examples",
        "sectiondescription": "examples of supported form widgets",
        "forms": [
            {
                "formname": "text",
                "formitems": [
                    {
                        "key": "some text",
                        "value": "",
                        "type": "string"
                    }
                ]
            },{
                "formname": "numeric text",
                "formitems": [
                    {
                        "key": "a number",
                        "value": "",
                        "type": "double"
                    }
                ]
            },{
                "formname": "date",
                "formitems": [
                    {
                        "key": "a date",
                        "value": "",
                        "type": "date"
                    }
                ]
            },{
                "formname": "time",
                "formitems": [
                    {
                        "key": "a time",
                        "value": "",
                        "type": "time"
                    }
                ]
            },{
                "formname": "labels",
                "formitems": [
                    {
                        "value": "a simple label of size 20",
                        "size": "20",
                        "type": "label"
                    },{
                        "value": "a underlined label of size 24",
                        "size": "24",
                        "type": "labelwithline"
                    },{
                        "value": "a label with link to the geopaparazzi homepage",
                        "url": "http://www.geopaparazzi.eu",
                        "size": "20",
                        "type": "labelwithline"
                    }
                ]
            },{
                "formname": "boolean",
                "formitems": [
                    {
                        "key": "a boolean choice",
                        "value": "",
                        "type": "boolean"
                    }
                ]
            },{
                "formname": "combos",
                "formitems": [
                    {
                        "key": "a single choice combo",
                        "values": {
                            "items": [
                                {"item": ""},
                                {"item": "choice 1"},
                                {"item": "choice 2"},
                                {"item": "choice 3"},
                                {"item": "choice 4"},
                                {"item": "choice 5"}
                            ]
                        },
                        "value": "",
                        "type": "stringcombo"
                    },{
                        "key": "a multiple choice combo",
                        "values": {
                            "items": [
                                {"item": ""},
                                {"item": "choice 1"},
                                {"item": "choice 2"},
                                {"item": "choice 3"},
                                {"item": "choice 4"},
                                {"item": "choice 5"}
                            ]
                        },
                        "value": "",
                        "type": "multistringcombo"
                    }
                ]
            },{
                "formname": "pictures",
                "formitems": [
                    {
                        "key": "a picture archive",
                        "value": "",
                        "type": "pictures"
                    }
                ]
            },{
                "formname": "map",
                "formitems": [
                    {
                        "key": "an image of the last seen map",
                        "value": "",
                        "type": "map"
                    }
                ]
            }
        ]
    }
]

which results in an gui like the following:

wiki/images/30_add_note_bytag.png

We currently do not have a tool to create forms, it has to be done by hand. A good online tool to validate your json form is the Json Lint validato. Make sure it passes that test before trying on geopaparazzi.

Supported tags (via the example form)

The example form that is available by default shows all the possible options available.

Once pushed, the list of available tabs is shown:

wiki/images/30a_tags_list.png
Text

Looks like:

wiki/images/30b_tags_text.png

Created by:

{
    "formname": "text",
    "formitems": [
        {
            "key": "some text",
            "value": "",
            "type": "string"
        }
    ]
}
Numbers

Looks like:

wiki/images/30c_tags_num.png

Created by:

{
    "formname": "numeric text",
    "formitems": [
        {
            "key": "a number",
            "value": "",
            "type": "double"
        },{
            "key": "an integer number",
            "value": "",
            "type": "integer"
        }
    ]
}
Labels

Text and numbers can also be shown as labels in the map view.

To do so, the tag islabel has to be added and set to true:

{
    "formname": "numeric text",
    "formitems": [
        {
            "key": "a number",
            "value": "",
            "islabel": "true",
            "type": "double"
        }
    ]
}

Only one text or number item is accepted as label, so if more than one is added, the last read will be picked.

Date

Looks like:

wiki/images/30d_tags_date.png

Created by:

{
    "formname": "date",
    "formitems": [
        {
            "key": "a date",
            "value": "",
            "type": "date"
        }
    ]
}
Time

Looks like:

wiki/images/30e_tags_time.png

Created by:

{
    "formname": "time",
    "formitems": [
        {
            "key": "a time",
            "value": "",
            "type": "time"
        }
    ]
}
Labels

Looks like:

wiki/images/30f_tags_labels.png

Created by:

{
    "formname": "labels",
    "formitems": [
        {
            "value": "a simple label of size 20",
                                    "size": "20",
            "type": "label"
        },{
            "value": "a underlined label of size 24",
            "size": "24",
                                    "type": "labelwithline"
        },{
            "value": "a label with link to the geopaparazzi homepage",
            "url": "http://www.geopaparazzi.eu",
            "size": "20",
            "type": "labelwithline"
        }
    ]
}
Checkbox

Looks like:

wiki/images/30g_tags_boolean.png

Created by:

{
    "formname": "boolean",
    "formitems": [
        {
            "key": "a boolean choice",
            "value": "",
            "type": "boolean"
        }
    ]
}
Combos

Looks like:

wiki/images/30h_tags_combo.png

Created by:

{
    "formname": "combos",
    "formitems": [
        {
            "key": "a single choice combo",
            "values": {
                "items": [
                    {"item": ""},
                    {"item": "choice 1"},
                    {"item": "choice 2"},
                    {"item": "choice 3"},
                    {"item": "choice 4"},
                    {"item": "choice 5"}
                ]
            },
            "value": "",
            "type": "stringcombo"
        },{
            "key": "a multiple choice combo",
            "values": {
                "items": [
                    {"item": ""},
                    {"item": "choice 1"},
                    {"item": "choice 2"},
                    {"item": "choice 3"},
                    {"item": "choice 4"},
                    {"item": "choice 5"}
                ]
            },
            "value": "",
            "type": "multistringcombo"
        },{
            "key": "two connected combos",
            "values": {
                "items 1": [
                    {"item": ""},
                    {"item": "choice 1 of 1"},
                    {"item": "choice 2 of 1"},
                    {"item": "choice 3 of 1"},
                    {"item": "choice 4 of 1"},
                    {"item": "choice 5 of 1"}
                ],
                "items 2": [
                    {"item": ""},
                    {"item": "choice 1 of 2"},
                    {"item": "choice 2 of 2"},
                    {"item": "choice 3 of 2"},
                    {"item": "choice 4 of 2"},
                    {"item": "choice 5 of 2"}
                ]
            },
            "value": "",
            "type": "connectedstringcombo"
        },{
            "key": "two connected combos, default selected",
            "values": {
                "items 1": [
                    {"item": ""},
                    {"item": "choice 1 of 1"},
                    {"item": "choice 2 of 1"},
                    {"item": "choice 3 of 1"},
                    {"item": "choice 4 of 1"},
                    {"item": "choice 5 of 1"}
                ],
                "items 2": [
                    {"item": ""},
                    {"item": "choice 1 of 2"},
                    {"item": "choice 2 of 2"},
                    {"item": "choice 3 of 2"},
                    {"item": "choice 4 of 2"},
                    {"item": "choice 5 of 2"}
                ]
            },
            "value": "choice 4 of 2",
            "type": "connectedstringcombo"
        }
    ]
}
Pictures

Looks like:

wiki/images/30i_tags_pics.png

Created by:

{
    "formname": "pictures",
    "formitems": [
        {
            "key": "a picture archive",
            "value": "",
            "type": "pictures"
        }
    ]
}
Map screenshot

Looks like:

wiki/images/30i_tags_pics.png

Created by:

{
    "formname": "map",
    "formitems": [
        {
            "key": "an image of the last seen map",
            "value": "",
            "type": "map"
        }
    ]
}
Other supported tags
hidden

Not shown in the gui, but useful for the application to fill in infos like the GPS position:

{"key":"LONGITUDE", "value":"", "type":"hidden"}
primary_key

An item of particular importance, can be used by the application to link to particular infos:

{"key":"tourism", "value":"", "type":"primary_key"}
Constraints

Constraints are conditions that are checked when the ok button of the form is pushed.

mandatory

To make an item mandatory, just add:

"mandatory": "yes"
range

To peform a range check on a numeric field you can add something like:

"range":"[0,10)"

which would check that the inserted number is between 0 (inclusive) and 10 (exclusive).

Advanced Section

Import data into a GIS (export as shapefiles)

  • uDig
  • STAGE
uDig

Since versione 1.3.2 the GIS uDig imports Geopaparazzi data directly as shapefiles and image references.

A howto can be found here.

wiki/images/import_in_udig.png
STAGE

STAGE (Spatial Toolbox And Geoscripting Environment) is sort of a standalone version of the uDig Spatial Toolbox.

Functionality
  • Convert geopaparazzi projects from version 3 to version 4.
  • Export geopaparazzi projects (version 3 or 4) to shapefiles, notes, profiles, and other details.
  • Create maps from raster and vector sources.
More information
  • Basic use: Download, unzip, double click "stage.exe", checkbox "Load Experimental", --> Mobile --> [tool and parameters] --> green triangle "play" button.
  • A blog post and video, on JGrass Tech Tips.
  • Downloads from http://git.io/stage_releases

Tiles preparation

Map tiles to be used in geopaparazzi can be created in several ways. Most people are used to the gdal projects, some use the jgrasstools project and others maybe other tools.

JGrasstools

We prefer to use the jgrasstools modules to prepare tilesets, since that one also generates the geopaparazzi and uDig .mapurl definition file.

There is a script available for jgrasstools, that can generate tiles for geopaparazzi, starting from bundled tiffs, grass rasters and shapefiles.

Download this jgrasstools version or a more recent one, uncompress it somewhere and open the README file. It will explain how to run a script.

Then copy this script into a text file and change the input parameters to reflect your case.

If you have any problem please ask in the geopaparazzi (or even better in the jgrasstools) mailinglist.

GDAL
Prerequisites

Geopaparazzi does not support reprojecting raster data sources on-the-fly, so the file must be warped to the proper projection before using it. To do it you can use gdalwarp command.

The target projection must be Google Web Mercator (EPSG code 3857); you must know also the source projection of the raster you are converting. As an example, if you have a WGS 84 projected (EPSG code 4326) input file, you will run this kind of command:

gdalwarp -s_srs EPSG:4326 -t_srs EPSG:3857 -r bilinear input.tif output.tif
Tiles creation

To create the tiles you can use gdal2tiles.py script, using as input your Google Web Mercator projected raster file:

gdal2tiles.py output.tif

It generates directory with TMS tiles, that you can use in Geopaparazzi. In the root of the this directory you will find "tilemapresource.xml" file;

  • please note: the BoundingBox and Origin values created by gdal2tiles are incorrect:
    • you must switch the x and y values
      • minx="11.28858223249814" miny="46.39742402665929" maxx="11.37616698902041" maxy="46.45081836101696"
      • x="11.28858223249814" y="46.39742402665929"

it contains all the informations (see below) to build the .mapurl file requested from Geopaparazzi:

<?xml version="1.0" encoding="utf-8"?>
    <TileMap version="1.0.0" tilemapservice="http://tms.osgeo.org/1.0.0">
      <Title>temp3.vrt</Title>
      <Abstract></Abstract>
      <SRS>EPSG:900913</SRS>
      <BoundingBox minx="46.39742402665929" miny="11.28858223249814" maxx="46.45081836101696" maxy="11.37616698902041"/>
      <Origin x="46.39742402665929" y="11.28858223249814"/>
      <TileFormat width="256" height="256" mime-type="image/png" extension="png"/>
      <TileSets profile="mercator">
        <TileSet href="12" units-per-pixel="38.21851413574219" order="12"/>
        <TileSet href="13" units-per-pixel="19.10925706787109" order="13"/>
        <TileSet href="14" units-per-pixel="9.55462853393555" order="14"/>
        <TileSet href="15" units-per-pixel="4.77731426696777" order="15"/>
        <TileSet href="16" units-per-pixel="2.38865713348389" order="16"/>
        <TileSet href="17" units-per-pixel="1.19432856674194" order="17"/>
        <TileSet href="18" units-per-pixel="0.59716428337097" order="18"/>
      </TileSets>
    </TileMap>

Example tilesets loaded

Ortophoto:

wiki/images/49_ortophoto.png

Technical basemap with shapefiles overlay:

wiki/images/50_ctp.png

Technical basemap with isolines overlay:

wiki/images/51_isolines.png

Historical maps:

wiki/images/52_historic.png

Cloud shared projects

This part will be better filled as soon as we will find a server that will host the web project browsing application.

Until that point this will stay a work in progress.

A description of how that looks like can be found here

POST and GET specs

The geopapcloud idea is to make it very simple to upload and download projects from the web. So the specs are really thin.

Upload

One can set in Geopap-Cloud Preferences a server to which to connect to.

To this server url the relative path upload is attached and the compressed (zipped) project is sent to that url via a http POST.

So if your server url is http://mydomain.com, the url for the POST of the zipped project file is: http://mydomain.com/upload

Download the list of projects

To get the list of projects from a server, Geopaparazzi makes a GET request to http://mydomain.com/download.

The server should return a json of the type:

[
    {
        "status": "1",
        "error": {
            "errcode": "0",
            "errortype": "http... sys...",
            "errmsg": "",
            "errdata": []
        }
    },
    {
        "projects": [
            {
                "id": "1",
                "title": "progetto 1",
                "date": "2012-02-12 00:00",
                "author": "Andrea",
                "name": "geopaparazzi_2011_01",
                "size": "12384"
            },
            {
                "id": "2",
                "title": "progetto val di qua",
                "date": "2012-01-12 00:00",
                "author": "Luca",
                "name": "geopaparazzi_test",
                "size": "3456"
            },
            {
                "id": "4",
                "title": "progetto val di la",
                "date": "2012-03-12 00:00",
                "author": "Silvia",
                "name": "geopaparazzi",
                "size": "8764"
            }
        ]
    }
]

Geopaparazzi will then present the content as a list of available projects to download.

Download a project

To download a project from the ones picked from the list, a GET request for a zipped files it made to the url: http://mydomain.com/download/id where id is the id of the project contained in the json of the list of projects.

The file is then unzipped and loaded into Geopaparazzi as project.

Spatialite Support

As the homepage states: SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.

Geopaparazzi supports the visualization of geometries and attributes from vector data layers of Spatialite databases.

This is achieved through the spatialite-android project.

Prepare your data

See also a great blog post on how to do this step by step.

Most users usually hold vector data in shapefile format.

The best way to prepare a spatialite database from shapefiles is without any doubt the spatialite gui. A very simple guide about how to create spatialite databases from shapefiles can be found here.

Important:

  • Please remember to create spatial indexes when importing the shapefiles.
  • Please remember to Update Layer Statistics after importing shapefiles.
  • The latest version of spatialite-gui that is reported to work properly, is the 1.7.
Use your databases

Once the database is ready to be used, simply upload it into the /sdcard/maps folder on your device. That is the same folder in which the openstreetmap vector maps reside.

Make sure that your database files have the .sqlite or .db extention. It is the marker used by Geopaparazzi to identify spatialite databases.

Once the database is in place, open Geopaparazzi and enter the map view. A new data menu will be available:

wiki/images/spatialite_01_datamenu.png

From there you enter the spatialite layer panel:

wiki/images/spatialite_02_layerview.png

All the spatial tables contained in all the spatialite databases found in the maps folder are listed here.

From here you can

  • change the style of the layer
  • change the layers order (the lowest in the panel is the last drawn on the map and therefore the one on the top)
  • zoom to a particular layer

The style editor is very simple and permits for a bunch of colors and line widths:

wiki/images/spatialite_03_styleproperties.png

Once the layers are enabled, they will be loaded in the map view:

wiki/images/spatialite_04_mapview.png
Min / Max Zoom levels for geometries

You can also restrict the zoom-levels where geometries should be shown:

wiki/images/spatialite_03b_styleproperties.png

This is a collection of high scaled maps of the area of Berlin between 1870 and 1920

  • shown at Zoom 17
    • District Borders (starting at zoom-level 13)
    • Postal Borders (starting at zoom-level 15)
    • Streets (starting at zoom-level 16)
    • Houses (starting at zoom-level 17)
wiki/images/mbtiles/mbtiles.03.zoom_17.png
Sample Cluttered Min / Max Zoom level
  • If the Streets and Houses above were shown at a lower level (15-17)
    • there would not be much to see (11.471 Streets and 579.909.000 Houses)
    • and the application would crawl
wiki/images/mbtiles/mbtiles.02.zoom_14.png
  • shown at Zoom 14 - Conflicts at this level, since the polygons are rather small
    • Postal Borders (shown normaly at zoom-level 15)

Database tables described

Point
notes
_id unique id
lon longitude of the note
lat latitude of the note
altim elevation
ts timestamp
text text of the note
cat category of the note
type type of the note (normal or OSM)
images
_id unique id
lon longitude of the image
lat latitude of the image
altim elevation
azim azimuth
path the relative path of the image inside the application folder
ts timestamp
text text of the note
bookmarks
_id unique id
lon longitude of the bookmark
lat latitude of the bookmark
zoom the zoom of the bookmark
north the north bound of the bookmark
south the south bound of the bookmark
west the west bound of the bookmark
east the east bound of the bookmark
text the name of the bookmark
Gps
gpslogs
_id unique id
startts log start timestamp
endts log end timestamp
text name of the log
gpslog_data
_id unique id
lon longitude of the log point
lat latitude of the log point
altim elevation of the log point
ts timestamp of the log point
logid id of the log of which the point is part
gpslogsproperties
_id unique id
logid id of the log the properties are part of
color the color to use to draw the log
width the width to use to draw the log
visible flag that defines if the log is visible at the time given
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.