Vespucci wishlist

I am an active OpenStreetMap contributor, and Vespucci is my main editor for the job. Many people are put off by its complexity and quirks. Even for me, it took a few false starts before I really got into it.

I now see it as the ultimate OSM editor which can serve you in almost any situation. I use it for mobile mapping of addresses, shops, and 3D buildings, remotely tracing buildings, indoor mapping, and even PT mapping in some situations.

This is a list of changes I'd like to see in Vespucci.

Situational enhancements

  1. Visual diff (a la Achavi or Changeset Map), both for unuploaded changes and when comparing past versions of objects.
  2. Extrude operation
  3. Flip object
  4. Area-based selective upload
    • I mostly use selective upload to split up large changesets into smaller ones, but there's no way for me to know if I've uploaded everything in an area. For example, I selectively uploaded objects in this changeset, but I missed something, so the next changeset ended up having an undesirably-large bounding box.

      A workaround is to use the object search - zoom to the desired area, search for (new or modified or deleted) and inview, then Upload Element(s).

General enhancements

  1. Draw line or area of specific dimensions. (…but constraints are better) Useful for any situation where you're actually measuring distances instead of just tracing from imagery. Especially useful for indoor mapping.
    • It's important to support not just rectangles, but any kind of polygon. One way to implement this could be that the user can start drawing an area, select any edge to update its length, and select any way node to update the angle - and Vespucci updates the geometry accordingly. Ideally, this information could be put into tags for safety and future reuse (that's the constraints proposal); or it could be discarded once the data is uploaded.
  2. Operations to draw common shapes, like circles, rectangles, and possibly squares (2488)
  3. Rotate multiselection as one object (1157) 1 Apparently implemented, but has not yet reached F-Droid.
  4. Select colors by using the camera or by tapping on a photograph (1750).

    That said, pointing a camera at a building can be a recipe for trouble. A simpler way would be to provide -

    1. A color selector - a single plane the user can drag a marker around on, similar to most graphics programs.
    2. A wider range of common colors, e.g. https://en.wikipedia.org/wiki/List_of_colors_by_shade
  5. When applying a preset, reuse tags of last instance of same preset (a la Every Door)
  6. An actual, "simple/stupid" square/orthogonalize operation, a la JOSM and iD.
    • The "smart" squaring operation has its proponents, so this "hard squaring" will probably have to be an additional operation instead of a replacement.
    • Instead of adding yet another operation, Vespucci could perform the "soft squaring" when the button is pressed once, and "hard squaring" when it's pressed twice quickly.
  7. A building terracing operation (like the terracer plugin in JOSM) (983, 2043)
  8. Operation to select all connected ways - useful to select a row of terraced buildings, or a building with all of its building parts, etc.
  9. Rotate the map (1415). Also show a rotation compass, which can be tapped to reset the rotation.
  10. Easily enter direction=* for e.g. surveillance cameras - allow using device compass as well as a manual "clock hand" interface (a la Every Door - 2364) 1 Apparently implemented, but has not yet reached F-Droid.
  11. Distribute nodes equally when arranging a way in a circle (828, 1860, related to 1267)
  12. Add second row of buttons to bottom bar, to reduce the need for the overflow menu.
  13. Generate changeset comments automatically (2392)
  14. Use device sensors to enter direction=* and incline=* values.

More radical enhancements

  1. Interactive tutorial
  2. Pictorial answers, a la StreetComplete
  3. Constraints
  4. Modern look and feel
  5. A user-driven interface, or some other way to trim the functionality and complexity presented to a new user. Many operations just aren't relevant to most users.
    • A plugin system is a more common but less granular way of achieving this end.
    • I have written extensive design notes detailing what a user-driven interface for Vespucci might look like. I might publish them later.