GSoC 2024 – Panoramax integration

Posted by Juicio on 5/27/2024

Panoramax

Panoramax view feature improves map exploration and gives users access to 360-degree imagery that enhances the mapping process and gives important visual context.
The community gains access to a potent tool that improves map visualization and encourages increased engagement and participation in the mapping process.
Live images can provide a lot of information that can be hard to determine, such as the weather or the terrain condition.

Introduction

Hi I’m Mattia, one of the Google Summer of Code 2024 contributors. This journal will be updated weekly based on what is happening. If you want to see how streetlevel layers work you can check out a guide here.

Milestones

Important and mandatory Milestones

  1. Design how to add Panoramax in iD, understand how image retrieval works and how best to implement it.

  2. Write the new Panoramax layer in iD.
    • Codify the functionality of the basic layer
    • Viewing normal Panoramax photos
    • Displaying 360-degree Panoramax photos.
  3. Add functionality to the layer.
    • Add filters for username, photo type and date (like Google Maps does if it has multiple images of a place).
  4. Integration with other UI elements.
    • Paste the id of the photos into the OSM tag.
    • Modify the UI to make it easier to enable all accessible street-level image layers in a given area (e.g., “enable all” button for street-level layers).

At each stage: write documentation, write tests, fix bugs, and check that everything is implemented correctly.

Results

Everything that has been done is avaiable at this link. Open the sidebar -> click “Map data” -> “Streetlevel” -> “Panoramax” (you’ll need to zoom in quite a bit to be able to activate the layer).

You can also check the code here.

Check the Pull Requests here

Left to do

All the important milestones are done, but there are some tasks left over:

  • Adding ID tag to OSM.
  • Adding a number to show how many photos a streetlevel layer holds for the current view.
  • Still need to consolidate duplication in code of various street level layers into a base module

Week 1 (27/05 - 31/05)

This first week the focus was to understand how iD codebase works and how the already implemented street level service operate. In reality, things moved a little faster than anticipated.

After the first week we have a semi-operational environment:

  • The dot is displayed with the header cone.
  • Sequences are shown and bubbles of the same sequence are linked.
  • Panoramax flat images are displayed in the panel when the corresponding point is clicked.

Next week will focus on:

  • Implementing 360 images
  • Being able to move between images
  • Refactoring and checking the code for smells
  • Checking if the API is being used correctly

Week 2 (03/06 - 07/06)

This week I finished implementing the basic functionality for viewing street-level photos; you can now see both 360 and normal photos and move between sequences.

I also added an HD button to switch between resolutions, a report button, and a way to keep the same heading if you move between pictures in the same sequence.

The color of the bubbles and lines now matches the Panoramax logo.

Week 3 (10/06 - 15/06)

This week I added a way to keep the viewfinder heading the right direction on the map so you can kinda see where you are looking at.

I also added a boring filter to filter by date, this will be updated with a slider that shows all the possibile years (so you don’t have to manually search for them).

Week 5 (17/06 - 21/06)

This week:

  • I added a way to see sequences on low level zoom so you can see where images are without zooming in every time
  • I added a username filter (kinda harder than it should have been)

Week 6 (24/06 - 29/06)

This week:

  • I added a slidebar to filter years!
  • Started to wonder how to improve the current code

Week 7-8-9 (01/07 - 19/07)

Hi! I haven’t updated the blog in a while, but that doesn’t mean we haven’t been working on something! No new features have been introduced these weeks, most of the work has been dedicated to fixing major and minor bugs to prepare the branch for the first official PR which you can check out here!

This first PR includes most of the work done but the year slider, which we are still tweaking to make it the best possible.

We have also been working with the Panoramax team, the main endpoint has been changed, and even more images are now available!

Next week will not bring any new features, I will see you again on August 10 with new features!

Week 11-12 (29/07 - 9/08)

Hi! Long time no see; these weeks I released a test version that everyone can use. You can take a look here, test it and tell us what you think!

I have also implemented - The new improved version of the year slider. - A new shortcut to temporarily disable all street levels (SHIFT+P).

GSOC is coming to an end, so the next 2 weeks will be dedicated to bug fixes and code refinement

Week 13-14 (12/08 - 23/08)

These two weeks have been completely dedicated to bug fixes, you can check all the fixes in the new PR here which will be released for testing soon.

The wiki page has also been updated to show how Streetlevel Services work.

This will be the last update for now, GSoC has come to an end, but this does not mean that the project will end here. In the meantime, thank you all for reading my semi-weekly blog and see you next time :D