Useless and confusing 🔎 zoom, pixel parity needed

Just to clear out any misunderstandings, I really appreciate the :mag_right: zoom function. However, since its introduction, I have been confused about its usefulness and usability on higher levels, especially when zooming in over 100%. I have been particularly bothered about the fact that you cannot zoom in exactly 100%, neither at level 1 nor at level 3, which any of these levels would have been an intuitive or natural choice. If you think about it for a bit longer, then zooming in over 100% of the image’s native resolution does not make any sense in any case. You do not gain any additional information or insight. You also cannot edit the image in the web app, like you might need on a per pixel basis in an image editing app. Vision impaired people do not need zoom levels over 100% either because they use OS tools or the browser to magnify what and how they need it. So, what’s the point? Maybe it is just a relic from the olden days of the blur and tag editors? Anyhow, it is rather confusing just for viewing and quite irritating that you cannot zoom in 100% simply by using controls but have to fiddle around with the URL.

In my understanding, if the image resolution is greater than the display resolution, the maximum zoom level, which currently is 3, should be 100% and the display resolution should match pixel per pixel with the image’s native resolution at this level. If the image resolution is lower than the display resolution then you are obviously sort of “out of luck” and you have to zoom in or scale over 100% but also no more. Note that just to make things simple and easy to understand, while I am comparing resolutions here I implicitly mean that the image’s aspect ratio should be preserved.

I do use the zoom funktion for greater than 100% zoom levels. This is helpful for modern Hi-DPI displays, such as 4K. There, even for non-impaired people magnification is helpful, e.g. to be able to read a street sign, and they usually do not have screen magnifier helpers.
What bothers me on Hi-DP screens is that the viewer uses low-resolution images that are lower than screen resolution, such that I need to zoom in simply to get it to load high-res images for making out details. Even less understandable: When I then zoom out again, the already loaded high-res image part is again replaced with the low res for no reason.

What bothers me on Hi-DPI screens is that the viewer uses low-resolution images that are lower than screen resolution, such that I need to zoom in simply to get it to load high-res images for making out details. Even less understandable: When I then zoom out again, the already loaded high-res image part is again replaced with the low res for no reason.

This is something I have observed too. It happens because by default (at zoom level 0) the viewer loads that 2.048×1.536 thumbnail only. I guess for UI swiftness and bandwidth reasons? On 8K displays this effect should be even more visible although the bi-linear texture filter is working hard against it (:disappointed: if only GPUs would finally support a sinc filter on textures). Nevertheless, this effect is also perceivable on 1080p displays. Agreed, this is something that perhaps could/should be addressed too.

I do use the zoom function for greater than 100% zoom levels. This is helpful for modern Hi-DPI displays, such as 4K. There, even for non-impaired people magnification is helpful, e.g. to be able to read a street sign, and they usually do not have screen magnifier helpers.

There is an easy fix for this. Just make sure you have zoomed in 100% and you are close enough to your display. :wink:

The most pressing issue here is that there is no easy and simple way to achieve pixel parity, so that your zoom level is either too low or too high (depending on image resolution, of course).

Thanks for the feedback! We only load the high res image after zooming in for performance reasons. For any requests about our zoom behaviour, consider creating an issue in our image viewer repo: GitHub - mapillary/mapillary-js: Interactive, extendable street imagery map experiences in the browser, powered by WebGL

Thanks @nikola. I would happy with a pixel parity (100% zoom) button. While this should be trivial for linear perspective images, I am sure you can also find a reasonable approximate solution for other projections.