API for Integration with Guru Maps
Guru Maps supports the guru://
and geo://
schemes for integration with other apps. This lets other applications trigger file imports, run searches, launch navigation, control track recording, and save the current location.
Open Guru Maps
API: guru:[?back_url=<url>]
Parameters:
back_url
- if set, and the user presses theEscape
button, the app opens the specified back URL.
Examples:
- guru: - Opens Guru Maps without interrupting any ongoing action.
- guru:?back_url=https://gurumaps.app - Opens Guru Maps, and when the
Escape
key is pressed, it openshttps://gurumaps.app
.
File Import
API: guru://open?url=<url to the file>
Parameters:
url
- URL link to the file for import.
Guru Maps downloads the file from the specified URL and attempts to import it. Supported file formats: GPX, KML, KMZ, WPT, PLT, TCX, MS, GeoJSON, MapCSS, SQLITEDB, MBTILES.
Examples:
- guru://open?url=https://gurumaps.app/example/feature_collection.geojson - Import a GeoJSON file from the link.
- guru://open?url=https://ms.gurumaps.app/ms/google/Google_Satellite_RU_HD.ms - Import a satellite map source from the link.
Search
API: guru://search?q=<search query>[&coord=lat,lon][&back_url=<url>][&back_url=<url>]
Parameters:
q
- search stringcoord
- coordinates of the point over which the search will launch, in the format lat,lon. If not specified, the search starts from the current map position.back_url
- if set, and the user presses theEscape
button, the app opens the specified back URL.
Examples:
- guru://search?q=Wybrzeże%20Kościuszkowskie%2020%20Warszawa&coord=52.2297,21.0122 - Starts a search for "Wybrzeże Kościuszkowskie 20 Warszawa" with the map centered on the specified coordinates.
- guru://search?q=Agrykola%201%20Warszawa - Starts a search for "Agrykola 1 Warszawa" using the current map position.
Navigation
API: guru://nav?finish=lat,lon[&via=lat,lon][&start=lat,lon][&mode=<auto, bicycle, pedestrian, motor_scooter, motorcycle, truck, straight>][&start_navigation=<true,false>][&back_url=<url>]
Parameters:
finish
- coordinates of the route endpoint.via
- coordinates of intermediate route points. You can use multiple intermediate points.start
- coordinates of the starting point of the route. If not specified, the user's current position is used.mode
- mode of transportation (auto, bicycle, pedestrian, motor_scooter, motorcycle, truck, straight). If not specified, auto is used.start_navigation
- if set totrue
, navigation will start immediately after the route is built. If the parameter is not set or set tofalse
, a route preview and editing screen will be displayed.back_url
- if set, and the user presses theEscape
button, the app will open the specified back URL.
Examples:
- Build a route from the current position to a specified point: guru://nav?finish=52.2297,21.0122
- Build a route from one specified point to another: guru://nav?start=52.2297,21.0122&finish=52.2397,21.0222
- Build a route with an intermediate point: guru://nav?start=52.2297,21.0122&finish=52.2397,21.0222&via=52.2347,21.0172
- Build a route with two intermediate points: guru://nav?start=52.2297,21.0122&via=52.2347,21.0172&via=52.2765,21.234&finish=52.2397,21.0222
- Build a bicycle route: guru://nav?start=52.2297,21.0122&finish=52.2397,21.0222&via=52.2347,21.0172&mode=bicycle
- Build a route and start navigation immediately: guru://nav?start=52.2297,21.0122&finish=52.2397,21.0222&via=52.2347,21.0172&mode=bicycle&start_navigation=true
- Build a route and return to a specified URL when
Escape
is pressed: guru://nav?finish=52.2297,21.0122&back_url=https://gurumaps.app - Build a route, start navigation, and return to a specified URL when
Escape
is pressed: guru://nav?finish=52.2297,21.0122&start_navigation=true&back_url=https://gurumaps.app
Start/Stop/Toggle Track Recording
API: guru://recordTrack?action=<start,stop,toggle>
Parameters:
action
- determines what to do with track recording. Options arestart
,stop
, andtoggle
.
Examples:
- guru://recordTrack?action=start - Start track recording in Guru Maps.
- guru://recordTrack?action=stop - Stop any ongoing track recording.
- guru://recordTrack?action=toggle - Toggle the track recording status. If a recording is in progress, this stops it; otherwise, it starts a new one.
If an invalid action is given or no action is specified, the API will default to toggle
. This means that guru://recordTrack will behave the same as guru://recordTrack?action=toggle.
Creating a Marker
API: guru://saveMarker[?name=<marker name>][&coord=lat,lon]
After creating a marker, Guru Maps opens the marker details screen.
Parameters:
name
- marker name. If not specified, it is filled automatically.coord
- marker coordinates. If not specified, the user's current position is used.
Examples:
- Create a marker at the user's current position: guru://saveMarker
- Create a marker at the user's current position with a specified name: guru://saveMarker?name=MyMarker
- Create a marker at a specified position: guru://saveMarker?coord=52.2297,21.0122
- Create a marker at a specified position with a specified name: guru://saveMarker?name=MyMarker&coord=52.2297,21.0122
Displaying a Place with Specified Coordinates on the Map
API: guru://show?place=lat,lon[,zoom][&back_url=<url>]
Parameters:
place
- coordinates of the place to be displayed on the map.zoom
- optional. The scale at which the selected point should be displayed. If not specified, the current map scale is used.back_url
- optional. If set, and the user presses theEscape
button, the app opens the specified back URL.
Examples:
- guru://show?place=52.2297,21.0122 - Open Guru Maps and display the specified point.
- guru://show?place=52.2297,21.0122,17 - Open Guru Maps and display the specified point at zoom level 17.
- guru://show?place=52.2297,21.0122&back_url=https://gurumaps.app - Open Guru Maps, display the specified point, and open
https://gurumaps.app
whenEscape
is pressed.
The geo:
scheme is also supported by Guru Maps. For example, use geo:52.2297,21.0122
to display a specific location on the map. However, the geo:
scheme does not support the back_url
parameter. For functionality that requires back_url
, use the guru://
scheme.