1. SMASH, the free and open source digital field mapping for IOS and Android

If you are looking for the source code for the software of this project, jump right to this link.

SMASH is a digital field mapping application developed to perform fast qualitative engineering/geologic surveys and GIS data collection.

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

  • is open source and works both on IOS and Android

  • fits in any pocket and can be always at hand, when needed

  • gives the possibility to take geo-referenced and possibly orientated pictures during a survey, with further possibility to import them into GIS applications

  • is able to easily exploit an Internet connection, if available

  • is extremely easy to use and intuitive, providing just few important functions


SMASH on the ipad

The main features available in SMASH are:

  • geo-referenced notes and pictures

  • gps track logging

  • form-based data surveys

  • easy export of collected data

  • a map view for navigation with support for raster and vector data

  • geopackage (OGC standard) support


SMASH on the IPhone.


SMASH on the Android, Pixel 2 XL.

1.1. License

The SMASH source code is licensed under the GNU General Public License, Version 3

1.2. Community

SMASH is stricktly related to the older, more mature and andoird only app Geopaparazzi. For that reason they share the same channels and spaces.

Find out the latest SMASH news.

Join the Geopaparazzi user’s discussion!. Feel free to post also about SMASH.

And there’s a group for Geopaparazzi/SMASH developers too.

You can even contribute to this Geopaparazzi or SMASH manual!

1.3. Need help?

Subscribe to the mailinglist, we are here to help you!

We also have a mailinglist for developers.

1.4. Found bugs?

If you found a bug, please report it in our issue tracker. We will check it and work on it as soon as we can.

1.5. Need features?

If you would like to see new features in SMASH, you have a few ways to get there:

1.6. Donations

If you find this application useful for your job, please consider to donate to support the development. Donations to this project support the development of the Hortonmachine, Geopaparazzi and SMASH projects.

Thanks for helping to keep this development free and open source.

2. Installation

2.1. IOS

SMASH can be found on the Apple store. Since the word SMASH is used a lot in gaming apps, in order to avoid to have to scroll down many results, it is useful to insert in the search bar the complete name: SMASH Digital field mapping

In that case the right app is the first result in the list, apart of an Ad that in the below case shows a gaming app:


The SMASH entry in the Apple store.

By tapping on it it is possible to find a description and some feature screenshots.


Details of the SMASH app in the Apple store.

To install the app just push the GET button and follow the usual IOS installation instructions.

2.2. Android

2.2.1. From Google Play

SMASH can be found on the Google Play store. Since the word SMASH is used a lot in gaming apps, in order to avoid to have to scroll down many results, it is useful to insert in the search bar the complete name: SMASH field mapping


The SMASH entry in the Google Play store.

By tapping on it it is possible to find a description and some feature screenshots.


Details of the SMASH app in the Google Play store.

2.2.2. From the main repository

For people that have no access to Google Play, an apk has been paced under the releases page of SMASH. Under the assets section of each release there is also an apk file. That one can be manually installed on Android. Actually, if the link is accessed from within Android, the installation is proposed on clicking the link.

github release

Details of the github release page with the apk to download at the bottom.

3. Launching the app

The first time SMASH is executed a very short overview of the coach markers is run. They can be accessed at any time from the upper right question mark icon:

08 coach

The selection/creation of the working project at startup.

Once you launch SMASH, the application asks for the possibility to create a new project or open an already existing one. Select the project from your device or define the name of a new one.

If projects have been already opened, a list of recent project will be available for selection.

01 project

The selection/creation of the working project at startup.

SMASH is based on the concept of projects: all the data collected for a project are saved in the same project database file (GPS log, simple notes, images, form notes).

4. The Main View

After selecting the project, the main map view appears.

All the features that need to be quickly accessed, such as GPS logging, notes creation, as well as the visualization of the current position on a map are accessible from that view.

main view

The main view of SMASH.

In particular, from the main view the following primary functions can be accessed:

  • center map on GPS, open the GPS info tools and activate the automatic center on GPS

  • take notes, open notes list and select the view mode (for simple notes and form notes)

  • create a GPS log and open the logs list

  • open the layer view and open the map plugins dialog

  • activate the bottom toolbar

  • open the project information and share dialog

  • open the left side drawer with the main menu

  • open the right side drawer with the tools section

  • open the interactive coach marks

4.1. GPS info button and tools

