OSM2go has always been my favorite editor when I’m doing live mapping. Even if I have a Jolla 1 meanwhile I still carry around my N900 for the mapping things. There have been quite a few things that annoyed me nevertheless, like when I wanted to apply the tags of the last object to the current one it would ask if I want to overwrite the current tags. Even if there were none. So one day in April 2013 I sat down and hacked something together that would just fix that. Then I tried sending them to AMDmi3, who forked OSM2go on GitHub to give it some love. I failed to actually attach the patches, so nothing happened.
At the beginning of May 2016, I already had created an account on GitHub to throw some PRs on rurseekatze to beat OpenRailwayMap into shape. I found my old OSM2go patches on my disk and decided to finally get them upstream.
It took a few weeks before they were accepted, but then AMDmi3 probably feared that I would cause him more work with PRs, and he decided to just give me push access. Guess what, I did some commits.
Things have changed a bit since then: I have reworked the internal logic to use C++ instead of C. Using a std::map to map from an object id to it’s contents is just way more efficient than have an unsorted single linked list of them, with an additional cache for faster lookup. Sometimes this also creates additional opportunities to improve code, especially as the original code was extremely inefficient and could have been reduced to only run one loop even with the old C code. Those changes reduced the memory usage by several MB on larger projects, which is a big win on a device with only 256 MiB of RAM like the N900. Rewriting the track parser to not keep the whole XML in memory while parsing a GPX track reduced the time to open one of my projects 223 to 24 seconds. The presets menu can now work with nested folder, the presets (derived from JOSM ones) have been updated, when defining the area for a project you can now see the areas of the other projects and so on: I’m quite happy with what I now have.
And 2 weeks ago I finally was able to solve a mystery that bugged me for quite a while: why did HDYC only show JOSM and Potlatch as the editors I used? A few years ago I did quite some changes directly from my N900 using OSM2go, so what was happening there? Turned out that this had been broken ever since OSM2go added support for API 0.6, but it’s finally fixed and indeed HDYC now shows OSM2go again.
Just 2 questions remain: will I ever manage to build a Qt5 version of OSM2go so I can use it on my Jolla and do not need to carry around 2 phones all the time? And is anyone besides me actually using this?