OpenStreetMap logo OpenStreetMap

GSoC 2024 – Panoramax integration

Posted by Juicio on 27 May 2024 in English. Last updated on 24 August 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

Discussion

Comment from Bart- on 27 May 2024 at 15:19

Cool project. Good luck!

Comment from paulbrunner on 2 June 2024 at 13:32

Really looking forward to this, buon lavoro!

Comment from overflorian on 3 June 2024 at 16:58

Hi Juicio. In the name of the whole Panoramax team: thank you! This is much needed 🤩🤩🤩

Also, our team remains at your disposal if you need anything from us. I’m sure you already discovered by yourself all our documentation, so if we can do anything else for you, please send us a message at panoramax@panoramax.fr

Regards

Comment from gendy54 on 3 June 2024 at 20:40

Thanks a lot Juicio.

Comment from Eric Bie on 4 June 2024 at 07:35

Very interesting and eagerly awaited here ! Panoramax sur Orléans Métropole Panoramax

Comment from cbeddow on 14 June 2024 at 20:47

Great to see new imagery sources! Hope to connect with you, maybe your familiarity with this could aid with future project ideas too

Comment from tordans on 5 July 2024 at 09:25

@Juicio this is looking great and thanks for the weekly updates.

(One thing that would help me is if you wrote a short note as a comment here when you update the post; it is hard to notice the updates without any notification or such. The RSS feed does not refresh unfortunately, so subscribing to your blog does not help either :).)

A few thought on the feature:

Comment from Juicio on 22 July 2024 at 08:15

Hi everyone, thanks for the suggestion and support given, I appreciate it very much. If you want to see more, the first official [PR] (https://github.com/openstreetmap/iD/pull/10317) is now available!

Comment from benoitdd on 23 August 2024 at 15:00

thank you very much for your work!

Comment from Juicio on 24 August 2024 at 00:15

Hi everyone, this will be the last update for this blog, GSoC has come to an end sooner than expected! It has been a pleasure working with all of you and I hope to do more in the near future, bye :D

Comment from tordans on 24 August 2024 at 05:09

@Juicio: Thanks for keeping us updated an for a very successful GSoC project!

Comment from CapitaineMoustache on 24 August 2024 at 20:09

Thanks a lot Juicio! Amazing work!👍

Comment from pujaaa on 11 December 2024 at 13:03

Hi there,

I am Puja Kumari currently planning to contribute to open source through GSOC and I found the OpenStreetMap community particularly inspiring because of its mission to create and provide free, accessible geographic data for the world.

It would be really great if the community members would help me to know regarding how should I get started.

Thanks and Regards

Comment from gendy54 on 11 December 2024 at 13:31

We need a Panoramax plugin for Josm. The one for Id has been developed, but not the one for Josm.

Log in to leave a comment