The central bottom button is the GPS info button.

The icon of the GPS status button can be of the following colors:

  • RED: GPS is switched off, this option is available only on iOS devices

  • ORANGE: GPS is on but no fix was acquired

  • GREEN: GPS is on and has fix, but no log is being recorded

  • BLUE: GPS is on and logging.

By tapping on the button, if the GPS has a fix, the map is centered on the GPS position.

By long tapping on the button, the GPS info and tools are opened:

02 gps info tools

The GPS info and tools.

From here the user can access the current GPS information and copy the coorinates into the device’s clipboard. To do that long tap on the coordinate you want to copy.

03 gps info tools

The GPS info and tools copy coordinates.

To close the GPS info and tools panel just swipe it down.

By double tapping the GPS button the automatic map centering on GPS is toggled.

On Android devices the GPS position notification message is dynamic. In the notification of the device there are all the information about the GPS status (position and logging).

gps notification 01

The visualization of the GPS notification on an Android device.

4.2. Notes

SMASH supports different types of notes:

  • simple notes

    • simple text notes

    • simple picture notes

  • form-based notes

4.2.1. Simple Notes

To create simple notes tap on the first icon of the lower toolbar. The Simple Notes dialog appears, allowing to choose between:

  • text or image notes

  • to place the note in the current GPS position or in Map Center.

04 simple notes

Adding simple notes to the project. The note will be placed in the GPS position.

The highlighted icon at the top of the dialog tells the user whether the note will be inserted in the current GPS position or in the current map center.

05 simple notes

Adding simple notes to the project. The note will be placed in the current center of the map.

When the text note entry is selected, the note properties view opens:

06 simple notes

The text properties view.

By tapping on the pencil right to the first table entry, it is possible to enter the text of the note.

Moreover it is possible to select color, size and icon for the note.

When the image note is used instead, the camera opens and allows the user to save a picture to the project.

If a note is tapped on from the map view, a snackbar opens, allowing to share, delete or edit the selected note:

notes snackbar

The quick note info snackbar.

If the note is an image note, a thumbnail of the note is shown.

4.2.2. Simple Notes List

By long tapping on the add note button, the notes list opens:

notes list

The notes list view.

From here notes can be modified or zoom to the selected note (swipe note to the right) or deleted (swipe note to the left).

07 simple notes

The options available for a single note in the notes list.

4.2.3. Simple Notes visualization

By tapping twice on the add note button, the settings for the notes view mode opens:

10 notes mode

The notes list view.

From here you can decide what to visualize for that kind of note (icon, label or nothing).

4.2.4. Form based notes

The second icon from left on the lower toolbar is for form based notes.

09 form notes

The add form note dialog. Icons are supported.

Form based notes allow you to take complex notes containing detailed information. Some example forms are included in the installation of SMASH.

The examples entry in particular shows all the possible form widgets available:

form text

An example of form based notes.

The notes can be saved and modified at any time.

To understand how to create forms, have a look at the dedicated section in the geopaparazzi project. The two projects share the exact same project and form format.

There is only one thing in which SMASH And geopaparazzi forms differ and that is icons. SMASH supports icons in the single note definition but also in the definition of each widget.

