/osmapp

Lets make a universal app for OpenStreetMap

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

OsmAPP

Let's create a universal app for OpenStreetMap ecosystem. It should be as easy to use as Google Maps, including clickable POIs and editing capabilites. Built with React, Next.js and Maplibre GL. See also SotM 2021 talk.

project OpenClimbing.org (beta)

Open climbing maps and topos. Photos are uploaded to Wikimedia Commons and route data stored in OpenStreetMap (spec).

How to contribute 🐱‍💻

You may add issues here on GitHub, or try to update the code in three simple steps:

  1. edit code online with pencil icon (this opens a pull-request) ✏️
  2. wait few minutes for a preview URL 💬
  3. iterate 🔁

If you are a JS dev, you may also git clone / yarn / yarn dev
Or open OsmAPP in gitpod or GitHub Codespaces – full dev environment in your browser.
If Vercel build fails, please run yarn build locally to debug it.
Some architecture DOCS here.

Features 🗺 📱 🖥

  • clickable map – poi, cities, localities, ponds (more coming soon)
  • info panel – presets and fields from iD, images from Wikipedia, Mapillary or Fody, line numbers on public transport stops
  • editing – with osm login. For anonymous users a note is inserted.
  • search engine – try for example "Tesco, London" (powered by Photon). Category search from iD editor presets or pure overpass search (eg. amenity=* or op:<query>)
  • vector maps – with the possibility of tilting to 3D (drag the compass, or do two fingers drag)
  • 3D terrain – turned on when tilted (use terrain icon to toggle off)
  • tourist map – from MapTiler: vector, including marked routes
  • layer switcher – still basic, but you can add your own layers
  • mobile applications – using PWA technology, see osmapp.org/install
  • permanent URLs – eg. osmapp.org/way/123557148 and shortener, eg. osmapp.org/kkjwwaw
  • creating POIs – after clicking the coordinates (see eg. osmapp.org/50.1,14.39)
  • languages – interface in English, Czech, German, Polish, Spanish, Amharic, Italian, French
  • undelete – undo accidental delete in osmapp or elsewhere, eg. here
  • and lot of little details 🙂

Coming soon

Compatibility

  • tested in Chrome 90 (Mac,Win,Android,iOS), Safari 14, Firefox 88, Edge 90 (slow)
  • webgl technology needed

Changelog

OsmAPP is updated continuously with every commit. Versioning is used only for summarizing the changes once in a while:

  • v1.4.0 (6/2024)

    • FeaturePanel

      • 🎉 use iD Tagging scheme for properties (PR1, 2)
      • 🖼 add panellum Panorama viewer for Mapillary (@Dlurak, PR)
      • ⭐️ add Stars (favorites) to every element (PR)
      • 🚌 add public transport labels (@Dlurak, PR1, 2)
      • add Food hygiene rating scheme (@Dlurak, PR)
      • add geoUri to coordinates dropdown on mobile (PR)
    • Search

      • 🔎 add search by categories + by overpass query (PR1, 2, 3)
    • Layers:

      • 🏔️ add 3D terrain when user tilts (PR1, 2)
      • ❄️ add overlays support + Snow overlay (PR)
      • 🏞️ add cliffs to outdoor style (PR)
      • add attribution to layers (PR)
      • use new maptiler satellite (@kudlav, PR)
      • add bing satellite (PR)
      • add OpenPlaceGuide Africa - makina maps in Africa bbox (PR)
      • add ČÚZK Ortophoto in CZ bbox (PR)
    • misc

      • 🕸️ add url shortener for every feature (PR)
      • hackish fix of corrupted id from Maptiler (PR)
      • use OAuth 2.0, login button (PR, 2, 3)
      • add disclaimer to homepage – not an official app (PR)
      • optimize homepage because of hackernews mention 🥰 (PR)
      • support language prefixes for all URLs for SEO (PR)
    • climbing features

      • 🧗 topo viewer and editor (@jvaclavik, many PRs)
      • 🗺️ add climbing overlay (PR1, 2, 3, 4, 5)
      • add branding for openclimbing.org domain (PR)
  • v1.3.0 (3/2023)

    • 💡 added dark mode UI (PR)
    • 🖼 updated to Mapillary v4 (@kudlav, PR)
    • added Spanish (@kresp0, PR)
    • added Italian (@ricloy, PR)
    • added French (@le-jun, PR)
  • v1.2.0 (2/2022)

    • 🔎 changed search to Photon API (@kudlav, PR)
    • added Amharic (@amenk, PR)
    • added German (@amenk, PR)
    • added Polish (@strebski, PR)
  • v1.1.0 (8/2021)

    • changed search to Maptiler API (@charleneolsen, PR)

License

GNU GPL

Related projects

We may reuse it in osmapp in the future. First two via #217 – thanks to @leam.