TerriaJS / terriajs

A library for building rich, web-based geospatial data platforms.
https://terria.io
Apache License 2.0
1.18k stars 362 forks source link

Theme-ing: Enable different branded views / curated catalogues of the same TerriaMap #4661

Closed AnaBelgun closed 4 weeks ago

AnaBelgun commented 4 years ago

Background:

Action:

soyarsauce commented 4 years ago

@soyarsauce & @vicborgy to discuss

soyarsauce commented 4 years ago

Related https://github.com/TerriaJS/terriajs/issues/4687

AnaBelgun commented 4 years ago

Update 6 Oct 2020:

AnaBelgun commented 4 years ago

USGS example: https://maps.usgs.gov/padus/

AnaBelgun commented 4 years ago

Update 25 Oct:

soyarsauce commented 4 years ago

@soyarsauce to either of,

soyarsauce commented 4 years ago

~team~ NFS vote: prototype

soyarsauce commented 4 years ago

(maybe) - NFS vote above

soyarsauce commented 4 years ago

Pending Crispy's thoughts too

soyarsauce commented 3 years ago

@soyarsauce has whipped up a really quick prototype of this idea to demonstrate the idea: see PR for more details https://github.com/TerriaJS/terriajs/pull/4996

AnaBelgun commented 3 years ago

Link to PoC demo video

AnaBelgun commented 3 years ago

@philipgrimmett - This ticket should be in design thinking phase

philipgrimmett commented 3 years ago

I think this issue covers two seperate stories:

PacificMap:

As a map owner I want to provide a customised experience for users of sub-branded maps so they can easily find data that is relevant to their needs

DroughtMap:

As a policy researcher I want to access the most relevant / frequently used datasets for my work in one place so I don't have to waste time searching for them individually.

Re. pacificMap: Unless there is a requirement for users to navigate between parent/child maps, we can probably just think of each map as a standalone instance and leave the brand architecture to clients.

Re. droughtmap: the number of datasets proposed for each theme (Research/Policy, Academics etc.) is fairly small at this stage, so we might be able to support their use case with curated 'collections' (adding multiple related/relevant datasets with one click). Concept sketch attached below:

terria-featuredData-1

In some instances it might be fine to enable all datasets from a collection once they are added to the workbench (eg. one regional dataset underneath five relatively sparse point or line datasets) but in most cases it would be better to disable all but the top dataset by default to avoid information overload.

There will probably be some behavioural nuance required for removing and re-adding collections. I'm happy to walk through options with the team once we have a working prototype.

Ping @AnaBelgun for thoughts, feedback, clarification from client meetings ect.

philipgrimmett commented 3 years ago

Concept for simple sub-maps (different brand bar, reconfigured data catalogue): https://invis.io/CG104R6NYUPF#/444175901_pacificMap

AnaBelgun commented 3 years ago

Latest discussions re: PacificMap:

philipgrimmett commented 3 years ago

Rough concept for navigating between parent and sibling maps, eg. pacificMap > pacificMap Fiji > PacificMap Kiribati https://invis.io/SN10JE9BPT74#/447866910_PacificMap_Countries_-_1

AnaBelgun commented 3 years ago

Next step:

AnaBelgun commented 3 years ago

14/04/2021 Refinement: Functionality expectation (v1.0)

Not in scope for v1.0:

Options discussed: 1) Back end - combination of magda and saas implementation; server receives request for url ... 2) Front end - based on full single page load and routing to have different map configurations (and be able to change them)

Nest steps:

zoran995 commented 3 years ago

I would push as much as possible towards this approach (if I understood it correctly)

Options discussed:

  1. Back end - combination of magda and saas implementation; server receives request for url ...
  2. Front end - based on full single page load and routing to have different map configurations (and be able to change them)

From what I got, this is in basic terms a true multitenancy support on terriajs side, to have different config and init files for different URL paths on a single domain the basic structure (folder based) could be

The base config could be used as the foundation for all other implementations i.e. holding keys or other parameters that will be used with each app. When users access the application we would have to determine which app is accessed and present it with an appropriate configuration (combine app config with base config). With this approach, an administrator could easily create new versions of applications without putting additional stress on the server infrastructure