To add an icon to the form definition, a tag sectionicon needs to be added to the section. This can be seen in the example forms, ex:

    "sectionname": "text note",
    "sectiondescription": "a simple text note",
    "sectionicon": "fileAlt",
    "forms": [
        "formname": "text note",
        "formitems": [
            "key": "title",
            "value": "",
            "icon": "font",
            "islabel": "true",
            "type": "string",
            "mandatory": "no"
            "key": "description",
            "value": "",
            "icon": "infoCircle",
            "type": "string",
            "mandatory": "no"

The same goes for formitems, that can feature an icon tag.

The icon name itself can be looked up in the [icon section] of SMASH.

4.2.5. Form Based Notes List

Same as for simple notes, when long tapping on the button, the user is led to the list of form notes.

4.2.6. Form Based Notes visualization

Same as for simple notes, when tapping twice on the button, the settings for the notes view mode opens.

4.3. GPS Logging

To start logging, the user simply has to push the GPS log button.

Once it is tapped, the user is prompted to insert a name for the log or to accept the one generated based on the current date and time (log_YYYYMMDD_HHMMSS).

log start

The new GPS log dialog.

Once logging has started, both the GPS logging button and the GPS status icon will turn blue.

log button on

The GPS logging button with its blue (currently logging) color.

While logging some log information are displayed in a box on the top right of the application window. This information are about the cumulated time and distance of the log. The distance has two values, one calculated with raw data and the other by applying the Kalman filter (see GPS Settings). The first value is the one defined in the settings and the other one is indicated in brackets.

log infoscreen

The GPS logging info box.

On Android devices where the GPS position notification message is dynamic, in the notifications of the device there are all the information about the GPS status and logging information. The title of the notification shows the logging operation and in the second line time and distance from starting point of the current log is displayed.

gps notification 02

The visualization of the GPS notification on an Android device.

To stop logging, the same button is used. Once tapped, you are prompted to verify the action.

4.3.1. GPS Logging List

Same as for the notes, when long tapping on the GPS log button, the user is led to the list of GPS logs.

11 GPS list

The GPS logging list view.

From here GPS logs can be zoom to or it is possible to modify the style of the selected GPS log and visualize the profile (swipe log to the right), and export to GPX or delete it (swipe log to the left).

12 GPS list

The options available for a single GPS log in the GPS logs list.

The visualization of the profile opens the GPS Log Profile View where it is possible to analyze the profile and navigate it.

14 GPS list

The start of the GPS Profile View.

To query each single moment of the profile just tap and move on the profile chart. All the GPS information and the exact position will be highlited on the map.

15 GPS list

The navigation of the profile of a GPS log.

It is now possible to decide if to use the filtered or the raw data logs in the logs list. Just enter the [GPS settings] and enable the option.

4.3.2. GPS Logging visualization

Same as for the notes, when tapping twice on the GPS log button, the settings for the GPS logs view mode opens.

13 GPS list

The options available to set the GPS logs view mode.

SMASH uses a mathematical filter on GPS data to correct and homogenize the logs (actually the Kalman filter). In any case the application saves also the original data.

The user can decide how to visualize the filtered and the original data (hide, solid, transparent):

  • visualize the filtered data while hiding the original GPS data

02 only filtered

The options available to set the GPS logs view mode.

  • visualize the original and hide the filtered

03 only orig

The options available to set the GPS logs view mode.

  • have the original in transparency and see the filtered

04 both

The options available to set the GPS logs view mode.

4.4. The layers list view

The layers list view features the currently visible layers. Since layers on bottom cover layers above them in the map, there is the possibility to change the layers order simply by dragging the selected layer to the new position. The order defines the visualization of all the layers in the map (raster and vector, online and local).

15 layers list

The layers list view.

From this view it is possible to add new layers from the supported map types using the two icons on the top right of the current panel 14 layers list: the first one to add an online resource and the second one to add a local resource.

If a layer features a bounding area (as vector maps or mbtiles layers), sliding it to the right will zoom the map on the bounding area. The right sliding also enables the possibility to set some visualization properties of the selected layer.

Sliding the layer to the left, allows to remove the layer.

Local data must have its own projection information file (.prj) both for rasters and for vectors. SMASH supports reprojecting and some CRS are loaded in the application by default. For those projection not yet supported just tap on the layer and follow the instructions.
16 layers list

The layers list shows a layer with a projection not supported.

17 layers list

The list of supported projection after adding the new one.

Double tapping on the layers button opens the Layers Plugins dialog.

18 layers list

The layers plugins dialog.

From here it is possible to select which decoration to visualize on the map from:

  • scalebar

  • projection grid

  • center cross

  • GPS position.

4.5. Zoom buttons

The zoom buttons don’t need lot of information. They can be used to zoom in and out the map. The same can be done using the pinch gestures. The value visualized represents the zoom level following the OSM convention.

5. The bottom toolbar

From version 1.5.0 Smash shows a small handler in the lower right corner which allows to activate the bottom toolbar.

18 toolbar

The bottom toolbar handler in the map view.

19 toolbar

The visualization of the bottom toolbar.

The bottom toolbar will host all the interactive operations on layers and on the map view.

If selected one tool, its icon becames red, this means that the tool is active. To deactivate it just tap the same icon in the bottom toolbar. The tools are automatically deactivated when the user decides to exit the bottom toolbar by tapping the handler on the right corner of the map view. In addition, when activated, the feature editing tool will show its specific options in the bottom toolbar.

5.1. Feature editing

The first icon of the bottom toolbar represents the feature editing tool for vector layers in the Geopackage format:

  • of all feature’s type: point, lines, polygons

  • in their own coordinate reference system.

The features editing works for all visible vector layers of a Geopackage and allows to:

  • modify existing geometries

  • add a new geometry

  • delete an existing geometry.

36 editing

The moment of tapping and loading query data with enabled the features editing tool.

Once activated long tap on a feature in the map to select the feature below, for polygons, or in the very near, for lines and points. The diameter of influence of the tapped position can be set in the general Settings → Vector layers → Info Tool.

The selected feature will be highlighted in yellow in the map and some specific editing tools will be displayed in the bottom toolbar to:

  1. delete

  2. edit the attributes table

  3. save the modified geometry

  4. cancel the geometry changes until last saved action.

37 editing

The long tapped polygon feature selected.

5.1.1. Editing of existing features

Editing of an existing geometry consists of:

a) drag edges/angles in the new position

b) move the middle points of segments: this will become an edge and automatically two additional middle points will be added from the selected vertex to the two adjacent vertexes in both directions

