Skip to main content

Map Sources

To switch to another map to display, select Map Source menu in app settings or tap the layers icon on the map view.

In this menu, you have the ability to manage the list of preferred and used map sources, as well as hide any unused sources from the switch map menu.

Generally there are two types of maps you can use within the app: offline and online maps.

Offline maps

The offline maps available in Guru Maps are vector maps that are generated directly on the user's device using the OpenStreetMap data. These maps not only provide map information, but also include navigation and topographical data. They are highly accurate, fast, up-to-date, and occupy less storage space than raster maps in the device's storage.

Within the Guru Maps app, you have the option to choose from three available vector map styles:

  • City: This map style is ideal for urban environments, providing clear and detailed information for navigation within cities and towns.
  • Cycling: Designed specifically for cyclists, this map style includes additional information relevant to biking, such as bike lanes, trails, and cycling-friendly routes.
  • Hiking: If you enjoy exploring the great outdoors, the hiking map style is perfect for you. It offers topographical details, trails, and other features essential for hiking and outdoor adventures.
note

You can also use your own maps in .sqlitedb and .mbtiles formats, previously created on a computer and then imported into your device. Such maps can be viewed offline even when your mobile device has no internet connection. However, any personal raster/tile maps will use considerably more space than vector maps you may install. Read also: Offline Maps Import.

Online maps

The online maps available in Guru Maps are sourced from third-party providers and are in the form of raster tiled maps. These maps offer a variety of options and cater to various needs and preferences, offering a range of visual styles and detailed information.

Here is a list of the built-in raster map sources available for online use within the app:

  • HikeBikeMap
  • Humanitarian OSM
  • Landscape (Pro)
  • Mobile Atlas (Pro)
  • Nighbourhood (Pro)
  • OpenBusMap
  • OpenCycleMap (Pro)
  • OpenStreetMap
  • Outdoors (Pro)
  • Stamen – Terrain (USA only)
  • Stamen – Toner
  • Transport Dark (Pro)
  • USGS - Satellite
  • USGS - Satellite+
  • USGS - Topo
  • Wikimapia
info

When loading maps from online sources within Guru Maps, please keep in mind that map download speed can vary. This variability is influenced by factors such as the strength and stability of your Internet connection and the performance of the server hosting the map.

Caching online maps

Caching is a feature that is always enabled in Guru Maps. The app automatically saves recently viewed map images in your cache, making them accessible for offline usage. To ensure maps are available for offline access, follow these steps:

  1. Navigate to the specific area you plan to visit within Guru Maps.
  2. While connected to the internet, zoom-in to the required level of detail. By doing so, Guru Maps will save the map images at the zoom levels that is visible on the screen, allowing you to access them offline.

For more information on configuring the online maps settings in Guru Maps, please refer to the Online Maps Settings section.

Overlays

Overlays in Guru Maps are transparent layers that display additional data on top of the base map. Multiple overlays can be simultaneously shown to provide comprehensive information.

Within the Guru Maps app, you have access to three primary offline map overlays for relief visualisation:

  • Contour Lines: Contour lines are overlayed on the map and show the elevation above sea level at a given point on your map.
  • Hillshades: The hillshade overlay adds shading and shadows to the map, simulating the effect of sunlight on the terrain. It provides a more realistic relief representation of the landscape and give a 3D feel.
  • Slopes: The slope overlay displays color-coded slope angles, enabling to visualize the difficulty or potential hazards of a route. Darker colors indicate steeper slopes, helping you assess the terrain's steepness and plan your journey accordingly.

Slope range

Additional maps

In addition to built-in online raster maps, Guru Maps also supports custom maps and overlays.

There are several types of maps supported:

  • .sqlitedb and .mbtiles for offline raster maps
  • .ms and .xml for custom maps or extra params
  • .geojson for vector overlays
  • .mapcss for custom style used for .geojson

You can add more online map sources from here:

To add the map source, tap the map name you want to install. Then open the downloaded .ms file with Guru Maps on your device or choose option to send the file to Guru Maps.

To add a new map source, follow these steps:

  1. Visit one of the provided links from your device's web browser.
  2. Choose the desired map source by tapping on its name.
  3. Once the download is complete, locate the downloaded .ms file on your device.
  4. Open the .ms file directly with Guru Maps app, or select the option to send the file to Guru Maps if prompted.

By following these steps, you will successfully add the selected map source to Guru Maps, expanding your range of available online maps.

Examples of use

Online map sources

Special .ms file should contain online map urls from the map provider. Also there could be an additional params for raster maps .sqlitedb, .mbtiles or vector overlay .geojson.

Let's check https://ms.gurumaps.app/ms/OpenStreetMap.ms

<?xml version="1.0" encoding="UTF-8"?>
<customMapSource>
<name>OpenStreetMap</name>
<url>http://{$serverpart}.tile.openstreetmap.org/{$z}/{$x}/{$y}.png</url>
<serverParts>a b c</serverParts>
</customMapSource>

