Easy and efficient rendering of very large geospatial data in the browser.
deckglgeoarrow provides functionality to efficiently visualise
potentially very large geospatial data as Deck.gl
layers on top of a
maplibre/mapbox
map created with package mapgl.
For very quick and efficient data transfer from R memory to the browser,
geoarrowWidget is used.
Layer creation is done in ‘JavaScript’ using
geoarrow/deck.gl-geoarrow
(see Features
section for details on how and why layer creation is efficient).
Currently, (MULTI)POINT, (MULTI)LINESTRING and (MULTI)POLYGON
features are supported by the following layer functions:
addGeoarrowScatterplotLayerfor point dataaddGeoarrowPathLayerfor linestring dataaddGeoarrowPolygonLayerfor polygon data
Support for other layers, such as discrete global grid layers (S2,
A5, H3), origin-destination layers (Arc, trips) and
point-cloud layers, among others, will follow.
Spatial classes from the following R packages are supported (via data
argument):
The following local or remotely hosted files types are supported (via
file/url argument):
Note, that due to a
restriction
in the upstream JavaScript dependency, only files with native GeoArrow
geometry encoding are supported. WKB encoded geometries will not
render!
In addition, nanoarrow
array_streams (as files) are supported.
The development version of deckglgeoarrow can be installed from GitHub with:
# install.packages("pak")
pak::pak("r-spatial/deckglgeoarrow")To showcase what the package can do, consider this example.
Here, we visualise
- 1M random points with random sizes and colors +
- ~11k polygons colored by river basin +
- ~155k lines colored and sized according to their Strahler number
in one map.
Here’s how quickly this renders:
More examples can be found here
This project has been realized with financial support from the
