Package 'leafsync'

Title: Small Multiples for Leaflet Web Maps
Description: Create small multiples of several leaflet web maps with (optional) synchronised panning and zooming control. When syncing is enabled all maps respond to mouse actions on one map. This allows side-by-side comparisons of different attributes of the same geometries. Syncing can be adjusted so that any combination of maps can be synchronised.
Authors: Tim Appelhans [aut, cre], Kenton Russell [aut], Christoph Stepper [ctb], Jan Pieter Wagmeester [ctb] (Leaflet.Sync plugin)
Maintainer: Tim Appelhans <[email protected]>
License: MIT + file LICENSE
Version: 0.1.1.9002
Built: 2024-12-17 02:55:45 UTC
Source: https://github.com/r-spatial/leafsync

Help Index


View two or more (possibly synchronised) mapview or leaflet maps

Description

This function produces a lattice like view of two or more maps. It is possible to sync any combination of panels or all or none. For synchronising all panels it is best to use the provided convenience function sync.

Usage

latticeView(
  ...,
  ncol = 2,
  full.height = TRUE,
  sync = "none",
  sync.cursor = FALSE,
  no.initial.sync = TRUE,
  between = list(x = "2px", y = "2px")
)

latticeview(...)

sync(
  ...,
  ncol = 2,
  full.height = TRUE,
  sync = "all",
  sync.cursor = TRUE,
  no.initial.sync = TRUE,
  between = list(x = "2px", y = "2px")
)

Arguments

...

any number of mapview or leaflet objects or a list thereof

ncol

how many columns should be plotted

full.height

logical; should the produced lattice view be scaled to the complete height of the viewer (or browser); default to TRUE. If FALSE, the height of each panel falls back to the default sizing policy height of leaflet (400px).

sync

whether to synchronise zoom and pan for certain elements. Possible values are "all" (default) to sync all maps, "none" to disable synchronisation or a list of panel numbers, e.g. list(c(1, 3), c(2, 4)) will synchronise panels 1 & 3 and panels 2 & 4. Panels are drawn from top right to bottom left.

sync.cursor

whether to show cursor position in synced panels (default TRUE).

no.initial.sync

whether to sync the initial view (default TRUE).

between

a named list with components "x" and "y" specifying the space between panels in pixels . "x" refers to CSS property "margin-right", "y" refers to CSS property "margin-top". Default is 'list(x = "2px", y = "2px")'.

Functions

  • latticeview: alias for ease of typing

  • sync: convenience function for syncing maps

Examples

if (interactive()) {
library(leaflet)
library(leafsync)

m1 = leaflet() %>%
  addTiles() %>%
  addPolygons(data = gadmCHE)

m2 = leaflet() %>%
  addProviderTiles("Esri.WorldImagery") %>%
  addCircleMarkers(data = breweries91,
                   color = "black",
                   opacity = 0.9,
                   fillColor = "white",
                   fillOpacity = 0.9)

# synced
sync(m1, m2)
sync(m1, m2, no.initial.sync = TRUE)

# not synced
latticeview(m1, m2)
latticeview(m1, m2, ncol = 1)
}