-
Notifications
You must be signed in to change notification settings - Fork 9
Gridviz multi scale visualisation
This page describes the multi-scale visualisation mechanism of Gridviz.
For an efficient exploration across scales, the application should show suitable data for each zoom level. It should offer the possibility to define different gridded datasets (and styles) depending on the zoom level. In general, higher resolution grids should be shown for larger scales - and larger resolution grids should be shown for small scales.
A good indicator to determine if a gridded dataset is suitable for a zoom level is its resolution compared to screen pixel size:
- If the grid cells are smaller than the screen pixels, then a lower resolution grid should be shown instead.
- If the grid cells are too large (more than 50 screen pixels for example), then a higher resolution grid should be shown (if available of course). In such case, it gets also possible to show more information for each grid cell, such as for example a composition or a combination of several values.
For multi-scale visualisations, two approaches are possible: Discrete and continuous zooming.
A predefined set of zoom levels are defined. The application shows only these zoom levels (with possibly some smooth transition when changing them). For each zoom level, the gridded dataset to show is defined, possibly different for each zoom level.
In practice, a gridded dataset could be defined that way:
myApp.gridData([value], [zoomLevel])
where zoomLevel
is the zoom level when to show the data.
This approach is adopted by most of the web mapping systems, based on the web mercator projection, 20 zoom levels and a factor 2 between consecutive zoom levels. See here.
The scale dimension is continuous: The application can show an infinite number of zoom levels. The scale line is decomposed into discrete intervals with a suitable gridded dataset defined for each of them.
In practice, a gridded dataset could be defined that way:
myApp.gridData([value], [zoomMin], [zoomMax])
where [zoomMin
, zoomMax
] is the zoom interval when to show the data.
For gridviz, continuous zooming seems to be the most suitable approach. TODO: need to discuss/justify the reasons ?