Modify

Opened 3 years ago

Last modified 8 months ago

#21498 new enhancement

Add an option to switch between 360 viewer and equirectangular viewer when a 360 image is visualized

Reported by: bartosomail@… 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 bartosomail@…, 3 years ago

Cc: bartosomail@… added

comment:2 by Don-vip, 3 years ago

Cc: StephaneP taylor.smock added; bartosomail@… removed
Milestone: 21.11
Reporter: changed from anonymous to bartosomail@…

comment:3 by michael.flamm@…, 3 years ago

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?

in reply to:  3 comment:4 by StephaneP, 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.

in reply to:  description ; comment:5 by taylor.smock, 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.

comment:6 by michael.flamm@…, 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!

comment:7 by StephaneP, 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

in reply to:  6 ; comment:8 by taylor.smock, 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).

in reply to:  7 ; comment:9 by bartosomail@…, 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.

in reply to:  9 ; comment:10 by StephaneP, 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.

in reply to:  5 ; comment:11 by bartosomail@…, 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.

in reply to:  10 comment:12 by bartosomail@…, 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.

in reply to:  11 comment:13 by taylor.smock, 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.

in reply to:  8 ; comment:14 by Don-vip, 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.

in reply to:  14 ; comment:15 by taylor.smock, 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.

in reply to:  15 ; comment:16 by Don-vip, 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.

in reply to:  16 comment:17 by taylor.smock, 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:18 by Don-vip, 3 years ago

Milestone: 21.1121.12

Milestone renamed

comment:19 by Don-vip, 3 years ago

Milestone: 21.1222.01

comment:20 by stoecker, 2 years ago

Milestone: 22.0122.02

Milestone renamed

comment:21 by Don-vip, 2 years ago

Milestone: 22.0222.03

comment:22 by stoecker, 2 years ago

Milestone: 22.0322.04

comment:23 by stoecker, 2 years ago

Milestone: 22.0422.05

Milestone renamed

comment:24 by stoecker, 2 years ago

Milestone: 22.0522.06

comment:25 by stoecker, 2 years ago

Milestone: 22.0622.07

comment:26 by taylor.smock, 2 years ago

Milestone: 22.0722.08

comment:27 by taylor.smock, 23 months ago

Milestone: 22.0822.09

comment:28 by taylor.smock, 22 months ago

Milestone: 22.0922.10

comment:29 by taylor.smock, 21 months ago

Milestone: 22.1022.11

comment:30 by taylor.smock, 20 months ago

Milestone: 22.1122.12

Milestone renamed

comment:31 by taylor.smock, 19 months ago

Milestone: 22.1223.01

Ticket retargeted after milestone closed

comment:32 by taylor.smock, 18 months ago

Milestone: 23.0123.02

Ticket retargeted after milestone closed

comment:33 by taylor.smock, 17 months ago

Milestone: 23.0223.03

Ticket retargeted after milestone closed

comment:34 by taylor.smock, 16 months ago

Milestone: 23.0323.04

Ticket retargeted after milestone closed

comment:35 by taylor.smock, 15 months ago

Milestone: 23.0423.05

Ticket retargeted after milestone closed

comment:36 by taylor.smock, 14 months ago

Milestone: 23.0523.06

Ticket retargeted after milestone closed

comment:37 by taylor.smock, 13 months ago

Milestone: 23.0623.07

Ticket retargeted after milestone closed

comment:38 by taylor.smock, 12 months ago

Milestone: 23.0723.08

Ticket retargeted after milestone closed

comment:39 by taylor.smock, 11 months ago

Milestone: 23.0823.09

Ticket retargeted after milestone closed

comment:40 by taylor.smock, 10 months ago

Milestone: 23.0923.10

Ticket retargeted after milestone deleted

comment:41 by taylor.smock, 9 months ago

Milestone: 23.1023.11

Ticket retargeted after milestone deleted

comment:42 by taylor.smock, 8 months ago

Milestone: 23.11

Ticket retargeted after milestone closed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user.
Next status will be 'needinfo'. The owner will be changed from team to bartosomail@….
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from team to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.