c) long tap on a node to remove it.

38 editing

An example of an edited polygon feature.

As soon as the modified geometry is ready, it is possible to either save the changes, by tapping on the save icon 39 editing or long tap on the cancel icon 40 editing to restore the initial geometry for that feature. Both the commands will close the editing tool for the current geometry.

Editing of the attributes of and existing feature is accessible both from the editing menu and from the query features tool. In this case just select the second icon of the editing toolbar to visualize the attributes table of the current feature. Once edited, the changes are automatically saved in the attributes table.

To exit the tool tap the left arrow on the top left of the window.

44 editing

Editing attributes of a polygon layer.

5.1.2. Add new features

To add a new feature in one of the visible Geopackage layers long tap on the desidered position regardless of the type of the new feature you want to add:

a) the application will ask in which layer to save the new feature

41 editing

The list of the available layers where to create the new feature.

b) select the layers from the list of the available

c) new feature of the type of the selected layer will be added automatically in the tapped position:

  • point layers: a new point is added in the tapped position

  • line layers: a small line with two vertexes will be added in the tapped position, the user can then modify this geometry following the Editing of existing features instructions

42 editing

An example of the new line feature created automatically by the application.

  • polygon layers: a small polygon with 3 vertexes will be added in the tapped position, the user can then modify this geometry following the Editing of existing features instructions

43 editing

An example of the new polygon feature created automatically by the application.

5.1.3. Delete existing features

To delete an existing feature:

  • long tap on the feature to delete to select it

  • tap the trash icon in the bottom toolbar.


    please consider that the delete tool has no possibility to reverse the action, there are no undo or cancel tools working after it.

5.2. Query features

The second icon of the bottom toolbar activates the query features tool, that can be used to enable the vector layer info and attributes editing. Once enabled, tapping on the map will query all the visible vector layers for information in the tapped position. The attributes will be also editable if the selected feature is contained in a Geopackage layer.

20 query layers

The moment of tapping and loading query data with enabled vector queries.

The info tool queries all visible vector layers and opens the feature info view, which showsdddddd each selected feature highlighted in the map context and its attributes:

  • to browse between the selecte features (if more than one) use the arrows on the top right of the window

  • it is possible to edit the attributes of the feature only of Geopackage layers by selecting the pencil near the value of the attribute in the table

21 query layers

The feature info view showing a polygon feature in a non Geopackage layer.

22 query layers

The feature info view showing a point feature in a Geopackage layer with the possibility for attribute’s editing.

5.3. The measurement tool

The third icon of the bottom toolbar represents the measurement tool, with this tool the user can drag over the map and have a qualitative measurement of the distance. The path is highlighted in red on the map view and the total distance is shown on top of the measurement icon in the bottom toolbar.

20 measure

The measurement tool.

6. The tools drawer

The Tools or right Drawer button is placed on the right top action bar.

This menu groups some maps and features tools together with some extra actions.

18 tools drawer

The complete tools drawer.

6.1. Project Info

It shows the path to the current database and allows the user to share the file with others.

19 tools drawer

The project info panel with sharing button.

6.2. Position Tools

This section of the tools drawer contais the possibility to:

  • Go to a specified location entered by an address

  • Share position using other applications installed on the device.

