No description
  • JavaScript 58.6%
  • PHP 24%
  • Vue 16.1%
  • SCSS 0.9%
  • TypeScript 0.4%
Find a file
Nextcloud bot 85f633c79a
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-06-14 01:31:55 +00:00
.github build: Add appstore build publish 2026-06-09 22:13:39 +02:00
.tx
appinfo build: bump version to 1.7.1 2026-06-10 15:50:16 +02:00
css support PMTiles protocol 2026-02-18 11:56:56 +08:00
img
l10n fix(l10n): Update translations from Transifex 2026-06-14 01:31:55 +00:00
lib refactor: More cleanups of the controllers 2026-06-11 10:00:26 +02:00
screenshots
src fix(map): Add refererr to not get blocked by OSM 2026-06-10 10:18:24 +02:00
templates support PMTiles protocol 2026-02-18 11:56:56 +08:00
tests refactor: More cleanups of the controllers 2026-06-11 10:00:26 +02:00
vendor-bin build(deps-dev): bump nextcloud/coding-standard in /vendor-bin/csfixer 2026-06-10 09:55:18 +02:00
.babelrc.js
.editorconfig
.eslintignore feat: migrate files app integration to new API 2025-09-23 13:41:42 +02:00
.eslintrc.js
.git-blame-ignore-revs
.gitignore
.gitlab-ci.yml
.l10nignore Create .l10nignore 2025-08-01 21:29:56 +02:00
.nextcloudignore build: Port to krankerl 2026-06-09 16:26:16 +02:00
.php-cs-fixer.dist.php chore: Add stubs folder to ignore list for code style 2024-09-16 18:20:26 +02:00
.stylelintignore
.travis.yml
AUTHORS.md
babel.config.js
CHANGELOG.md updated Changelog 2025-07-24 22:59:43 +02:00
composer.json fix: fail-on-warning remote it 2026-06-09 21:53:03 +02:00
composer.lock build(deps-dev): bump christophwurst/nextcloud_testing 2026-06-09 21:09:31 +02:00
CONTRIBUTING.md
COPYING
krankerl.toml build: Port to krankerl 2026-06-09 16:26:16 +02:00
openapi.yml
package-lock.json build(dependencies): Bump @nextcloud/vue to 9.8.2 2026-06-10 15:58:40 +02:00
package.json build(dependencies): Bump @nextcloud/vue to 9.8.2 2026-06-10 15:58:40 +02:00
psalm.xml refactor: Port away from the very old hooks 2026-06-09 16:47:25 +02:00
README.md
rector.php refactor: run rector on codebase 2026-06-09 17:22:31 +02:00
stylelint.config.js
tsconfig.json fix: use filepicker API for placing photos on the map 2025-10-12 22:20:59 +02:00
webpack.js feat: migrate files app integration to new API 2025-09-23 13:41:42 +02:00

Nextcloud Maps

With MapLibre-GL support

🌍🌏🌎 The whole world fits inside your cloud!

  • 🗺 Beautiful map: Using OpenStreetMap and Leaflet, you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨
  • Favorites: Save your favorite places, privately! Sync with GNOME Maps and mobile apps is planned.
  • 🧭 Routing: Possible using either OSRM, GraphHopper or Mapbox.
  • 🖼 Photos on the map: No more boring slideshows, just show directly where you were!
  • 🙋 Contacts on the map: See where your friends live and plan your next visit.
  • 📱 Devices: Lost your phone? Check the map!
  • 〰 Tracks: Load GPS tracks or past trips. Recording with PhoneTrack or OwnTracks is planned.

Future plans:

User Documentation

My Maps

Custom maps are stored by default in the "/Maps" folder. This folder can be found in the files app. Other folders turned into map by placing a ".index.maps" file into it. Content can therefore be added via:

  • Webdav (Desktop and Mobile clients)
  • Files app
  • Maps app

Custom maps can then be shared from the maps or any other app.

Sharing map

Maps can be shared using the nextcloud sharing system.

Favorites on custom map

Favorites on custom the custom maps are stored in the .favorites.json file.

Shared favorite categories can be linked to a custom map. Linked favorite categories are read-only. They can be edited on the owners default map. These links are stored in the ".favorite_shares.json".

Contacts on custom map

Contacts on custom maps are stored as vCards (*.vfc) files.

Tracks on custom map

Tracks on custom map are stored as "*.gpx files".

Photos on custom map

Photos are stored in the corresponding folder. They can be added from files or from maps Existing photo albums can be viewed on the map by placing a ".index.maps" file into it.

Scanning photos take time. Therefore photos are scanned in the background. After adding photos it might take a while, until the scan is done and the photos are shown on the map.

🏗 Development setup

This requires that you install node and npm.

  1. ☁ Clone this app into the apps folder of your Nextcloud: git clone https://github.com/nextcloud/maps.git
  2. 👩‍💻 In the folder of the app, run the command make to install dependencies and build the Javascript.
  3. Enable the app through the app management of your Nextcloud
  4. 🎉 Partytime! Help fix some issues and review pull requests 👍

Admin documentation

Media scans are performed with the regular system background job.

Scans can also be manually triggered via occ command:

./occ maps:scan-photos to rescan photos' GPS exif data

./occ maps:scan-tracks to rescan track files