🍃 Organic Maps is a free Android & iOS offline maps app for travelers, tourists, hikers, and cyclists. It uses crowd-sourced OpenStreetMap data and is developed with love by the community. No ads, no tracking, no data collection, no crapware. Please donate to support the development!
Find a file
Maxim Pimenov f39ab3f034 [editor] Postponed removing edits for a deleted map.
Editor used to subscribe to the now-deleted OnMapUpdated event
in the MwmSet. The semantics of OnMapUpdated(new,old) has always been
OnMapDeregistered(old)+OnMapRegistered(new) (the order is unspecified)
but the Editor treated it differently: i.e. in the Editor, an Update
was treated as a separate event non-equivalent to the combination of
Register and Deregister.

After the change in the implementation of the MwmSet, the OnMapUpdated
call is gone and, as per MwmSet's documentation, is replaced with
OnMapDeregistered+OnMapRegistered. This changes the behaviour of
the Editor.

Before, the Editor did nothing on a Registered event (all edits for the
existing maps were loaded at startup), reloaded all edits on an Update
event (including the edits for the non-updated maps), and deleted the
edits for the deleted map on a Deregistered event. The reasons for
deletion of the edits are unclear but presumably we wanted to warn
the user to not delete the map until the edits have been uploaded, and
also some bugs were observed when redownloading a map for which edits had
not been deleted.

Now, the Editor loads the edits for a newly Registered map and does
nothing when a map is Deregistered. The changes for a deleted map will be
deleted on the next startup or when another map is downloaded (or updated).
The message we show to the user is not changed and it still says that the
edits are going to be deleted.

Note that with current design we need the mwm file to be present if we
want to upload the changes. Therefore, the collection-deletion of edits
for showing them on map is not decoupled from the collection-deletion
for the purpose of uploading them to OSM.
2019-09-26 10:10:31 +03:00
3party Got rid of the old style std/ includes for several files, mostly in software_renderer/. 2019-09-23 17:03:29 +03:00
android Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
api [linux] Fixed project build with g++ 4.8. 2015-10-21 14:23:51 -07:00
base [platform] thread runner test + renaming 2019-09-24 18:40:07 +03:00
cmake Review fixes 2019-08-27 16:28:48 +03:00
coding Review fixes. 2019-09-25 19:38:06 +03:00
data [styles] Updated styles. 2019-09-25 13:55:03 +03:00
debian Updated desktop EULA. 2015-09-22 17:04:41 -07:00
descriptions [coding] Renamed the StringUtf8Multilang files. 2018-12-13 13:19:18 +03:00
docs Got rid of the old style std/ includes for several files. 2019-09-19 18:48:06 +03:00
drape [drape][bookmarks] Added support of custom images 2019-09-24 19:19:32 +03:00
drape_frontend [drape][bookmarks] Added support of custom images 2019-09-24 19:19:32 +03:00
editor [editor] Postponed removing edits for a deleted map. 2019-09-26 10:10:31 +03:00
feature_list [geometry] LatLon refactoring. 2019-05-30 18:53:51 +03:00
generator [generator] Fix CrossMwmOsmWaysCollector 2019-09-24 13:12:01 +03:00
geometry [generator] Added index for borders. 2019-09-18 17:44:47 +03:00
indexer [indexer] Removed the UPDATE event type from MwmSet. 2019-09-26 10:10:31 +03:00
installer/win [fonts] Replace WenQuanYi MicroHei with Droid Sans Fallback 2015-09-22 16:59:06 -07:00
iphone Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
kml KML library v.4 2019-09-07 01:41:55 +03:00
local_ads [base] [coding] Moved file_name_utils.{c,h}pp from coding/ to base/. 2019-05-21 13:40:48 +03:00
map [map] Fixed a possible race condition in Framework. 2019-09-26 10:10:31 +03:00
mapshot Got rid of the old style std/ includes for several files. 2019-09-19 13:36:24 +03:00
metrics Got rid of the old style std/ includes for several files throughout the project. 2019-09-19 10:57:03 +03:00
openlr Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
partners_api Got rid of the old style std/ includes for several files, mostly in software_renderer/. 2019-09-23 17:03:29 +03:00
platform [platform] thread runner test + renaming 2019-09-24 18:40:07 +03:00
pyhelpers Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
qt Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
qt_tstfrm Usage of shaders library 2018-06-28 18:04:46 +03:00
routing [routing] Make DataSources queue waitable for resources 2019-09-24 16:50:52 +03:00
routing_common [routing] Review fixes. 2019-09-11 16:53:03 +03:00
search [c++] fix warnings from clang 11.0 2019-09-24 12:57:29 +03:00
shaders Added fake segments vizualization for routes 2019-09-05 16:16:18 +03:00
skin_generator Review fixes 2019-04-22 17:05:22 +03:00
software_renderer Got rid of the old style std/ includes for several files, mostly in software_renderer/. 2019-09-23 17:03:29 +03:00
stats [cmake] Add precompiled headers support 2018-06-15 13:14:00 +03:00
std [std] Removed unused files. 2019-09-23 17:03:29 +03:00
storage [indexer] Removed the UPDATE event type from MwmSet. 2019-09-26 10:10:31 +03:00
testing Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
tizen [coding] Changed the filenames of the FilesContainers to better reflect the class names. 2019-09-20 18:29:16 +03:00
tools [generator] Fixed adding fake nodes. / Removed TranslatorCountryWithAds, TranslatorWorldWithAds. 2019-09-11 14:11:18 +03:00
track_analyzing [routing] Posibility to use different off road speed for weight and ETA. 2019-09-11 16:53:03 +03:00
track_generator [routing] routes_builder_tool 2019-09-18 12:44:37 +03:00
tracking Got rid of the old style std/ includes for several files. 2019-09-19 13:36:24 +03:00
traffic Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
transit Fixed some warnings. 2019-05-15 13:35:08 +03:00
ugc Got rid of the old style std/ includes for several files, mostly in map/ and platform/. 2019-09-23 13:25:26 +03:00
xcode [std] Removed unused files. 2019-09-23 17:03:29 +03:00
.clang-format [iOS] Add Objective-C style guide. Update clang-format rules 2019-06-10 13:18:39 +03:00
.gitattributes [mopub] [ios] Added Mopub framework. 2017-04-13 17:08:16 +03:00
.gitignore Rewrite configure.sh to support private branches 2019-08-12 20:30:41 +03:00
.gitmodules Don't show dirty content from submodule in status 2019-06-13 18:10:44 +03:00
build_version.hpp.in Version namespace 2019-08-20 18:33:03 +03:00
CMakeLists.txt [geocoder] Removed the geocoder files. 2019-09-02 12:42:04 +03:00
configure.sh Fix possibly undefined vars on Mac 2019-08-23 12:28:17 +03:00
CONTRIBUTORS Update CONTRIBUTORS 2015-11-20 15:27:42 +03:00
defines.hpp [generator] Add cross mwm osm ways collector 2019-09-19 15:10:26 +03:00
LICENSE [docs] Updated license and texts 2015-09-29 19:30:37 +03:00
NOTICE Updated year 2019-09-19 15:29:02 +03:00
omim_config.h [core] crown is added 2019-09-02 15:27:55 +03:00
precompiled_headers.hpp [base] Unified stl_add and stl_helpers. 2018-09-14 15:14:36 +03:00
private_default.h [crown] fix for open source 2019-09-09 11:32:18 +03:00
README.md Update README.md 2019-09-18 13:10:32 +03:00

