digirati-co-uk / iiif-canvas-panel

Investigation into component granularity
https://iiif-canvas-panel.netlify.app/
MIT License
9 stars 6 forks source link

Mini-map / Viewport Navigator control #88

Open tomcrane opened 2 years ago

tomcrane commented 2 years ago

image

Users of CP are going to need this functionality.

Is it part of CP? Is it a separate control layered on top?

tomcrane commented 2 years ago

(from notes)

@stephenwf : modelling perspective: a second canvas panel in a way - CP wouldn’t give the mini viewer straight out of the box but instead another viewer... Few lines of Vue and hook into the viewer - less about providing the feature but provide the API’s

Good to have bundles where familiar UIs are there , thinking about different ways how to compose the views important

stephenwf commented 2 years ago

Yes, although we could support it out of the box. It is different to displaying 2 canvases in a 2-up view, instead of painting something else on the same Atlas, you are rendering that same "world" using a different renderer.

So with the normal viewer, the images that are shown on screen are driven by the position of the viewport. For the mini-map it's driven by the same world, but the images rendered don't change position, just the red box. Atlas has a "composite" renderer that is used for rendering HTML-based annotations along-side an HTML canvas. That is likely what would be used internally to drive another rendering surface.

The mechanics are covered in #44 and a wire-frame version has been started here: https://github.com/atlas-viewer/atlas/blob/master/src/modules/debug-renderer/debug-renderer.ts

A smarter implementation, when viewing lots of canvases may change the mini-map depending on how far you have zoomed in. So maybe it would punch in when you're looking at a region on a canvas, and then punch back out when you are looking at the thumbnails.

tomcrane commented 2 years ago

Current Docs describe Navigator:


Navigator

:::danger

This is currently unstable

:::

Canvas panel has an optional viewport navigator:

<canvas-panel
   manifest-id="https://iiif.wellcomecollection.org/presentation/b14658197"
   canvas-id="https://iiif.wellcomecollection.org/presentation/b14658197/canvases/b14658197.jp2"
   enable-navigator="true"
/>

The navigator mini-window will also show a miniature view of the annotations on the canvas.

:::info

This is an initial implementation and will be developed further.

:::


We will leave this out for now but revisit as an MVP:

A full-featured navigator where the mini-window is a fully rendered canvas too is out of scope for now.