Skip to main content

OsmAnd Development

Overview​

Test functions of the app are collected in the OsmAnd development plugin. Use them at your own risk.

The OsmAnd development plugin allows you to try new features of the app or to configure OsmAnd for testing: simulate navigation routes, check the screen rendering performance, etc. Plugin is designed for developers and experienced users and not required for daily use of the application.

Required Setup Parameters​

To activate special features for developers and testers:

  1. Enable OsmAnd development plugin in the Plugins section of the main menu.
  2. Make the necessary settings in the plugin's Settings menu.
  3. Enable developer widgets if necessary.

Plugin settings​

info

OsmAnd development plugin settings are global and apply to all profiles.

Use one of the following paths to open the plugin settings:

  • Main menu β†’ Plugins β†’ OsmAnd development β†’ Settings.
  • Main menu β†’ Global Settings β†’ Profile β†’ OsmAnd development plugin settings.

Development Settings Android Development Settings 2 Android

Terrain​

Use raster SQLIte format for hillshade and slope - allow you to load old format raster maps.

Troubleshotting​

  • Simulate your position - Simulate your position using a recorded GPX track.
  • Rendering debug info - Display the rendering performance (only available for version 1 rendering engine).
  • Logcat buffer - Check and share detailed logs of the app.
  • Write Bearing - Save bearing to each track point while recording. Bearing is the compass direction from your current position to your intended destination. Affects track recording.
  • Write Heading - Save heading to each track point while recording. Heading is the compass direction from your current position towards true north. This option is enabled by default. Affects track recording.

Application Testing​

  • Simulate first app start - Sets the flag indicating first app startup, keeps all other settings unchanged.
  • Test voice prompts - Select a voice and test by playing announcements.
  • Transparent status bar - The map becomes visible under the status bar.
  • Show free version banner - Display the free version banner even in the paid version.

Internal Algorithms​

  • Safe mode - Run the app in (slower) safe mode.
  • Safe GPX approximation - Perform the GPX approximation using slower Android instead of native code.

Memory settings​

  • Memory allocated for routing option allows you to determine the amount of memory allocated for calculating long routes. You can use this option if the Standard routing A* is selected in the Navigation settings.
Calculation of extra-long routes

Widgets​

Important

OsmAnd developer Widgets can be added to the screen only when OsmAnd development plugin is enabled.

You can use OsmAnd developer Widgets to get information about zoom level, map rendering speed, elevation of the map center above sea level, distance to map center, camera elevation and incline.

FPS Widget​

The FPS Widget shows how fast the map and map elements are displayed and refreshed. The numeric value is indicated in frames per second (FPS).

Menu β†’ Configure screen β†’ Right panel / Left panel β†’ Developer widgets β†’ Map rendering FPS

Development widget fps 1 Development widget fps 2

Camera position Widgets​

You can use Camera position widgets to give the OsmAnd map a realistic look and match photos of the Earth taken both from above and from space.

Menu β†’ Configure screen β†’ Right panel / Left panel β†’ Developer widgets

Camera position Widgets 1 Camera position Widgets 2

Camera tilt​

Camera tilt widget Android 1 Camera tilt widget Android 2

The Camera tilt widget displays the incline between the central view vector of the camera (viewer) and an imaginary flat ground of the earth. The default value is 90 degrees (no tilt).

note

The camera tilt is changed by moving the camera (viewer) while the center point on the map (we are looking at) remains the same. The distance to it (in fact, zoom) does not change. At the same time, due to the imaginary movement of the viewer, the distance from the camera to the surface changes.

Camera Elevation​

Camera elevation widget Android 1 Camera elevation widget Android 2

The Camera Elevation widget shows the camera elevation above the surface level. Camera elevation is indicated in meters / kilometers.

Zoom level​

Zoom level widget Android 1 Zoom level widget Android 2

Widget has two views: Zoom level and Map scale. The first shows the current map zoom level, the second shows the current map scale (A map scale is the relationship between a distance on a map and the corresponding distance on the earth. The example: 1:50,000).

Switch the mode by tapping on the widget.

note

The initial zoom level (0) is the level at which the entire surface of the earth (the full map) is displayed on the screen, and its size is 256 by 256 pixels.
Each next zoom level reduces the imaginary distance to the ground by about 2 times.

Distance to target​

Distance to target widget 1 Android Distance to target widget 2 Android

The Distance from camera to target widget shows the distance between the camera (viewer) and the center of the map. This distance is displayed in meters / kilometers.

Comparison with a satellite imagery​

Comparison

A comparison of the OsmAnd map and the earth's surface reveals the following patterns:

  • Maximum distortion is observed at large zooms (6-7 zoom for camera incline 90 degrees).
  • As the camera tilt decreases (from 90 to 10 degrees), the distortion of the map increases.
  • Distortions begin to be observed earlier in high latitudes.

The table below contains information about the tilt of the camera and the distance to the target and zoom level at which the OsmAnd map distortions become visible. If the camera continues to move away from the target, the observed distortion of the OsmAnd map will increase.

InclineLatitudeMax ZoomHeight, kmDistortion
9026655005%
9050625005%
9066713005%
6526811006.5%
655088006.5%
656696306.5%
452693507.5%
455093207.5%
456682107.5%
2026123010%
2050113010%
2066113010%

Available RAM Widget​

This widget is designed specifically for you when using OsmAnd to provide a more convenient and informative interaction with the available RAM on your device. It allows you to easily and quickly monitor the available RAM, which is especially useful when using OsmAnd for navigation. Read more about the widget in the Information widgets article.

GPX-track simulation​

OsmAnd provides an opportunity to simulate the location and movement of your device using a GPX track. For these purposes, use Simulate location by GPX option in the OsmAnd development plugin settings:

  • Tap Simulate location by GPX.
  • Select a track to simulate the location and movement of the device.
  • Select movement simulation speed.
  • Tap Start buton.

Development Settings Android Development Settings Android

Note
  • Simulate location by GPX can be also accessed through Quick action menu.
  • The location movement speed during the simulation can be set equal to the recorded speed (1), or faster (x2, x3, x4).

After running the simulation, you will see on the main screen of the app that navigation mark is moving according to GPX track. Tap my location button to synchronize "my location" (simulated geolocation of the device) with the center of the map.
To stop simulation of the movement of your device, go back to the OsmAnd development settings and tap stop in the simulate your position option.

note

You can also simulate movement along a GPX-track from the navigation menu without enabling the OsmAnd development plugin. In that case, your location will not be synchronized with the track.