Skip to main content

OsmAnd development

🚧 This article is incomplete

This article is incomplete & needs to be reviewed. You can help by creating a pull request.

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

Overview​

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.

Setup​

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

Development plugin settings are global and apply to all profiles.

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

Development Settings Android Development Settings 2 Android

NOTE

The options listed below are only available in the Android version of OsmAnd

Pre-beta features​

  • Transparent status bar - The map becomes visible under the status bar.
  • Heightmap option adds the ability to load Heightmaps and Altitude widgets (they display the altitude of the current geolocation or the elevation of the current map center).

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.

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.
  • 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.
note

Higher memory allocation may impact the performance of other apps.

Widgets​

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.

Important

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

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 β†’ Left / Right panel β†’ Developer Widgets

Development widget fps 1 Development widget fps 2

Elevation Widget​

⚠️ Android only
This feature is currently not available for the iOS version of the OsmAnd app.

With Elevation Widget you can find out the elevation above sea level of the current map center. To display elevation data:

  • Enable Heightmap option in the OsmAnd Development plugin settings
  • Download heightmaps of the desired area are
  • Put on Elevation: map center widget on the screen Menu β†’ Configure screen β†’ Left / Right panel β†’ Altitude

Elevation Widget 1 Elevation Widget 2

Camera position Widgets (Android)​

In order to make sure that the OsmAnd map is realistic and corresponds to photos of the Earth made from a height (as well as from space), you can use Camera position Widgets.

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

Camera position Widgets 1 Camera position Widgets 2

Camera tilt​

Camera tilt widget 1 Camera tilt widget 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 1 Camera elevation widget 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 1 Zoom level widget 2

The Zoom level widget represents the current map zoom level.

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 Distance to target widget 2

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%

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 your position option in the OsmAnd development plugin settings:

  • Tap Simulate your position.
  • Select a route simulation speed.
  • Select a GPX track to simulate the location and movement of the device.

Development Settings Android Development Settings Android

Note

The location movement speed during the simulation can be 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 on 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 on stop in the simulate your position option.

note

You can also use GPX-track simulation directly from navigation menu without enabling the OsmAnd development plugin. In that case you can use voice promts and other navigation options.