Skip to content

GNIP 46 D3.js Visualisations

ICT4EO Research Group edited this page Apr 21, 2014 · 2 revisions

GNIP 46: Generic Data Visualisations

Overview

Currently adding any form of data visualisation requires a high level of customisation. This means that although many users and developers have the same basic needs of leveraging Leaflet.js and D3.js, this needs to be coded from the ground up each time.

This GNIP proposed an internal plugin structure to augment Leaflet and D3 into the very core of Geonode. Allowing for charts to be visualised using an inituitive interface selected from the layers already present in Geonode. This should remove a lot of customisation that could be quite complicated for administrators and add much needed data visulaisation capability to Geonode.

Proposed By

Mark Iliffe, Mateo Nastasi and Ben Wyss

Assigned To Release

2.2

This was discussed as a component of the 2.1 release. However, in speaking with Ariel Nuñez, placing this in 2.1 would miss the release deadline and now allow for community engagement on the GNIP.

State

This came out of a series of conversations between Mark Iliffe and Benjamin Wyss at the Geonode Developers Workshop at the World Food Programme in Rome in April 2014. We believe that this should inside the core Geonode codebase and that any other more customised plugins of this type should reside outside the geonode code base. In this case these plugins should be maintained by the individual who creates that plugin.

Effectively, this would mean there would be a basic set of D3.js visulaisations that are deployable from within the Geonode codebase and documentation to show how to further create and integrate more complex custom visualisations.

Mike Bostock has already created a framework that follows this methodology: http://bost.ocks.org/mike/chart/

We believe that a few basic charts would be managed by the generic visualiser, like bar, line and pie charts, we consider these to be the basic charts and welcome community feedback on the issue.

We envisage that the code to create an chart would be composed of an enumerating function that calls different child functions, depedent on the chart required:

function chart(charttype, geojson, width, height)
{
    enumerator based on the charttype

}

function line(geojson, width, height)
{

    d3.js code

}

Post this, we suggest that using the Leaflet library to create a (geo)infographic platform, however, this may be quite out of scope for this GNIP and something that could be considered as part of the CKAN-Geonode integration.

Issues

Testing

Alternatives

Feedback

Voting

+1 from Derek & Bolelang (ICT4EO, CSIR)

Clone this wiki locally