6.2.1. Go to

The go-to function allows to exploit the devices OS geocoding function to find locations based on an address. It is then possible to move the map to the selected result.


The geocoding view.

6.2.2. Share position

This action allows the user to share the current gps position with the most common social media methods available on the device.

6.3. Extras

This section contains some non specific tools of the application.

6.3.1. Available icons

This action opens the icons view:


The icons view.

In this view the user can select from all the icons of the material design icons project, which ones should appear in the notes properties view and therefore used as markers in the map.

The names that appear in the list can also be used to enable icons for form notes, as explained in the forms section.

6.3.2. Offline maps

SMASH has a builtin function to download mapsforge (see supported map types) map files for the whole world.

offline maps

The icons view.

Once a map is tapped, the download starts. This can take a while when downloading large countries.

At the current time, due to a tecnical issue in the flutter framework, the visualization of mapsforge maps at low zoomlevel leads to freezing of the user interface, since the tiles are generated in the main thread. Therefore, after the download, SMASH performs a one-time tile generation for low zoomlevels, freezing the user interface. It is suggested to let this process finish, in order to later experience a smooth map navigation using mapsforge maps.

7. The main drawer

The left drawer contains some of the main operations that a user usually performs while not actively taking notes.

23 main drawer

The main, or left, drawer.

7.1. Project

When tapping on the Project action, the user is prompted to the starting panel (Project view) where it is possible to Open and existing project, Create a new project :

  • browse the local folders to select an existing project

  • insert a new name for the project or accept the default one based on the timestamp

or select one of the most Recent projects from the list.

24 main drawer

The Project View.

project new

The new project dialog.

New projects will be created inside the application’s folder structure. To open old projects browse the project folder inside the local application’s folder.

SMASH projects are of the exact same type as those of the Geopaparazzi project. That is the reason the extension of the file is gpap.

Once selected, the project is loaded.

7.2. Import

SMASH allows to import data from the Geopaparazzi Survey Server.


The import view.

In fact SMASH is currently the suggested tool to synchronize Geopaparazzi and SMASH surveys with the GSS.

When entering the GSS import view, a list of datasets, projects and forms available from the server is presented to the user:

gss import

The gss import view.

Using the left icon, data can be downloaded to the device. Once downloaded the application will show what datasets are still available.

7.3. Export

SMASH is currently able to export to files and to synchronize the project with the Geopaparazzi Survey Server.

gss export

The PDF export view.

7.3.1. PDF

When pushing the pdf export button, a pdf containing all the notes in the project (simple and form based), is generated and saved to the export folder in the application directory.

pdf export

The export view.

7.3.2. GPX

When pushing the gpx export button, the application exports the whole survey project to a single GPX and saves the file in the export folder in the application directory.

7.3.3. KML

When pushing the kml export button, the application exports the whole survey project to a single KML and saves the file in the export folder in the application directory.


When pushing the Geopackage export button, the application exports the whole survey project to a single Geopackage and saves the file in the export folder in the application directory.

geopkg export

The export view.

7.3.5. GSS

When pushing the GSS export button, the stats page is presented. It shows what will be uploaded to the server if pushing the upload button.

gss stats

The GSS export stats view.

Once the upload button is tapped, the upload begins. A list with the progress for each resource is presented:

gss upload

The upload progress list.

If the device is not registered with the server, the following message will appear, stopping the upload:

gss upload error

The upload error in case of no permission to upload.

7.4. Settings


The settings view.

7.4.1. GPS Settings

27 main drawer

The gps settings view.

In the GPS settings the user can define filters based on distance and time interval for the logging activity.

There is also the possibility to visualize the GPS point count separated for the valid and for all points. And to decide to use the GPS filtered points (currently calculated applying the Kalman filter) to all GPS dependent features of the application (instead of the original raw data).

In case of GPS logs original and filtered GPS signal are BOTH always saved into the database and the user can choose to look at the original and/or filtered log in the GPS Logging visualization.

Last but not least it is possible to simulate a gps log. The device needs to have a gps fix for this to work. This can be handy when in need to demo the application’s logging functionality when sitting indoor, but still having a fix.

The second tab of the GPS setting view is dedicated to the Live Preview of the GPS. It shows in details the different points fixed by the GPS with their main attributes and the influence of the different filters applied.

32 live preview

The gps settings view.

7.4.2. Screen Settings

