facebook / Rapid

The OpenStreetMap editor driven by open data, AI, and supercharged features
https://rapideditor.org
ISC License
518 stars 91 forks source link

Request for a pop-out of street-level imagery #1547

Open brian-luff opened 2 months ago

brian-luff commented 2 months ago

Description

It would be nice if the street-level viewer had a pop-out window option available. That would make it possible to move it out of the way while editing in the main panel.

Screenshots

image

Version

2.3.2

What browser are you seeing the problem on? What version are you running?

Firefox v130.0

The OS you're using

mac

Steps to reproduce

  1. Select street-level view
  2. No pop-out view available

The browser URL at the time you encountered the bug

https://rapideditor.org/edit#map=5.22/37.173/-105.530&background=Bing&datasets=fbRoads,msBuildings&disable_features=boundaries

The auto-detected useragent string for your browser (leave blank if you're manually filling this form out)

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0

bhousel commented 2 months ago

I agree this is a good suggestion - it's always bothered me that some of our pop up controls can't be resized or moved around and tend to cover up the map.

bhousel commented 1 week ago

Some notes on this - I've been taking a look through our user interface code to try to modernize things a bit. We have a bunch of components that are supposed to float over the map (minimap, 3dmap, photo viewer, and the info cards), and it would be great to improve how they work, and allow the user to better resize and customize things. (This relates to #1593 too.)

I'm looking into interact.js as a way to simplify the code here. There are some other alternatives, but they don't all allow both dragging and resizing. There are also more modern component libraries, but we're not using a framework like React (yet?) which would make this easier.

Making any of these controls into actual popups in a separate window is possible, but difficult. Each window is basically its own separate application and we'd need to pass messages between Rapid and the child window to have them work together.