gitmyhub

omim

C++ ★ 4.6k updated 3y ago

🗺️ MAPS.ME — Offline OpenStreetMap maps for iOS and Android

Source code for MAPS.ME, an offline maps app for iPhone and Android that downloads OpenStreetMap community data to the device so maps work without any internet connection.

C++PythonQtiOSAndroidOpenStreetMapsetup: hardcomplexity 5/5

MAPS.ME is an offline maps application for iPhone and Android phones. It uses map data from OpenStreetMap, a community-built geographic database where volunteers contribute roads, buildings, points of interest, and other location data worldwide. Because the maps are downloaded to the device, MAPS.ME works without an internet connection, which makes it useful for travel in areas with poor or expensive mobile data coverage.

The source code covers both the mobile apps and the tooling needed to build the map files the apps consume. Map data goes through a processing pipeline before it lands on a phone: raw OpenStreetMap data is compiled into a compact binary format called MWM using a Python tool included in the repository. The visual styling of maps is also compiled separately from a stylesheet format, and changes to styles require rebuilding the map files to take effect.

The project is written primarily in C++. Development relies on Qt 5 for the desktop build, while most other third-party libraries are bundled directly in the repository. The team used Xcode for iOS and Qt Creator for other platforms, though neither is required. A MAPS.ME Designer tool is mentioned for working on map styles without a full rebuild cycle.

Contributors must sign a contributor agreement before their code is accepted. Bug reports and feature requests go through the GitHub issue tracker. The codebase also has experimental public transport display support that can be turned on separately.

The license is Apache Public License 2.0, with third-party components carrying their own licenses listed in a separate notices file. Copyright is held by My.com B.V., part of Mail.Ru Group.

Where it fits