SkillAgentSearch skills...

GoMap

OpenStreetMap editor for iPhone/iPad

Install / Use

/learn @bryceco/GoMap
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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:

  • iD presets database (https://github.com/openstreetmap/id-tagging-schema)
  • iD presets icons (https://github.com/ideditor/temaki, https://github.com/mapbox/maki)
  • Name Suggestion Index (https://github.com/osmlab/name-suggestion-index)
  • NSI brand imagery (pulled from Facebook/Twitter/Wikipedia)
  • StreetComplete quest filters (https://github.com/streetcomplete/StreetComplete)
  • Weblate translations (https://hosted.weblate.org/projects/go-map/app)

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.

View on GitHub
GitHub Stars387
CategoryDevelopment
Updated11h ago
Forks48

Languages

Swift

Security Score

100/100

Audited on Apr 7, 2026

No findings