Google Summer of Code/2012/Improvements to Vespucci

From OpenStreetMap Wiki
Jump to navigation Jump to search

The GSoC is over. Please see below and check for an overview of the new features.

This is the description page of my GSoC project 2012. I will be adding some exciting new features to the Vespucci OSM editor for Android. My name is Jan Schejbal, and I study IT Security at the TU Darmstadt, Germany. I will document the progress of the project on this wiki page. Suggestions and criticism are always welcome - the earlier I know what to change, the less work it is ;-)

My project consists of multiple parts, which I will be describing on separate pages:

The first "primary" part of my project is creating an "Easy editing mode", in which node and way tags are selected from JOSM preset files instead of manually entered, and in which switching between modes is not necessary anymore. This should make Vespucci more usable for beginners (no need to know all those tag values) and regular users (no need to type all those tag values) alike. This has been implemented. See Vespucci#EasyEdit mode for details.

The second "primary" part of my project is Multi-API support. Users should be able to select which API server to use. This allows users to use Vespucci also for non-public maps, be it casualty locations and conditions in an earthquake response scenario, or the locations of posters your organzation is putting up. Or simply switching between the dev and production servers. This has been implemented.

I hope that I will have some time left after finishing those "primary" parts. In that case, I will look for additional improvements to Vespucci to improve usability. After all, I am going to use it, too, so I want it to be good :-)

Some of these additional tasks I might tackle are:

  • done - Improving the auto-saving feature to prevent data loss (e.g. lost GPS tracks when device is locked and rotated)
  • done - Local saving to custom files for JOSM import/export (and checking before upload)
  • done - "Undo" support
  • NOT done (only node icon rendering) - On-device rendering of the background map, e.g. using the mapsforge library
  • see below - Possibly other features as they come by, or as seen in the bug tracker.

I will not be able to do all of these, but I expect to be able to do at least one of them.

Some additional information including the timeline is also included on the GSoC project page.


You can find the source in the "gsoc-janschejbal" branch in the official repo.

Among other things, I already made the following changes there:

  • ActionBar support (using ActionBarSherlock library) - still needs some minor work, e.g. OpenStreetBugs menu item hiding.
  • Easy Edit mode
  • API selection support (multiple APIs can now be used)
  • Support for tagging using JOSM presets
    • Recently-used preset history
    • Configuration UI and data downloader for external presets
    • API and preset provisioning via URLs (i.e. hyperlinks or QR codes)
  • Reliable saving of data
  • Support for OsmChange export
  • New service-based track recording with reliable saving
    • Support for track segments
    • Support for GPX export
  • Undo support with full multi-undo and redo support
  • Support for rendering node icons (according to preset)
  • A short "help" section to explain EasyEdit mode
  • Improvements to various parts of the app (see SVN log), e.g.
    • Much better handling of device orientation changes
    • Greatly improved map rendering compatibility with hardware acceleration
    • Way direction indicators
    • "Reverse way" feature
    • Lots of bugfixes