If <url> tag is set, map source will download online raster tiles. The following parts will be inserted into the template from <url>:

  • {$serverpart} - random server name from <serverParts>.
  • {$x}, {$y}, {$z} - tile address
  • {$quad} - Quad tile address
  • {$bbox} - Tile bbox in SRID 3857. Typically used for WMS servers.
  • {$invX}, {$invY} - inverted coordinates. N-x and N-y, where N is the number of tiles on the current scale.

GeoJSON

GeoJSON is an open standard format designed for representing simple geographical features, along with their non-spatial attributes. More details at: https://geojson.org

{
"type": "Feature",
"properties": {
"@id": "node/524678909",
"leaf_cycle": "evergreen",
"leaf_type": "needleleaved",
"natural": "tree",
"species": "Pícea",
"species:ru": "Ель"
},
"geometry": {
"type": "Point",
"coordinates": [
26.0211965,
53.1146981
]
},
"id": "node/524678909"
}

feature_collection-01

Import the file https://gurumaps.app/example/feature_collection.geojson to see on the map, forests, trees and rivers near Baranovichi, Belarus. You can import any of your GeoJSON files in Guru Maps and use them as overlays on top of the base map.

GeoJSON + MapCSS

MapCSS is a CSS-like language for map stylesheets. It's used to define how data from GeoJSON should be displayed on map.

feature_collection-02

Together with the feature_collection.geojson file from the previous step, import the file https://gurumaps.app/example/feature_collection.mapcss. Here is its content:

node[natural=tree] {
icon-image: "poi_circle.svg"
icon-tint: red;
image-allow-overlap: true;
}
node[natural=tree][leaf_cycle=evergreen] {
icon-tint: green;
}

After importing, only trees will remain visible on the map. Evergreen trees will be marked with green circles and all other trees will be marked with red circles.

For any .geojson, you can add your own .mapcss style to customize when, how and which data should be shown. Read more in MapCSS specification.

Map Source .ms for vector data

Import the file http://gurumaps.app/example/vector_source1.ms. Here's the contents:

<?xml version="1.0" encoding="UTF-8"?>
<customMapSource overlay="true">
<name>GeoJSON from url</name>
<geojson url="https://gurumaps.app/example/feature_collection.geojson"/>
</customMapSource>

It automatically downloads the data from https://gurumaps.app/example/feature_collection.geojson after the import.

Consider the file http://gurumaps.app/example/vector_source2.ms.

<?xml version="1.0" encoding="UTF-8"?>
<customMapSource overlay="true">
<name>GeoJSON with autoupdate</name>
<geojson url="https://gurumaps.app/example/feature_collection.geojson" updateInterval="5"/>
<style url="https://gurumaps.app/example/feature_collection.mapcss"/>
</customMapSource>

Tags <geojson> and <style> may contain url attribute with an address to the data and updateInterval attribute with update check interval in minutes, as well as data or a block <![CDATA[ ]]> with GeoJSON data inside. For example http://gurumaps.app/example/vector_source3.ms.

feature_collection-03

<?xml version="1.0" encoding="UTF-8"?>
<customMapSource overlay="true">
<name>GeoJSON and Style embed in MS</name>
<minZoom>3</minZoom>
<maxZoom>9</maxZoom>
<geojson>
{
"type": "Feature",
"properties": {},
"geometry": {
"type":"MultiPolygon",
"coordinates": [[[ [0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0] ],
[ [2.0, 2.0], [ 8.0, 2.0], [ 8.0, 8.0], [2.0, 8.0] ]],
[[ [30.0,0.0], [40.0, 0.0], [40.0, 10.0], [30.0,10.0] ],
[ [32.0,2.0], [38.0, 2.0], [38.0, 8.0], [32.0, 8.0] ]]]}
}
</geojson>
<style>
area{
fill-color: green;
width:1pt;
color:red;
}
line{
width:1pt;
color:yellow;
}
</style>
</customMapSource>

GeoJSON data and style are contained within a .ms file and are independent of external sources.

Raster map .sqlitedb or .mbtiles and Map Source

For raster maps you can define additional parameters in .ms file. For example, you can make a map.sqlitedb raster map an overlay by adding the following content to map.ms:

<?xml version="1.0" encoding="UTF-8"?>
<customMapSource overlay="true">
</customMapSource>

Note: .sqlitedb file and .ms file share common name map.

In addition, you can specify the <name> of the map, <minZoom> the minimum and <maxZoom> maximum zoom level when data should be downloaded, and overzoom whether to show the enlarged tiles if the user zoomes closer max zoom.

<?xml version="1.0" encoding="UTF-8"?>
<customMapSource overlay="true" overzoom="true">
<name>Raster map with extra params</name>
<minZoom>8</minZoom>
<maxZoom>12</maxZoom>
</customMapSource>