MAPS.ME

MAPS.ME is an open source cross-platform offline maps application, built on top of crowd-sourced OpenStreetMap data. It was publicly released for iOS and Android.

Submodules

This repository contains submodules. Clone it with git clone --recursive. If you forgot, run git submodule update --init --recursive.

Translations

If you want to improve app translations or add more search synonyms, please check our wiki.

Compilation

To compile the project, you would need to initialize private key files. Run configure.sh and press Enter to create empty files, good enough to build desktop and Android debug packages.

For detailed installation instructions and Android/iOS building process, see INSTALL.md.

Building maps

To create one or many map files, first build the project, then use python module maps_generator.

Map styles

MAPS.ME uses its own binary format for map styles, drules_proto.bin, which is compiled from MapCSS using modified Kothic library. Feature set in MWM files depends on a compiled style, so make sure to rebuild maps after releasing a style.

For development, use MAPS.ME Designer app along with its generator tool: these allow for quick rebuilding of a style and symbols, and for producing a zoom-independent feature set in MWM files.

See STYLES.md for the format description, instructions on building a style and some links.

Development

You would need Qt 5 for development, most other libraries are included into the repository: see 3party directory. The team uses mostly XCode and Qt Creator, though these are not mandatory. We have an established c++ coding style and Objective-C coding style.

See CONTRIBUTING.md for the repository initialization process, the description of all the directories of this repository and other development-related information.

All contributors must sign a Contributor Agreement, so both our and their rights are protected.

Feedback

Please report bugs and suggestions to the issue tracker, or by mail to bugs@maps.me.

Authors and License

This source code is Copyright (C) 2019 My.com B.V. (Mail.Ru Group), published under Apache Public License 2.0, except third-party libraries. See NOTICE and data/copyright.html files for more information.