test_that("geom_spatvector works as geom_sf", {
extfile <- system.file("extdata/cyl.gpkg", package = "tidyterra")
cyl <- terra::vect(extfile)
build_terra <- ggplot2::ggplot() +
geom_spatvector(data = cyl, aes(fill = iso2))
cyl_sf <- sf::st_as_sf(cyl)
build_sf <- ggplot2::ggplot() +
ggplot2::geom_sf(data = cyl_sf, aes(fill = iso2))
layer_terra <- ggplot2::ggplot_build(build_terra)$data[[1]]
layer_sf <- ggplot2::ggplot_build(build_sf)$data[[1]]
expect_identical(layer_terra, layer_sf)
expect_true(
all(layer_terra$geometry == layer_sf$geometry)
)
# With projs
build_terra_proj <- build_terra + ggplot2::coord_sf(crs = 3857)
build_sf_proj <- build_sf + ggplot2::coord_sf(crs = 3857)
layer_terra2 <- ggplot2::ggplot_build(build_terra_proj)$data[[1]]
layer_sf2 <- ggplot2::ggplot_build(build_sf_proj)$data[[1]]
expect_identical(layer_terra2, layer_sf2)
expect_true(
all(layer_terra2$geometry == layer_sf2$geometry)
)
expect_false(any(layer_terra2$geometry == layer_terra$geometry))
# Fortify
build_fort <- ggplot2::ggplot(cyl) +
geom_spatvector(aes(fill = iso2))
layer_fort <- ggplot2::ggplot_build(build_fort)$data[[1]]
expect_identical(layer_terra, layer_fort)
build_fort_proj <- build_fort + ggplot2::coord_sf(crs = 3857)
layer_fort2 <- ggplot2::ggplot_build(build_fort_proj)$data[[1]]
expect_identical(layer_terra2, layer_fort2)
})
test_that("geom_spatvector_text works as geom_sf", {
extfile <- system.file("extdata/cyl.gpkg", package = "tidyterra")
cyl <- terra::vect(extfile)
build_terra <- ggplot2::ggplot() +
geom_spatvector_text(data = cyl, aes(label = iso2))
cyl_sf <- sf::st_as_sf(cyl)
build_sf <- ggplot2::ggplot() +
ggplot2::geom_sf_text(data = cyl_sf, aes(label = iso2))
layer_terra <- ggplot2::ggplot_build(build_terra)$data[[1]]
layer_sf <- ggplot2::ggplot_build(build_sf)$data[[1]]
expect_identical(layer_terra, layer_sf)
expect_true(
all(layer_terra$geometry == layer_sf$geometry)
)
# With projs
build_terra_proj <- build_terra + ggplot2::coord_sf(crs = 3857)
build_sf_proj <- build_sf + ggplot2::coord_sf(crs = 3857)
layer_terra2 <- ggplot2::ggplot_build(build_terra_proj)$data[[1]]
layer_sf2 <- ggplot2::ggplot_build(build_sf_proj)$data[[1]]
expect_identical(layer_terra2, layer_sf2)
expect_true(
all(layer_terra2$geometry == layer_sf2$geometry)
)
expect_false(any(layer_terra2$geometry == layer_terra$geometry))
})
test_that("geom_spatvector_label works as geom_sf", {
extfile <- system.file("extdata/cyl.gpkg", package = "tidyterra")
cyl <- terra::vect(extfile)
build_terra <- ggplot2::ggplot() +
geom_spatvector_label(data = cyl, aes(label = iso2))
cyl_sf <- sf::st_as_sf(cyl)
build_sf <- ggplot2::ggplot() +
ggplot2::geom_sf_label(data = cyl_sf, aes(label = iso2))
layer_terra <- ggplot2::ggplot_build(build_terra)$data[[1]]
layer_sf <- ggplot2::ggplot_build(build_sf)$data[[1]]
expect_identical(layer_terra, layer_sf)
expect_true(
all(layer_terra$geometry == layer_sf$geometry)
)
# With projs
build_terra_proj <- build_terra + ggplot2::coord_sf(crs = 3857)
build_sf_proj <- build_sf + ggplot2::coord_sf(crs = 3857)
layer_terra2 <- ggplot2::ggplot_build(build_terra_proj)$data[[1]]
layer_sf2 <- ggplot2::ggplot_build(build_sf_proj)$data[[1]]
expect_identical(layer_terra2, layer_sf2)
expect_true(
all(layer_terra2$geometry == layer_sf2$geometry)
)
expect_false(any(layer_terra2$geometry == layer_terra$geometry))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.