Opened 3 years ago
Last modified 13 months ago
#21498 new enhancement
Add an option to switch between 360 viewer and equirectangular viewer when a 360 image is visualized
Reported by: | Owned by: | team | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | Core image mapping | Version: | |
Keywords: | Cc: | StephaneP, taylor.smock |
Description
As much as I like the new 360 viewer, for editing purposes I usually like the equirectangolar projection better. Because I can look at its entirety with a glimpse, and quickly spot interesting details. The 360 viewer is still helpful when it's difficult to understand the geometry and the directions.
Therefore I'd like to have one or more of the following:
- have an option to disable the 360 viewer and fall back to the equirectangular projection (or is it already a hidden feature?). I know that I could tinker with the exif tags to mislead the viewer, but I'm too lazy ;-)
- have the ability to fast switch (a button or a keyboard shortcut) between 360 and equirectangular projection within the internal viewer. Calling the external viewer is slower and less convenient than doing all the work with the internal one.
- visualize both the equirectangular and 360 views at the same time (sort of the equivalent of working with a map and a mini map, applied to images)
Attachments (0)
Change History (42)
comment:1 by , 3 years ago
Cc: | added |
---|
comment:2 by , 3 years ago
Cc: | added; removed |
---|---|
Milestone: | → 21.11 |
Reporter: | changed from | to
follow-up: 4 comment:3 by , 3 years ago
comment:4 by , 3 years ago
Replying to michael.flamm@…:
Since this morning, I am not anymore able to see my complete 360° panoramic images. The integrated viewer only displays a "centered" equirectangular projection and I don't find a way to pan to the lateral parts of my images.
You can pan with the mouse and a right click.
follow-up: 11 comment:5 by , 3 years ago
Replying to bartosomail@…:
As much as I like the new 360 viewer, for editing purposes I usually like the equirectangolar projection better. Because I can look at its entirety with a glimpse, and quickly spot interesting details. The 360 viewer is still helpful when it's difficult to understand the geometry and the directions.
Therefore I'd like to have one or more of the following:
- have an option to disable the 360 viewer and fall back to the equirectangular projection (or is it already a hidden feature?). I know that I could tinker with the exif tags to mislead the viewer, but I'm too lazy ;-)
We could technically do this fairly easily. The problem is I wrote the code to handle other 360 image types in the future, when someone gets around to writing the necessary classes. One of those that this specifically wouldn't work well for is a cubemap. See https://en.wikipedia.org/wiki/Cube_mapping for more information on cube maps (this is what the Microsoft Streetside plugin uses). Most consumer 360 cameras use the equirectangular projection, which is the only 360 image type that JOSM currently supports.
- have the ability to fast switch (a button or a keyboard shortcut) between 360 and equirectangular projection within the internal viewer. Calling the external viewer is slower and less convenient than doing all the work with the internal one.
This would probably be part of the above. We will probably only enable it on a whitelist of 360 projection types.
- visualize both the equirectangular and 360 views at the same time (sort of the equivalent of working with a map and a mini map, applied to images)
This is a fairly big ask. Where would we put it? Could the user move it (they probably would have to, since it may cover up some desired detail)? It shouldn't be too computationally expensive, since it is just a standard image.
Replying to michael.flamm@:
Since this morning, I am not anymore able to see my complete 360° panoramic images. The integrated viewer only displays a "centered" equirectangular projection and I don't find a way to pan to the lateral parts of my images.
As StephaneP said, "[you] can pan with the mouse and a right click." To expound upon his response, this is the same control scheme used for all images in the JOSM image viewer. You can also use the mouse wheel to scroll in/out.
follow-up: 8 comment:6 by , 3 years ago
Thanks for the hints regarding the control schemes of the viewer!
I am now again able to see my entire images.
However, I see two major drawbacks:
1) On my computer, the interaction is rather slow and, as bartosomail pointed out, it now takes a lot more time to zoom in on useful parts of the images.
2) Moreover, the projection degrades the readability of any written signage that is pictured on an image.
For editing purposes, these are very important downsides and I would thankfully welcome to be able to switch back to the previous viewing mode!
follow-up: 9 comment:7 by , 3 years ago
@taylor.smock
Perhaps a big zoom out on the 360 image could help bartosomail. For now the zoom out is fairly limited
follow-up: 14 comment:8 by , 3 years ago
Replying to michael.flamm@…:
Thanks for the hints regarding the control schemes of the viewer!
I am now again able to see my entire images.
However, I see two major drawbacks:
1) On my computer, the interaction is rather slow and, as bartosomail pointed out, it now takes a lot more time to zoom in on useful parts of the images.
This is largely due to the calculations needed for 360 imagery. I've been looking at some methods to speed it up (see JEP 417 for something I want to try, will require Java 18+, assuming it gets out of the incubation stage). Another option is to use something like Apache FastMath (not currently a dependency for JOSM, so we will try to avoid that).
2) Moreover, the projection degrades the readability of any written signage that is pictured on an image.
For editing purposes, these are very important downsides and I would thankfully welcome to be able to switch back to the previous viewing mode!
You might be interested in #21432 (tiling images for better memory usage). Once I get tiling working for traditional images, I'm intending to get it working with 360 images, which is going to require me to redo some of the 360 code.
Replying to StephaneP:
Perhaps a big zoom out on the 360 image could help bartosomail. For now the zoom out is fairly limited
True. Right now, the zoom is limited due to how the 360 viewer works. TBH, it was a port from the Mapillary plugin, which only offered low resolution 360 images (2048x2048 max, IIRC).
follow-up: 10 comment:9 by , 3 years ago
Replying to StephaneP:
@taylor.smock
Perhaps a big zoom out on the 360 image could help bartosomail. For now the zoom out is fairly limited
Yes and no. The viewer for 360 images, when completely zoomed out shows the image arranged in a disc shape. Although all the contents is there, it is hard to identify details which appear rotated. I like much better a rectangular shape, also as the interesting objects tend to be at mid height, the distortion doesn't bother too much.
It's neither a matter of low respnse speed or lack of resolution of the current implementation of the 360 viewer.
follow-up: 12 comment:10 by , 3 years ago
Replying to bartosomail@…:
Replying to StephaneP:
@taylor.smock
Perhaps a big zoom out on the 360 image could help bartosomail. For now the zoom out is fairly limited
Yes and no. The viewer for 360 images, when completely zoomed out shows the image arranged in a disc shape. Although all the contents is there, it is hard to identify details which appear rotated. I like much better a rectangular shape, also as the interesting objects tend to be at mid height, the distortion doesn't bother too much.
It's neither a matter of low respnse speed or lack of resolution of the current implementation of the 360 viewer.
Take a look at the latest Josm release, there is a new button on the image viewer to open an external viewer. I now it's only a workaround, but perhaps it could help you to view the image outside of the 360 viewer.
follow-up: 13 comment:11 by , 3 years ago
Replying to taylor.smock:
Replying to bartosomail@…:
We could technically do this fairly easily. The problem is I wrote the code to handle other 360 image types in the future, when someone gets around to writing the necessary classes. One of those that this specifically wouldn't work well for is a cubemap. See https://en.wikipedia.org/wiki/Cube_mapping for more information on cube maps (this is what the Microsoft Streetside plugin uses). Most consumer 360 cameras use the equirectangular projection, which is the only 360 image type that JOSM currently supports.
- have the ability to fast switch (a button or a keyboard shortcut) between 360 and equirectangular projection within the internal viewer. Calling the external viewer is slower and less convenient than doing all the work with the internal one.
This would probably be part of the above. We will probably only enable it on a whitelist of 360 projection types.
If it's something which is already programmed, no need to rush it. In the meantime I can surely use an old version of JOSM whenever I like to get rid of the 360 viewer capability.
- visualize both the equirectangular and 360 views at the same time (sort of the equivalent of working with a map and a mini map, applied to images)
This is a fairly big ask. Where would we put it? Could the user move it (they probably would have to, since it may cover up some desired detail)? It shouldn't be too computationally expensive, since it is just a standard image.
Yup, I can imagine that. Just forget the request, I was only kind of brainstorming on the issue.
comment:12 by , 3 years ago
Take a look at the latest Josm release, there is a new button on the image viewer to open an external viewer. I now it's only a workaround, but perhaps it could help you to view the image outside of the 360 viewer.
I have seen it. It surely helps. But to fit my workflow it should work the other way round: show the image as a normal one, and invoke an external 360 viewer with the button when need be.
comment:13 by , 3 years ago
Replying to bartosomail@…:
Yup, I can imagine that. Just forget the request, I was only kind of brainstorming on the issue.
Never stop brainstorming. Sometimes we haven't thought of something. Or we thought of it years ago, and forgot about it.
The reason why I called "visualize both the equirectangular and 360 views at the same time" a fairly big ask was due to figuring out how to make it make sense and usable. Technically, creating an overlay should be easy. It is just figuring out where to put it visually without covering up other stuff.
follow-up: 15 comment:14 by , 3 years ago
Replying to taylor.smock:
This is largely due to the calculations needed for 360 imagery. I've been looking at some methods to speed it up (see JEP 417 for something I want to try, will require Java 18+, assuming it gets out of the incubation stage). Another option is to use something like Apache FastMath (not currently a dependency for JOSM, so we will try to avoid that).
Indeed, no external library for something being (soon) shipped by the JDK. I didn't notice this new API, this is good news! We can add runtime-support for it, by accessing the API via reflection. FYI the new mac/win installers ship with Java 17 so we can target this version of Java until 18 is released.
follow-up: 16 comment:15 by , 3 years ago
Replying to Don-vip:
Indeed, no external library for something being (soon) shipped by the JDK. I didn't notice this new API, this is good news! We can add runtime-support for it, by accessing the API via reflection. FYI the new mac/win installers ship with Java 17 so we can target this version of Java until 18 is released.
I was actually thinking of using multi-release jar files for this. I think it will work on Java 8, but I'm not 100% certain. Also, I don't see an easy way to build multi-release jar files with ant
. I also think we may need to explicitly make the incubating API available at JVM start. But it is on my list of things to check out.
follow-up: 17 comment:16 by , 3 years ago
Replying to taylor.smock:
I was actually thinking of using multi-release jar files for this. I think it will work on Java 8, but I'm not 100% certain. Also, I don't see an easy way to build multi-release jar files with
ant
. I also think we may need to explicitly make the incubating API available at JVM start. But it is on my list of things to check out.
Forgot about it, yes it's cleaner. It's possible with Ant, see the official example.
comment:17 by , 3 years ago
Replying to Don-vip:
Forgot about it, yes it's cleaner. It's possible with Ant, see the official example.
I've opened a ticket for adding MRJAR/JEP 238 support to build.xml. See #21510.
comment:19 by , 3 years ago
Milestone: | 21.12 → 22.01 |
---|
comment:21 by , 3 years ago
Milestone: | 22.02 → 22.03 |
---|
comment:22 by , 3 years ago
Milestone: | 22.03 → 22.04 |
---|
comment:24 by , 3 years ago
Milestone: | 22.05 → 22.06 |
---|
comment:25 by , 3 years ago
Milestone: | 22.06 → 22.07 |
---|
comment:26 by , 2 years ago
Milestone: | 22.07 → 22.08 |
---|
comment:27 by , 2 years ago
Milestone: | 22.08 → 22.09 |
---|
comment:28 by , 2 years ago
Milestone: | 22.09 → 22.10 |
---|
comment:29 by , 2 years ago
Milestone: | 22.10 → 22.11 |
---|
Since this morning, I am not anymore able to see my complete 360° panoramic images. The integrated viewer only displays a "centered" equirectangular projection and I don't find a way to pan to the lateral parts of my images.
Is this problem linked to this ticket?