Optional XGeoRTR Bridge

Boundary

This vignette demonstrates an optional downstream bridge from XGeoRTR into ggWebGL.

The ownership split stays fixed:

No XGeoRTR code is modified here. The bridge lives entirely inside the ggWebGL example layer.

The representative and multiscale scenes show how optional XGeoRTR-style renderer inputs can combine coloured explanation-state points with sparse contribution-direction arrows. Those arrows are true ggwebgl_layer_vectors() primitives rather than line segments plus decorative anchors, so the vignette exercises the same renderer-owned vector path that downstream packages can target.

Optional Dependency

XGeoRTR is a suggested package for ggWebGL. When it is unavailable, the package still builds and this vignette degrades to documentation-only mode.

if (!bridge_available) {
  cat("XGeoRTR is unavailable, so the live bridge widgets are skipped in this vignette.\n")
} else {
  cat("XGeoRTR bridge widgets are available.\n")
}
#> XGeoRTR bridge widgets are available.

Representative Scene

This scene demonstrates class-coloured explanation points with sparse vector arrows summarising local contribution direction.

if (!bridge_available) {
  cat("Representative widget skipped.\n")
} else {
  bridge_widgets$representative
}

Multiscale Scene

This two-panel view keeps the same vector grammar while contrasting the global embedding with a local explanation panel whose viewport is the exact data-coordinate zoom of the rectangle marked in the global panel.

if (!bridge_available) {
  cat("Multiscale widget skipped.\n")
} else {
  bridge_widgets$multiscale
}

Attribution Scene

if (!bridge_available) {
  cat("Attribution widget skipped.\n")
} else {
  bridge_widgets$attribution
}

Structure Scene

if (!bridge_available) {
  cat("Structure widget skipped.\n")
} else {
  bridge_widgets$structure
}

Regeneration

The example source for these widgets lives at:

source(system.file("examples", "htmlwidget", "xgeortr-bridge-gallery.R", package = "ggWebGL"))