28 main drawer

The screen settings view.

In the screen settings view it is possible to:

  • toggle the screen-always-on functionality

  • use the Retina screen mode

  • define the color picker to use in the application when setting a color

  • style the map center cross

  • change the size of the icons of the toolbar in the main view

7.4.3. Camera Settings

The camera settings allow to choose the pictures resolution between high, medium and low.

7.4.4. Vector Layers

29 main drawer

The vector layers settings view.

This settings part allows the user to:

  • define the amount of data to be loaded. This can be important for large vector datasets that would make the map navigation less smooth; options are all or a defined number of features from 50 to 10000

  • select if to load the data only on the last visible map area

  • define the radius of the tap of the info feature and editing tool

  • set the dimension of the editing drag handler size

  • set the dimension of the editing intermediate drag handler size.

7.4.5. CRS

The CRS view contains the list of supported CRS for the application with the possibility to add new projections by epsg code. Available projections are used to reproject vector datasets (geopackage layers and shapefiles) onto the map.

33 main drawer

The CRS view.

34 main drawer

The add CRS panel.

7.4.6. Device Settings

30 main drawer

The device id view.

The device id can be necessary in various situations. This is the case of the synchronization with the Geopaparazzi Survey Server. In that case the device id is the unique identifier of a surveyor.

It is possible to override that device id for those cases in which a standardized id generation is used inside and organisation.

7.4.7. GSS Settings

31 main drawer

The gss setting view.

In this setting view the user can set the server url and the password on which there is an istance of the Geopaparazzi Survey Server to synchronize with.

7.4.8. Diagnostics Settings

In the diagnostics settings view it is possible to show the full debug information and filter on the main errors.

7.4.9. Turn GPS off/on or Exit

Since the behaviour of the background applications is different between Android and iOS devices, this option covers the possibility to definitely disable the application to collect data:

  • iOS: Turn GPS off (the app in background will in that case use no resources)

  • Android: use the Exit button to quit the application instead of the standard return mode.

8. Supported map types

8.1. Geopackage

SMASH supports the Geopackage format based on sqlite database both raster tiles and vector formats.

Geopackage vector layers are supported also for the editing of the attribute table.

The vector layers can be in different projections, they will be reprojected on the fly.

8.2. GPX

GPX files can be loaded as layers. SMASH will create different layers for the waypoint and track information contained.

It is also possible to style the gpx layers. But since the styling information is not saved anywhere (the file format doesn’t support style), it will persist only for the current session.

8.3. MBTiles

MBTiles is a file format for storing map tiles in a single file. It is, technically, a SQLite database. See the openstreetmap wiki for more information.

8.4. Mapsforge Format Data

The mapsforge project provides free and open software for the rendering of vector data based on OpenStreetMap. It developed an efficient binary format for storage of OSM map data (usually with file extension .map), and is offering country specific .map files for download. Geopaparazzi is able to render map tiles locally from .map files and will cache rendered tiles in a local MBTiles store.

Maps are maintained and distributed by the mapsforge team and can be downloaded from their download server.

In their default style they kind of look like:

main view mapsforge

The standard mapsforge map.

8.5. Mapurls: Map tiles

By default, SMASH is configured to load map Mapnik rendered tiles from OpenStreetMap’s tile server on the Internet.

It is possible to load other online tile source if they are served in the TMS format using mapurl files. A mapurl file looks like the following:

center=11.42 46.8
description=Mapnik - OpenStreetMap and contributors, ODbL.

The mandatory 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

This information can be tested also in a browser http://tile.openstreetmap.org/9/271/182.png has ZZZ=9, XXX=271 and YYY=182
  • the minimum zoom level that is supported (typically 0)

  • the maximum zoom level that is supported (likely not more than 19 or 21 depending on the server)

  • the center of the tile source

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

    • type=tms

    • type=google

9. Layers style

SMASH supports layers styling through the OGC standard SLD. There are also several editors and GIS that support SLD, so it is possible to create the styles for the survey on a GIS and transfer it together with the data on the device. SMASH supports the visualization of the the vectors in Geopackage and GPX format using the style defined as SLD. For Geopackage and GPX layers only it is also possible to create a simple personal style inside the application.

SMASH automatically visualizes vector layers as defined in theyr own SLD file (previously created in a GIS). It is also possible to create a new style for the Geopackage and GPX layers by accessing the Layer List and sliding the layer to style to the right to enter the style properties.

