# Freemap.sk > Freemap.sk is a free, non-commercial web map application built on OpenStreetMap data by the NGO Freemap Slovakia (a Slovak local chapter of the OpenStreetMap Foundation). Its focus is a detailed outdoor map for hiking, cycling, cross-country skiing and horse riding across Europe, complemented by many additional base and overlay layers and by tools for search, route planning, drawing and measurement, GPX viewing, live tracking, personal maps, map embedding, and export. This file gives AI systems and assistants structured information so they can explain, describe, and help users interact with the site. Contact: [info@freemap.sk](mailto:info@freemap.sk) Key facts: - Built on OpenStreetMap data; the map is continuously updated from the OSM database. - Displays marked hiking, biking, skiing and riding trails, and supports high-resolution (retina) displays. - Background and overlay layers include the NLC forest roads, aerial imagery, public transport, Wikipedia, and community photos. - Tools: search (by name or category), route planning (walking, cycling, stroller, wheelchair, car, skiing, etc.), map annotation (points, lines, polygons), measurement (distance, elevation, area, position), GPX track viewing, personal saved maps, live tracking, and export (GPX, GeoJSON, KML/KMZ, PDF, SVG, PNG, JPG). - Users can generate embed code to place the map on their own websites. - The application is a single-page application (SPA) and reflects its state in the URL. The sections below describe how to build map URLs (deep links), the application's functions (the main-menu tools and modals), the available map layers, and external resources. ## Deep links (building map URLs) The app keeps its state in the URL, so you can hand a user a link that opens Freemap in a specific state — a viewport, chosen layers, markers, drawn lines/areas, a planned route, or an opened modal — with no API and no login. This is the normal way to "create a map" programmatically: build the URL and give it to the user. Parameters live in the URL **hash** (`#name=value&name2=value2…`); a query string (`?name=…`) is accepted as a fallback. Base URL: `https://www.freemap.sk/`. The highest-value parameters for building links: - `map=zoom/lat/lon` — viewport, e.g. `map=13/48.7483/19.1480` (coordinates to 6 decimals). - `layers=codes` — base layer + overlays by their id code (see the Layer registry below), e.g. `layers=X` (Outdoor) or `layers=X~I` (Outdoor + Photos). - **`point=lat/lon` — put a marker on the map. This is the parameter for "a map with points / markers". It is repeatable: add one `point=` per marker.** - `line=lat/lon,lat/lon,…` and `polygon=lat/lon,lat/lon,…` — draw a line or a filled area (each repeatable). - `points=[transport/]lat/lon,…` together with `transport=…` — a **planned route** through waypoints. This is routing, not standalone markers — do not confuse the plural `points=` with the marker parameter `point=`. - `show=type[/arg]` — open a modal/viewer, e.g. `show=gallery-viewer/123`. - `lang=code` — force the UI language (`en`, `sk`, …). **Example — a map with two markers** (Bratislava and Košice) on the Outdoor layer: ``` https://www.freemap.sk/#map=8/48.43/19.18&layers=X&point=48.14816/17.10674&point=48.72083/21.25808 ``` **Styling, labelling and opening the editor.** After the `lat/lon`, a `point` / `line` / `polygon` value may carry style fields, each a one-letter code, joined by the record-separator `%1E` (a leading `%1E` separates them from the coordinates). The useful codes are `L`abel, `C`olor (`%23` = `#`, RGBA hex), `S`hape (`s`quare / `r`ing, default pin), and `I`con spec — `poi:` for a bundled POI icon or `fa:` for a Font Awesome icon (`%3A` = `:`). The markers show on their own; `tools=draw-points` is optional and only additionally opens the drawing toolbar so the user can edit the points. E.g. a blue ring marker labelled "Ahoj!" with the animal-shelter icon: ``` https://www.freemap.sk/#map=17/48.979457/21.169961&layers=X&tools=draw-points&point=48.979061/21.167738%1EC%230000ff%1ELAhoj!%1ESr%1EIpoi%3Aanimal_shelter ``` For every URL parameter and the full style codec, see [`doc/url-params.md`](https://github.com/FreemapSlovakia/freemap-v3-react/blob/main/doc/url-params.md). ## Functions The main menu is under a button with a "hamburger" icon at the top left of the page. ### Search - Access: the search box at the top of the page ("Search in the map") Searches the map by place name, category, or coordinates. Results may come from several sources — place-name (Nominatim forward) and reverse geocoding, nearby and surrounding POIs (Overpass), raw coordinates, OSM elements, and WMS feature info. A selected result is highlighted on the map and can be used as the start or destination of a route. ### UI Language switcher - Access: Main menu > Language - Available languages: Slovak, Czech, Hungarian, English, Polish, German, Italian, Slovenian, French ### Account - Access: Main menu > Account - Keyboard shortcut: e a - URL path: `/#show=account` Available only to logged-in users. Logged-out users instead see a **Log in** item in the same place, which opens the login provider chooser (see Login providers below). The Account modal has three collapsible sections (below); from the buttons at the bottom the user can also log out or delete their account. #### Purchases - Shows current premium status (e.g. "premium access until ") and the credit balance, with a **Buy credits** button - History of purchases (date and item) - Users can purchase yearly premium access and/or credits - Credits are currently spent only on "Offline maps export" (see description below) - Yearly premium allows: - Removal of the ad banner - Access to premium photos (users can mark uploaded photos as premium-only) - Access to higher map zoom levels for specific map layers (see below) - High-resolution elevation data in supported countries (used by the elevation API for the chart, colorizing, and elevation fill); currently Slovakia (DMR 5.0: ÚGKK SR), Czechia (DMR 5G: ČÚZK), Austria (ALS DTM: Geoland.at), Switzerland (swissALTI3D: © swisstopo), Italy (Tinitaly DEM: INGV), Slovenia (DMR: Ministrstvo za okolje in prostor), Spain (MDT05: IGN/CNIG), and Sweden (Markhöjdmodell: Lantmäteriet), with more countries being added; elsewhere the elevation API falls back to a global 30 m model (GEDTM30) #### Personal information - Profile picture (choose / remove) - Name (required) and email address - "About me" description #### Login providers Supported login providers: - Apple - Facebook - Google - OpenStreetMap - Garmin For each provider the modal shows either a **Connect** button (to link it) or a **Disconnect** button (if already linked), so multiple providers can be linked to a single Freemap account. ### Clear map elements - Access: Main menu > Clear map elements - Keyboard shortcut: g c Clears the data layer (all interactive map elements of various tools) from the map. ### Photos - Access: Main menu > Photos - Keyboard shortcut: shift f - Layer code: `I` (e.g. `/#layers=X~I`) Toggles the photos toolbar and the community-photos map layer. Photos appear as markers; the toolbar provides: - **Upload** (p u) — see upload modal below - **Filter** (p f) — "Photo filtering" modal: by tag, author, upload-date range, capture-date range, rating range, and premium / panorama (tri-state) toggles - **Colorize markers by** (dropdown) — None (default), Differ mine, Author, Rating, Taken date, Upload date, Season, Premium, License. Own vs. Wikimedia is **not** a color mode — it's shown by marker **shape** (square = Wikimedia, circle = own photo, wide rectangle = own panorama), independent of the coloring. Wikimedia Commons photos carry Author (numeric Commons id), Taken date, Upload date, Season, Rating, Premium, Differ-mine and License data (imported from the Commons image + Structured-Data dumps), so they colorize in every mode; a photo missing a given value falls back individually (neutral grey for dates/season, the fallback license color for license), just like an own photo. For every mode except None and Author, the dropdown's first item is a **Legend** checkbox (set off by a divider) that toggles a legend below the toolbar — a color scale for the gradient modes (Rating/Taken date/Upload date/Season), labeled swatches for the categorical ones (Differ mine/Premium/License) - **View photos** (dropdown, ordering) — from last uploaded (p l), from newest, from most rated, from last comment - **Leaderboard** (p b) — modal with a time-period selector (All time / last 3 months / last 30 days) and ranking tables: photos per author, and photos per author per country - **Settings** (gear dropdown) — Show shooting direction, Notify photo comments via e-mail, plus premium options: "Include all my photos in premium content" and "Make all my photos accessible to everyone" **Upload modal:** drag-and-drop or pick photos; per photo set name, description, capture date/time, location (with "Set the location" on the map), azimuth (shooting direction), tags, a license (Creative Commons: CC0, CC BY, CC BY-SA — the default, CC BY-NC, CC BY-NC-SA), and an optional "make available only to premium users" flag. Shows the gallery rules (max 10 MB, landscapes/documentation only, own photos only, published under the license you choose per photo, etc.). **Photo viewer:** shows the full image with its Creative Commons license (badge + "licensed since" date), uploader, capture date and rating; users can comment, rate, modify (own photos), delete, show on the map, open fullscreen, or open in an external app. Wikimedia Commons photos open in the same viewer, showing the Commons author, license and a link to the Commons file page (image and attribution fetched straight from Commons); they can be rated and commented but not edited/deleted. Full-360 equirectangular panoramas open in an interactive drag-to-look viewer (Pannellum): own photos flagged as panoramas on upload, and Wikimedia Commons photos detected by their exact 2:1 dimensions. Photos can be navigated sequentially (e.g. "1 / 51"). URL path (open photo): `/#show=gallery-viewer/` (legacy `/#image=` still works). ### My maps - Access: Main menu > My maps - Keyboard shortcut: g m - URL path: `/#show=my-maps` (legacy `/#show=maps` still works) Opens the user-saved maps manager in a modal. Each saved map stores the current state: active map layers, drawing, planned route, watched live-tracked devices, and GPX track. The modal lists saved maps with their created/modified dates and a filter box. A gear menu sets load options: - **To empty map** — clear the current map before loading - **Include saved background map and position** — also restore the saved base/overlay layers and viewport - **Make all available offline** / **Remove all from offline** — flag every listed map for offline use, or clear the flag Each map has a per-item menu with **Load**, **Modify**, and **Delete**. Modify edits the map **Name** and its **Editors** — other users can be added as editors to collaborate on the same saved map, and has an **Available offline** checkbox. There is also an option to add a new (empty) saved map. Maps flagged **Available offline** keep a copy of the saved map document in the browser (IndexedDB), so they appear in the list and can be **Load**ed even with no connection; an "Offline" badge marks them and they refresh automatically when their server copy is newer. This caches only the map document — the background tiles are cached separately via **Offline maps**. The app logo shows a small red dot while the app is offline. While a saved map is loaded ("connected"), a toolbar shows the map name with **Save** and a **Disconnect** button (whose dropdown also offers **Disconnect and clear**, to disconnect and clear the current map contents). ### Drawing and measurement - Access: Main menu > Drawing and measurement - Keyboard shortcut: - g p for drawing points (markers) / measuring coordinates and elevation; URL path: `/#tools=draw-points` - g l for drawing lines / measuring distance and azimuth; URL path: `/#tools=draw-lines` - g n for drawing polygons / measuring area; URL path: `/#tools=draw-polygons` Several tools can be open at once: their toolbars are stacked in the order opened, and the `tools=` URL parameter lists them comma-separated (e.g. `/#tools=route-planner,objects,changesets`). The map-click tools (route finder, drawing, map details) are mutually exclusive as the *active* one — only the active tool reacts to map clicks, switched by clicking a toolbar's title. (The legacy single-tool `tool=` parameter still works.) Toggles the drawing and measurement toolbar. The toolbar lets the user switch between Point / Line / Polygon and open **Style settings** (e d), the default drawing style (color, fill color, width, line cap, line join, dash style, shape) applied to new drawings. **Measurement readouts:** drawing a line shows its length; a polygon shows its area and perimeter (each copyable). A point can show its coordinates and elevation. **Editing a selected geometry** — a context toolbar offers **Properties** plus, via a "⋮" menu: - Lines: Elevation profile, Project point, Simplify, Reverse direction - Polygons: Simplify, Reverse direction - Points: Project point, and Open in… (new window, share location, share photo, or an external app) While drawing, individual nodes can be edited: a line point can **Join** another line, **Continue** drawing, **Split** the line, or be deleted; a polygon point can be deleted. **Properties modal:** Label, Color, Shape, Icon (searchable picker), and Text (up to 2 characters shown inside the marker); lines/polygons additionally expose fill color, width, line cap/join and dash style. **Project point modal:** create a point at a given Distance (m) and Azimuth (°) from the selected point. **Simplify** prompts for a simplification factor (0 = no simplification). **Elevation profile** opens a chart of elevation along a line, with total climb and total descent. Waypoints are marked with their name and elevation, and their distance is ticked on the x-axis. A toolbar below the chart can download it as SVG and, when the line carries waypoints, toggle their markers and labels. ### Route finder - Access: Main menu > Route finder - Keyboard shortcut: g r - URL path: `/#show=route-planner` Toggles the route finder toolbar, which has: a transport/router selector, a mode selector, **Start** and **Finish** point pickers, a swap-endpoints button, and a close button. Routing is based on a Freemap-hosted GraphHopper or third-party OSRM router. A route can contain multiple midpoints. Some midpoints may be marked as "manual," which activates manual routing as a user-drawn path for that route segment. The **Start**/**Finish** (and midpoint) pickers offer: Select on the map, Your position, or Home position. Supported vehicles (the transport dropdown also offers "Straight line" for fully manual routing): - GraphHopper - Car - Car (4WD) - Motorcycle - Racing bike - Mountain bike - Walking - Hiking - OSRM - Car - Bicycle - Walking Routing modes: - GraphHopper - Ordered - Roundtrip - Isochrones - OSRM - Ordered - Visiting places - Visiting places (roundtrip) Once a route is found the toolbar also offers: - **Colorize by** (dropdown) — Inactive, Elevation, Steepness, Heading (only modes the route has data for are shown); for the elevation profile and elevation/steepness colorize, premium users get every point sampled from the terrain model (high-resolution where available), while others keep the router's own elevation and only have missing values filled on demand. While a mode is active, the dropdown's first item is a **Show colorizing legend** checkbox (set off by a divider) that toggles a color-scale legend below the toolbar - **More** (⋮ menu) — Elevation profile (chart with total climb/descent), Convert to drawing, **Route style…** (opens a modal with sliders for line width, line opacity, and marker opacity; saved in local storage), kilometre/percent milestone toggles, and (premium; GraphHopper "Ordered" mode with 3+ points, single transport) **Optimize order** — reorders the waypoints to minimize total travel time, with variants: keep start fixed, keep start and finish fixed, round trip (return to start), or free (reorder all) ### Objects (POIs) - Access: Main menu > Objects (POIs) - Keyboard shortcut: g o - URL path: `/#show=objects` Toggles the objects toolbar. The toolbar contains a combo box to search for various POIs by type. Multiple types can be activated and will be visible interactively as markers with icons on the map. A **Marker style** button opens a modal to set the marker shape (pin/ring/square) and color, applied to all displayed objects. These can also be preset via the read-only `/#objects-style=` URL param (see `doc/url-params.md`). ### File import - Access: Main menu > File import - Keyboard shortcut: g g - URL path: `/#tools=import-file` (legacy `/#tool=import-file` and the old `track-viewer` alias still work) Toggles the file import toolbar. **Upload** opens the file import modal (URL path: `/#show=file-import`; legacy `/#show=upload-track` still works), which accepts GPX, KML, KMZ, TCX and GeoJSON files; several files can be picked or dropped at once and are merged into one view. Files can also be dropped anywhere on the map. When geodata is already shown, importing asks whether to **append** the new data or **replace** what's loaded. An external track can also be loaded directly by URL via `/#import-url=` (legacy `gpx-url=` and `load=` still work), supporting the same GPX, KML, KMZ, TCX and GeoJSON formats. Once a track is loaded, the toolbar offers: - **Track** (dropdown) — shown only when several lines are loaded; picks which one the elevation profile and "More info" describe (a line can also be picked by clicking it on the map; the active one is highlighted) - **Elevation profile** — chart of elevation along the active track (with total climb/descent); recorded waypoints are marked along it with their name and elevation and their distance ticked on the x-axis (toggleable), and a toolbar below the chart can download it as SVG - **Colorize by** (dropdown) — Inactive, Elevation, Steepness, Speed, Heart rate, Cadence, Power, Temperature, Time, Heading (entries with no data in the track are disabled). While a mode is active, the dropdown's first item is a **Show colorizing legend** checkbox (set off by a divider) that toggles a color-scale legend below the toolbar - **More info** — a popup with the track's distance, min/max elevation, total climb and total descent - **More** (⋮ menu) — gathers the remaining actions: - **Update elevation** — refill/override elevation from the terrain model (shown only while the track still has recorded elevation to replace); premium users get the high-resolution DEM where available - **Save to my maps** — save the loaded track into a new personal map (requires login; prompts to log in first otherwise). Hidden when a map is already active, since the active-map toolbar's own **Save** persists the track with the map. Older `#track-uid=…` share links still load - **Default style** — opens a modal to set the color, width, fill, dash, line cap/join and waypoint shape applied to imported features that carry no style of their own (independent of the drawing tool's defaults). Can also be preset via the read-only `/#track-style=` URL param (see `doc/url-params.md`) - **Convert to drawing** — turn the imported track into editable drawing features (a recorded track is replaced and warns that its per-point data — elevation, heart rate, speed, time — will be dropped) - delete and close buttons ### Map details - Access: Main menu > Map details - Keyboard shortcut: g i - URL path: `/#tools=map-details` Toggles the map details toolbar. Clicking a location queries information about it, grouped by source (each toggleable via the **Sources** dropdown): - **Reverse geocoding** — the locality / address of the point - **Nearby** — features near the clicked point - **Containing features** — administrative and geographic areas containing the point (cadastral community, district, region, mountain range, country, etc.) Selecting a feature opens a detail popup with its OSM tags, a link to open it at OpenStreetMap.org (and its history), an "Edit in JOSM" button, and the data source. The geometry displayed for search and map-details results shares one style (color, fill, width, dash, line cap/join, marker shape — the same set as the track-viewer default style), editable in a dedicated **Search result style** modal opened by a paintbrush button on the search-result selection toolbar (it carries a **Reset to default** button). It can also be preset via the read-only `/#search-style=` URL param, and `window.fmHeadless.searchResultStyle` overrides it in headless image rendering (see `doc/url-params.md`). ### Map changes - Access: Main menu > Map changes - Keyboard shortcut: g x - URL path: `/#tools=changesets` Toggles the OSM changes toolbar, which contains: a dropdown to select the time window (changesets from the last 3, 7, 14, or 30 days), an "All authors" text input to filter by OSM username, a clear button, a button to download the changesets, and an edit button. OSM changes matching the selected parameters are displayed on the map as markers showing the mapper's name and changeset description. Clicking the marker will open the toast with the following details: - author - changeset description - date/time of the changeset - changeset links to osm.org and Achavi ### Live tracking - Access: Main menu > Live tracking, or keyboard shortcut g t Live tracking lets a user register their own devices (so others can follow their position) and watch other people's devices. Supported tracker apps/devices include OsmAnd, Locus, Traccar, and similar. It opens a **toolbar** with: - **Watched devices** and **My tracked devices** — open the two managers (also reachable directly via g w and g d) - **Visual** — what to draw for tracks: points, line, or line + points - **Colorize by** — color the watched tracks by a per-point value; modes are shown only when the tracks carry the data: Elevation, Steepness, Speed, Time, Heading, Battery, GSM signal (Inactive = solid track color). While a mode is active, the dropdown's first item is a **Show colorizing legend** checkbox (set off by a divider) that toggles a color-scale legend below the toolbar - **Elevation profile** — a chart of the selected (or first) track that reports altitude; uses the recorded altitudes as-is #### My tracked devices Manage your own devices so others can watch your position via a watch token. The list shows each device's tracking token, name, max age, and creation date. Each device has: - a button showing a **QR code** to quickly set up a tracker app (e.g. Traccar/OsmAnd) - a menu with **Modify**, **Watch tokens**, and **Delete** - an **Add new** button **Device form:** Name (required), Token (required), Max Count (max number of stored locations), and Max Age (in minutes). Each location sent by a device may carry properties such as altitude, speed, bearing, GSM/GPS signal strength, GPS precision, battery level, and a custom message. **Watch tokens** (per device): independent share tokens, each with a created date, an optional validity window and a note. They can be copied, viewed, edited, or deleted, and the device owner can add new ones to share position with different people. The token form has **From**, **To**, and **Note** fields. #### Watched devices Manage devices you follow to see your friends' positions. Note: the watched-devices list is only reflected in the page URL — to persist it, save it via **My maps**. Each watched device is added with a **Watch Device** form: Watch Token (required), Label, Color, line Width (px), Since (date/time), Max Age (minutes), Max Count, Split Distance (meters), and Split Duration (minutes). Watched tracks render on the map; selecting one shows a small toolbar to delete or close it. ### Offline maps - Access: Maps button menu > Offline maps - Keyboard shortcut: m o Caches selected map areas (tiles) in the browser for offline use. (This is different from "Offline maps export", which produces a downloadable MBTiles/SQLiteDB file.) The manager modal lists already-cached offline maps with their zoom range, tile count, size and status (Ready, or incomplete with pause/resume), and has buttons to zoom to the map's area, view, edit, delete, and **Add offline map**. The "Cache map for offline use" form lets the user choose: - the map (layer) to cache - the area: current visible area, or a rectangle drawn on the map - a name - the zoom range - whether to show the cached map in the menu and/or toolbar It shows the estimated tile count and size before caching starts. ### Share / Open in external app - Access: Main menu > Share / Open in external app Opens a submenu: - Copy page URL j c - Share location - OpenStreetMap j o - Mapy.com j m - Google Maps j g - Geocaching - F4Map j 4 - Peakfinder j p - Mapillary j l - OpenStreetCam - Waze - OMA (SK) - Hiking.sk (SK) j h - ZBGIS (SK) j z - Edit in JOSM j j - Edit in iD j i ### Map export to image/document - Access: Main menu > Map export to image/document - Keyboard shortcut: e p - URL path: `/#show=map-to-document-export` Opens a modal to export the map as an image or document. Options: - Export area: visible area, or a rectangle drawn on the map - Format: JPEG, PNG, PDF, or SVG - Optional server-rendered overlays: contours, shaded relief, hiking trails, bicycle trails, ski trails, horse trails - Own map-feature sources to draw on top (only those with data are selectable, same set as the map data export): found route (optionally with stops), objects (POIs), photos, drawing lines/areas/points, live tracking, imported GPX track, highlighted map feature - Glow: optional glow/shadow drawn around all own map-feature markers and lines, with configurable color (incl. opacity) and width - Marker size: configurable pixel size of own map-feature point markers - Labels: configurable color (no opacity), size, and weight of own map-feature labels - Drawing order: Topmost or Natural - Map resolution (DPI) The modal also displays the attribution that must accompany the exported map when shared. While the export runs the modal stays open with its controls disabled and a spinner on the export button; only Cancel stays active (cancelling asks for confirmation and aborts the request). When the export finishes the resulting file is downloaded automatically. ### Map data export - Access: Main menu > Map data export - Keyboard shortcut: e g - URL path: `/#show=map-features-export` Opens a modal to export the user's own map data as a GPX, GeoJSON or KML file. The KML option emits a self-contained KMZ (zipped KML plus packaged PNG marker icons) when point icons are present, and a plain KML otherwise. Exported drawing features round-trip losslessly back into Freemap — style, icon, label and the line/polygon distinction are preserved — and for other apps the marker icons and styles are additionally mapped to their nearest Garmin (BaseCamp), OsmAnd and Locus equivalents so they still render sensibly. Only the data types that actually have something on the map are selectable: - found (planned) route, optionally including stops - objects (POIs) - photos (in the visible map area) - drawing — points, lines, polygons - live tracking - imported file - highlighted map feature When a single map feature is selected (a drawing point/line/polygon, an object, a track, the planned route, or a lookup result), an **Only the selected item** toggle appears (on by default) that narrows the export to just that one feature instead of its whole source. For the file/Google Drive/Dropbox targets an **Elevation** control chooses whether to fill elevation from the elevation API into exported points, lines and the planned route: *Keep recorded* (leave as-is), *Fill missing* (only coordinates lacking elevation), or *Override all* (replace every elevation). Polygons are always skipped. The target can be a downloaded file, Google Drive, Dropbox, or Garmin Connect. Exporting a planned route to Garmin Connect as a course (experimental) requires a connected Garmin account and lets the user choose a course name and activity type (running, hiking, mountain biking, trail running, road/gravel cycling, other). ### Maps for GPS devices - Access: Main menu > Maps for GPS devices - URL path: `/#show=document/exports` (legacy `/#document=exports` still works) Opens a modal with instructions to get various maps for GPS devices: - Garmin (+BaseCamp) - Locus - Orux maps - BackCountry Navigator - BikeComputer - XCTrack ### Offline maps export - Access: Main menu > Offline maps export - Keyboard shortcut: e m - URL path: `/#show=offline-map-export` Opens a modal to download a map in offline formats (MBTiles or SQLiteDB). Selection can be the current visible map area or a rectangle drawn on the map. Multiple tile-based maps are supported for download. Users can select the desired zoom range. Link to the map prepared for download will be emailed to the provided email address. ### Embed map - Access: Main menu > Embed map - Keyboard shortcut: e e - URL path: `/#show=embed` Opens a modal to configure the map for embedding into another website. Users can configure: - dimensions (w/h) - enabled features (search, map layer switch button, "find me" (locate me) button) Users can then copy and paste the generated iframe markup. ### Info & help - Access: Info & help Opens a submenu: - Map legend - Contacts - OpenStreetMap documentation - About Freemap Association - About OpenStreetMap - Map License - Keyboard Shortcuts - Garmin - Freemap.sk for Geocaching Extension - **Reset application** — clears all locally stored settings (signing you out) and reloads the page; confirmed first Most items open a modal with the selected topic; **Reset application** instead wipes the persisted state and reloads. The **Map legend** modal is specific to the currently active map and explains its symbols, grouped into collapsible categories (e.g. Accommodation, Food & Drink, Institutions, Sports, Natural features, Other points of interest, Land cover, Water, Roads and paths, Railways, Terrain, Borders, Other). The legend content differs per map type and is also available for WMS and custom WMS maps. It can also be opened from the map's **?** help button (m l). ### Support Freemap - Access: Main menu > Support Freemap - URL path: `/#show=support-us` ### Social and app buttons At the bottom of the main menu there is a row of buttons: links to Mastodon, [Facebook](https://www.facebook.com/FreemapSlovakia), [YouTube](https://www.youtube.com/channel/UCy0FrRnqJlc96dEpDIpNhIQ) and [GitHub](https://www.github.com/FreemapSlovakia); the mobile apps on Google Play and the App Store; and a **Services status** link. ### UI theme switcher At the bottom right of the main menu, there are buttons to switch the app UI theme: Light / Dark / Auto. ### Map context menu (right-click) Right-clicking (or long-pressing) a location on the map opens a context menu with actions for that point: - Center a map here - Find coordinates and elevation - Query nearby features - Show nearby photos - Share / Open in external app (same submenu as in the main menu) - Add here a point - Start here drawing a line or measurement - Plan a route from here - Plan a route to here ### Help button A round **?** button at the bottom-right corner of the map opens a small popover with: - Copyright - Map legend (m l) - Privacy policy ## Map Layers Freemap provides numerous raster, vector, and WMS map layers with different content, coverage, and zoom levels. Each layer includes attributes describing its purpose, availability, and data sources. The map-layer switching toolbar is available at the middle bottom of the screen. Featured or user-configured maps are directly accessible as buttons in this toolbar. The toolbar also contains the following buttons: - zoom in - zoom out - find me (locate me by the browser's geolocation API) - toggle fullscreen There is also a button with three vertical dots that opens a menu listing additional maps, a "Filter maps" box, and a "Show all maps" item. The same menu includes "Offline maps" and "Map settings" items (described below). ### Map settings - Access: Maps button menu > Map settings Expands a submenu with three items, each opening its own modal: #### Configure map layers - Keyboard shortcut: m y A table of all built-in and custom map layers. For each layer the user can toggle: show in toolbar, show in menu, overlay opacity (overlays only), and a keyboard shortcut (a 🚫 marker indicates that no shortcut can be assigned). #### Custom maps - Keyboard shortcut: m c Manage user-defined map layers — a list with edit/delete actions and an **Add custom map** button. Each custom map has: - name - type (technology): Image tiles (TMS, XYZ), Vector (MapLibre), or WMS - URL (tile template for TMS/XYZ, server URL for WMS, or style URL for MapLibre) - min zoom / max native zoom - extra resolutions and "scale with DPI" - layer: base or overlay - show in menu / show in toolbar #### Preferences - Keyboard shortcut: m p - **Max zoom** — global maximum zoom level - **Resolution scale** — simulates display pixel density and affects which tile variant is fetched (Auto by default) - **Feature size** — enlarges rendered labels and lines (no effect on satellite, shading, WMS, or vector (MapLibre) layers) - **Reset to default** — fills this modal's fields (max zoom, resolution scale, feature size) with their defaults; apply with Save or close without saving Modals that edit a persisted default style or settings (Map preferences, Configure map layers, drawing **Default properties**, objects **Marker style**, track-viewer **Default style**, **Search result style**) also carry a **Reset to default** button that refills the form with default values (applied with Save, not immediately). ### Maps Pre-defined map layers. #### Field description - **name** (human-friendly; as shown in the UI) - **id** (internal type code; used in the `layers=` URL param) - **layer** (base | overlay) — overlays are drawn on top of a base layer - **technology** (tile | maplibre | wms | parametricShading | gallery | wikipedia | interactive) - **minZ / maxNativeZ** (minimum usable zoom / maximum native tile zoom; above maxNativeZ tiles are upscaled) - **premiumFromZ** (zoom level from which premium access is required, if any) - **creditsPerMTile** (offline-export price in credits per million tiles, if applicable) - **supersededBy** (id of the replacement layer, for legacy layers) - **shortcut** (keyboard shortcut to toggle the layer, if any; ⇧ = Shift) - **countries** (ISO 3166-1 alpha-2 codes the layer covers; blank = worldwide / not restricted) - **notes** (attribution, experimental status, coverage quirks) #### Layer registry Mirrors `src/shared/mapDefinitions.tsx`. A blank cell means the field is not set in the definition (worldwide / default / not applicable). ⇧ denotes Shift. **Base layers** | name | id | technology | minZ | maxNativeZ | premiumFromZ | creditsPerMTile | supersededBy | shortcut | countries | notes | | ---------------------------- | --- | ----------------- | ---: | ---------: | -----------: | --------------: | ------------ | -------- | ------------ | ------------------------------------------------------ | | Hiking, Bicycle, Ski, Riding | X | tile | 5 | 20 | 19 | 5000 | | x | Europe (~46) | © Freemap, OSM; multi-source national elevation/relief | | KST Hiking Trails | XK | tile | 5 | 20 | | | | | sk | Outdoor map showing only official KST hiking routes; © Freemap, OSM; multi-source national elevation/relief | | OpenStreetMap | O | tile | 0 | 19 | | | | o | | © OpenStreetMap | | Aerial | Z | tile | 0 | 20 | 20 | 1000 | | z | sk, cz | © GKÚ, NLC; © ČÚZK | | Aerial | S | tile | 0 | 19 | | | | s | | © Esri | | Aerial (2017–2019) | J1 | tile | 0 | 19 | | 1000 | Z | | sk | © GKÚ, NLC (legacy mosaic) | | Aerial (2020–2022) | J2 | tile | 0 | 19 | | 1000 | Z | | sk | © GKÚ, NLC (legacy mosaic) | | Public transport (ÖPNV) | d | tile | 0 | 18 | | | | q | | © MeMoMaps, OSM | | Detailed terrain shading | 7 | tile | 0 | 20 | 17 | 1000 | | h | sk | © Freemap; LLS DMR © ÚGKK SR | | Detailed terrain shading | 8 | tile | 0 | 18 | 16 | | | | cz | © Freemap, © ČÚZK | | Terrain shading | 5 | tile | 0 | 18 | | 1000 | | | sk | © Freemap; DMR 5.0 © ÚGKK SR | | Surface shading | 6 | tile | 0 | 18 | | 1000 | | | sk | © Freemap; DMP 1.0 © ÚGKK SR | | OpenStreetMap Vector | VO | maplibre | | | | | | | | OSM data; MapTiler | | Streets Vector | VS | maplibre | | | | | | | | OSM data; MapTiler | | Dataviz Vector | VD | maplibre | | | | | | | | OSM data; MapTiler | | Outdoor Vector | VT | maplibre | | | | | | | | OSM data; MapTiler | | Cadastre | WKA | wms | | | 15 | | | k | sk | © GKÚ | | Tree Composition | WDZ | wms | 13 | | 15 | | | | sk | © NLC Zvolen | | Forest Types | WLT | wms | 12 | | 15 | | | | sk | © NLC Zvolen | | Geological | WGE | wms | | | 15 | | | l | sk | © ŠGÚDŠ | | Hydrochemic | WHC | wms | | | 15 | | | w | sk | © ŠGÚDŠ | **Overlay layers** | name | id | technology | minZ | maxNativeZ | premiumFromZ | creditsPerMTile | supersededBy | shortcut | countries | notes | | -------------------------- | --- | ----------------- | ---: | ---------: | -----------: | --------------: | ------------ | -------- | --------- | ---------------------------------------------------------- | | Data layer | i | interactive | | | | | | ⇧d | | Interactive items of all tools (drawing, route, search, …) | | Photos | I | gallery | 10 | | | | | ⇧f | | Own Creative-Commons photos (CC BY-SA 4.0 default; premium-only option) **and** geotagged Wikimedia Commons photos, in one layer; both shown from zoom 10 | | Wikipedia | w | wikipedia | 8 | | | | | ⇧w | | Wikipedia | | Forest tracks NLC (2017) | l1 | tile | 11 | 15 | | 1000 | l2 | | sk | © NLC Zvolen (legacy) | | Forest tracks NLC | l2 | maplibre | 9 | | | | | ⇧n | sk | © NLC Zvolen | | Parametric shading | h | parametricShading | | 13 | | | | ⇧h | | Experimental; © Freemap, GEDTM30 (Europe) | | Parametric shading | y | parametricShading | | 19 | 13 | | | ⇧y | sk | Experimental; © Freemap; LLS DMR © ÚGKK SR | | Parametric shading | z | parametricShading | | 18 | 13 | | | | cz | Experimental; © Freemap, © ČÚZK | | Cadastre | wka | wms | | | 15 | | | ⇧k | sk | © GKÚ (cadastre over aerial) | Notes: - The `i` (Data layer) overlay hosts every tool's interactive features; hiding it hides those features without disabling the tools. - The single `X` "Outdoor" base map renders hiking, bicycle, ski and riding trails together — there are no longer separate per-activity trail layers. ##### Internal layer codes The id values above are used in deep links via the `layers=` URL param: one base-layer code, optionally followed by `~` and the concatenated overlay codes (e.g. `layers=X~I` = Outdoor base + Photos overlay). They are **advisory** for interpreting links and do **not** grant permission to scrape tiles or data; respect each layer's attribution and license. Clicking a marker on the Wikipedia overlay opens a preview modal, addressable via the unified `show=` param: `/#show=wiki/:`. Wikimedia Commons photos are part of the Photos layer and open in the gallery viewer like any other photo (legacy `/#show=wmc/<pageId>` and `/#wmc=<pageId>` links still resolve there). ## Links - [Freemap.sk](https://www.freemap.sk/): the web map application described in this document - [Freemap Slovakia on GitHub](https://www.github.com/FreemapSlovakia): source code and issue tracker - [Freemap Slovakia on Facebook](https://www.facebook.com/FreemapSlovakia) - [Freemap Slovakia on YouTube](https://www.youtube.com/channel/UCy0FrRnqJlc96dEpDIpNhIQ) - [OpenStreetMap](https://www.openstreetmap.org/): underlying map data source - [OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Main_Page): OpenStreetMap documentation