Following a previous article in French about a plugin I developed for the QGIS Web Client regarding the French cadastre, today I want to talk about another plugin I developed for Panoramax usage in the QGIS Web Client.
Panoramax is an open-source application that allows users to upload and utilize equirectangular 360° images, similar to Google Street View or Bing Streetside. The application also includes an API that enables users to integrate and use images in other software.

The idea behind this new plugin is to enable users to integrate the Panoramax web viewer directly into their QWC2 instances, allowing them to view Panoramax data within their own themes and datasets. Fortunately, we can use the Panoramax web viewer in QWC2 since it provides the option to embed the viewer as a library. So doing it using React with QWC2 wasn't that difficult.
For starter QWC2 already has support for Cyclomedia, another application that provide support for 360 equirectangular images. However, since Panoramax uses a significantly different API and request structure, I couldn't reuse any of the existing code for Cyclomedia support. So i had to restart a new component from scratch using the Panoramax Web Viewer Eventlisteners.
Another challenge was displaying the tiles representing images and sequences on the map. The Panoramax API provides MVT vector tiles, but since QWC2 uses OpenLayers, using a vector tile has two downsides. First, performance isn’t optimal, which could lead to very slow rendering at certain scales. Secondly, MVT tiles cannot be reprojected in OpenLayers, meaning the tiles will be misaligned if the user's EPSG differs from EPSG:3857.
To compensate for this downside, I also added the option for users to provide a mirror WMS, which improves performance and allows on-the-fly reprojection. However, since Panoramax instances do not provide WMS, users will need to set up their own WMS server. An example tile is available here.

With the web viewer configured and the tiles loading correctly, the plugin is now functional. However, I already have a few ideas for improvements. One enhancement would be to add the capability for the Panoramax viewer to change the sequence date directly within the viewer. Another improvement would be to send a simplified MVT through the API, similar to Street View or Streetside, by highlighting only the streets where images are available instead of returning all image traces.
This plugin, while it's already functional, there is still room for improvement, and I plan to continue refining its features. If you have any questions, suggestions, or feedback, feel free to reach out to me!