Skip to content

bryceco/GoMap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f2aaebc Â· Mar 31, 2025
Mar 31, 2025
Mar 31, 2025
Apr 18, 2020
Apr 18, 2020
Jun 22, 2021
Mar 4, 2024
Sep 3, 2020
Jan 26, 2023
Oct 19, 2019
Mar 16, 2023
Mar 16, 2023
Apr 15, 2023
Sep 25, 2018
Mar 14, 2025
Apr 29, 2019

Repository files navigation

Go Map!!

Go Map!! is an iPhone/iPad editor for adding cartographic information to OpenStreetMap.

Download on the App Store badge

Tutorial/help on the OpenStreetMap Wiki.

Join our TestFlight beta!

Do you want to help testing pre-releases of Go Map!!? Become a TestFlight tester today! 🚀

Source code structure

  • iOS - App-specific UI code
    • CustomViews - A collection of UIViews and CALayers primarily used by MapView
    • Direction - The view controller for measuring direction
    • Height - The view controller for measuring height
    • OpeningHours - Support for recognizing hours via camera
    • PhotoShare - App extension so we appear in the system Share menu
    • POI - View Controllers for tagging objects
    • Quests - Quest VCs and related code
    • Upload - View controller for uploading changesets
  • Shared - General purpose code (drawing code, OSM data structures, etc)
    • Database - A SQLite3 database storing downloaded OSM data
    • EditorLayer - The low-level graphical display for drawing nodes/ways
    • MapMarkers - Markers for Quests, Notes, etc.
    • OSMModels - Code for managing and storing OSM objects (nodes, ways, etc.)
    • PresetsDatabase - Code for processing iD presets
    • Tiles - Aerial imagery processing and display
  • Images - Images used for application elements (buttons, etc)
  • POI-Icons - Icons used for map elements (POIs, etc)
  • presets - The presets database copied from the iD editor
  • xliff - Translation files

Application architecture

Architecture diagram

External assets

A number of assets used in the app come from other repositories, and should be periodically updated. Because updating these items can be a lengthy process it is performed manually rather than at build time:

Updating external assets

cd src
(cd presets && ./update.sh)			# fetches latest presets.json, etc. files and NSI
(cd presets && ./getBrandIcons.py)		# downloads images from various websites and converts them to PNG as necessary
(cd presets && ./uploadBrandIcons.sh)	# uploads imagery to gomaposm.com where they can be downloaded on demand at runtime (password required)
(cd POI-Icons && ./update.sh)			# fetches Maki/Temaki icons 
(cd xliff && ./update.sh)				# downloads latest translations from Weblate (API token required). The output is very noisy and can be ignored

Formatting

In order to have a consistent code style, please make sure to install SwiftFormat and run it on a regular basis. Consider setting up a pre-commit Git hook, as described here.

Assets

The Go Map!! app icon was created by @Binnette.

Presets and translation

Go Map!! is using iD presets, so you can improve translations by improving translations of iD presets.