KeplerGL.jl
The package provides functions for displaying and exporting interactive maps through the Javascript package Kepler.gl, which is being loaded in Julia through Blink.jl.
The version of Kepler.gl that is currently used is 2.5.5.
Table of Contents
Installation
To install the package, type in the Julia REPL
] add KeplerGL
This also installs KeplerGLBase
and other dependencies.
Structure
The code is separated into two packages: KeplerGLBase.jl contains the code that generates the map JSONs and HTML. KeplerGL.jl contains the code to display the HTML in a Blink.jl window. That way other front ends (like Genie/Stipple, see here) do not need to load the heavier dependencies.
Support policy
The development of the package is done in the author's spare time. I try to fix bugs as I have time and as they are reported on the Github issue tracker. The package isn't particularly complicated, and I'm happy to review and merge pull requests for both bug fixes and new features. Please don't email me about the package.
Package philosophy
There are several excellent options for plotting maps using Julia (including GeoMakie.jl and Tyler.jl).
The main motivation behind creating this package is to tap into Kepler.gl's ease of use and bring it to scientific applications. Kepler.gl is excellent for creating beautiful maps interactively, but the resulting maps are difficult to integrate into a scientific workflow, which requires the maps to be created from code in order to be reproducible. This package aims to fill this gap.
Some principles I had in mind when creating the package:
- Provide code interfaces for the creation of map layers with all options that Kepler.gl itself supports.
- The way maps are stored internally follows the same structure as Kepler.gl's JSON format, this makes for easy saving and loading.
- The keyword arguments in the layer functions should be named as close as possible to the layer options that Kepler.gl uses internally, except when ambiguous.
Roadmap
- Filters, tooltips, legends, base maps
- More and better data import options
- More and better map export options
- Update to Kepler.gl 3.0
Things that could be added, but are not currently planned, are:
- Compatibility with other WebIO backends
- Compatibility with GeoInterface.jl
- Compatibility with different tile providers
- Functions to generate KeplerGL.jl map creation code from an open map window