9.1. Style a Geopackage layer

sld 02 layers

A visualization of the Layer List containing some Geopackage layers.

For a polygon layer for example it is possible to edit fill and stroke properties.

sld 03 polygons

The possibilities for styling a polygon layer in SMASH.

For a line layer it is possible to edit only the stroke.

sld 05 lines

The possibilities for styling a line layer in SMASH.

And for a point layer it is possible to edit the shape, fill and to label the features.

sld 07 points

The possibilities for styling a point layer in SMASH.

Please remember to save using the floating action bottom at the bottom. This will write the style to the database table.
sld 08 points map

An example of styling a point layer in SMASH.

SMASH also supports the visualization and editing of one type of theming: by unique values. In this case a FeatureTypeStyle is populated with several rules that obey to a filter that supports matching of unique values from the attributes table.

If a thematic style is already defined for a layer, the properties page has buttons to change rules and modify them.

The following is an example that features 2 FeatureTypeStyles, one with just a Rule containing a textsymbolizer:

sld 09 theme

An example of theming style with one rule containing a label.

and a second one with all the Rules with filter:

sld 10 theme

An example of theming style with all rules.

If only one FeatureTypeStyle or Rule are present, the header titles can vary:

sld 11 theme single fts

An example of theming style if only one FeatureTypeStyle or Rule are present.

The result of the previous styling settings is the following:

sld 12 theme map

An example of a simple thematic style created in SMASH.

9.2. Style a GPX layer

The style properties of a GPX layer will be also saved to an SLD sidecar file to ensure style persistence.

sld 14 gpx

An example of the styling options of a GPX layer in SMASH.

In particular style can be defined for lines and points. If waypoints have the name tag, they can be used for labeling.

sld 15 gpx map

An example of the styling options of a GPX layer in SMASH.

10. Application folder structure

By default SMASH interacts with the filesystem using a folder named smash that resides in the main storage. On IOS devices that would be the Documents area of my application, while on android that usually is the internal sdcard.

Inside the smash folder, the following subfolders hold the information by category:

folder structure

The folder structure of the application.

  • config: the folder that contains internal app configurations. For example the debug database is kept here. This can be sent to the developers in case of bugs to help solving them.

  • export: folder into which documents produced from exports are saved.

  • forms: folder for forms. Any form file in there is loaded as form note in SMASH.

  • maps: the folders in which to keep maps. Downloaded and synchronized maps are saved into this folder.

  • projects: folder inside which new projects are created.

11. Appendix 1: Raster reprojection

The support for the visualization of the Geopackage raster layers allows to set different parameters like the tiling system and the projection. As for the tiling system we reccommand to use Gdal to create Geopackage rasters. In fact, Gdal by default generates only one zoomlevel at the optimal image resolution and using the best tile schema. This allows to create geopackages of big imagery maintaining more or less the same size o the original data.

Smash supports different projections and does the reprojection on the flight if it is different from the usual EPSG 3857 used as base for the application.

Geopackage tile datasets can be loaded in two different ways. The settings are available in the properties view of geopackage layers.

01 gpkg props

The Layers view: a detail of possibilities for a Geopackage layer.

02 gpkg props

The properties view of a geopackage layer.

The available options are:

  • the opacity value of the entire map

  • the possibility to load a wider range of tiles schemas: to use for an ortophoto reprojected with gdal and packaged as geopackage

03 gladschema

The visualization of a geopackage layer with an ortophoto reprojected with gdal.

This feature has a larger memory footprint as it loads the tiles in memory as an image. So if the dataset is too large for your device it will not work and it has to be disabled.
  • the color to make transparent: this is useful when there is the need to overlay technical maps over an elevation model or ortophoto. But it also solves a situation like this:

04 collar

The visualization of two geopackage layers with an ortophoto reprojected with gdal, note the black collar.

where there are two geopackage layers of a reprojected ortophoto. When both loaded the black collar of one covers the other. It is possible to set the black collar to transparent by selecting the black color in the picker.

06 collar fixtile

The visualization of two geopackage layers with an ortophoto reprojected with gdal, with the black color set to transparent.

when the jpeg geopackage tiles are generated, there is some interpolation and antialiasing going on, which makes part of the color not completely black, hence some pixel will remaining.