zohaib_'s Diary

Recent diary entries

Google Summer Of Code '21 Final Report for Element History Widget

Posted by zohaib_ on 24 August 2021 in English (English).


I started google summer of code with the aim of creating a library that can be easily added to Vespucci and provide it with element comparison features, and provide some other feature requests in Vespucci. I was able to create and deploy the Element History Dialog, which can be found here, where you can find the implementation details for the library.

Work Done

The major work done during the coding period includes the following -

  1. Creating the parser for OSM elements
  2. Creating the parser for Changesets
  3. Creating the UI to list all versions for a selected OSM element
  4. Creating the UI for comparison between different OSM elements
  5. Logic for comparison between tags of different versions of a element
  6. Logic for comparison between data for 2 versions of a node
  7. Logic for comparison between data for 2 versions of a way
  8. Logic for comparison between data for 2 versions of a relation
  9. Handling edge cases like deleted elements and versions
  10. publishing the library and creating the sample application

A more detailed usage guide can be found on the github readme

Future Scope

Some additions to the project that I plan are -

  1. Creating more test cases - currently there are a few unit tests that test the basic functionality of the app, I will add more unit tests to cover most logical operations and few UI tests to test the basic flow of the library
  2. Adding the library to vespucci
  3. Creating Pull Requests on Vespucci for other features mentioned in my gsoc application.

Finally, I would like to say that my experience with the OSM community has been great, and I would love to contribute more to the great projects that are hosted by OSM

Google Summer Of Code '21 progress so far

Posted by zohaib_ on 24 July 2021 in English (English).

This diary entry is a bit delayed, but this will contain my progress for the gsoc period so far and what I have been upto during the last 5-6 weeks A detailed description of my work can also be found at Github Wiki

My task was to create an Element History Comparison dialog for Vespucci, which can be provided as a separate library so that it can be useful for other open source projects if they need the same functionality.

What the Element History Comparison Dialog does is what the name suggests, i.e it compares what changes the have been made to a particular OSM element on the map and details them, like providing tag changes and which user has made those changes. It works as something similar to the built in history feature of JOSM.

Right now, I have completed the dialog itself and am currently testing different possible user interfaces for the application, in order to better suit a mobile screen, which has been the most challenging part so far as due to the lack of width on the mobile device certain compromises needed to be made

My Weekly progress has been the following:


  • Created all the required base OSM elements and storage structures
  • Created a custom implementation of the OSM parser to parse the XML response
  • Added unit tests for the base OSM classes and the parser
  • Created the initial library interface
  • Setup for the HTTP requests


  • Created the version selection screen UI
  • Impl. the version selection logic with radioButtons and groups


  • Created tests for the version selection screen
  • Improved UI for the history screen
  • Current UI for the selection screen


  • Created the base UI for the comparison screen
  • Created the logic for the comparison screen
  • Implemented changeset fetching


  • Created logic for the comparison screen
  • Added changeSet Details
  • Add basic UI for comparison
  • Fix test cases


  • Ui testing and improvements

I am hopeful that my project would be concluded in the coming weeks, and it can be included in Vespucci

My GSoC 2021 diary and plans

Posted by zohaib_ on 2 June 2021 in English (English). Last updated on 11 July 2021.

Hello everyone, through this diary I would like to introduce myself to the broader OSM community and share plans regarding my GSoC project

About Me:

I am Zohaib Ansari, an undergraduate student in Electronics and communication from New Delhi, India

I spend my free time learning programming, working on my own small open source projects

I was introduced to OSM by a friend I play geoGuessr with, and coming across Vespucci made me interested in applying to OSM as the project idea seemed pretty interesting

Element history widget for Vespucci

During the GSoC coding period, I will work on creating the element history widget as a library for android apps, the element history widget will bring a feature similar to JOSM’s native element history comparison dialog to android (with certain platform limitations)

The Main features of this library would be:

  1. Display information about all the iterations an OSM element has gone through
  2. Selection of any 2 versions of the element from the history and allow comparison between them
  3. Displaying other information including coordinates, changesets etc

Apart from creating the library, I would also work on providing robust test cases for the library itself and for Vespucci after the library has been integrated with it.

I will keep a detailed account of my work in the github wiki of the project and will also keep this diary entry updated throughout my time working with Vespucci, please feel free to reach out if you have any questions regarding my work or anything else!

Link to detailed Roadmap and Progress for this project: Wiki

Location: Vivek Vihar Tehsil, Shahdara, Delhi, India