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. |
||
---|---|---|
3party | ||
android | ||
api | ||
base | ||
cmake | ||
coding | ||
data | ||
debian | ||
descriptions | ||
docs | ||
drape | ||
drape_frontend | ||
editor | ||
feature_list | ||
generator | ||
geometry | ||
indexer | ||
installer/win | ||
iphone | ||
kml | ||
local_ads | ||
map | ||
mapshot | ||
metrics | ||
openlr | ||
partners_api | ||
platform | ||
pyhelpers | ||
qt | ||
qt_tstfrm | ||
routing | ||
routing_common | ||
search | ||
shaders | ||
skin_generator | ||
software_renderer | ||
stats | ||
std | ||
storage | ||
testing | ||
tizen | ||
tools | ||
track_analyzing | ||
track_generator | ||
tracking | ||
traffic | ||
transit | ||
ugc | ||
xcode | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
build_version.hpp.in | ||
CMakeLists.txt | ||
configure.sh | ||
CONTRIBUTORS | ||
defines.hpp | ||
LICENSE | ||
NOTICE | ||
omim_config.h | ||
precompiled_headers.hpp | ||
private_default.h | ||
README.md |
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.