Haiku Inc

Code a map application (Part 5)

Code a map application similar to GNOME Maps using OpenStreetMap as a data source.

This is a multi-part task, there will be more tasks adding more functionalities to the application.

You must work from the application created in parts 1-4: https://github.com/raefaldhia/Maps

For this fifth part, the goal is to implement transformations on the map view to allow for smooth browsing of the map. It should work this way:

  • The user can pan and zoom the map. This will trigger a reload of a map tile from the server, but it can take some time
  • In order to provide immediate feedback, the existing tile should be moved and zoomed appropriately. This can be done immediately.
  • Once the new tile for the new position is available, it will replace the previous one.

In order to do this, you can use BView::SetTransform and the BTransform class. This will allow you to perform all required changes (panning and scaling) by the use of an appropriate transform matrix. Rotation would also be possible.

Task tags

  • openstreetmap
  • map
  • geo
  • c++

Students who completed this task

raefaldhia

Task type

  • code Code
close

2016