/CellsOverMap

Make an HTML5 display of datapoints on a planar map (square grid of cells)

Primary LanguageJavaScriptOtherNOASSERTION

Cells over Map (CelloMap) uses HTML5 (HTML) to present a planar
mapping of datapoints in rectangular cells laid over the map.

See an example at <https://jpiitula.github.io/CellsOverMap/>.

Input is the dataset as a single JSON array, in UTF-8, in which each
datapoint is an array containing four (4) items:

- a label, a string which CelloMap displays in the corresponding cell;

- two floating point literals, which CelloMap maps to a row and a
  column of the cell grid;

- a mapping of arbitrary key-strings to value-strings, which CelloMap
  can display for a selected point in a separate info box.

Output is a single HTML page that contains the dataset together with
styling and behaviour in CSS and JavaScript:

- the position of the grid of cells on the map can be adjusted, with
  points outside the grid always clamped in;

- the number of rows and columns (granularity) can be adjusted;

- metadata of two selected points at a time can be displayed.

The transformation of the dataset into the HTML page is carried out by
a Python script that basically checks some properties of the input,
computes the overall coordinates of the data, and fills a template.

Two improvements are in the mind of the developer: simple random
sampling of the data (in the map or in the cells) to reduce clutter,
and maybe highlighting the labels of the points that are clamped in
from outside the grid.

CelloMap was originally written from scratch by Jussi Piitulainen
(jpiitula) in April 2017, out of general interest and for use in a
certain computational platform.

CelloMap is made available as Free Software, with the Python script
under GPL 3.0 or later (GPLv3+), and the JavaScript code that is
embedded in the result under the Lesser GPL 3.0 or later (LGPLv3+).
These licenses do not cover the dataset that is also embedded in the
resulting HTML. Note that the covered script is embedded in the HTML
as source code, which makes it particularly easy to provide the source
code to any recipient of the page: they have it.