Render a 2D floating overlay over the map.
Note: Multiple layers with transparency can cause rendering issues in rgl.
render_floating_overlay(
overlay = NULL,
altitude = NULL,
heightmap = NULL,
zscale = 1,
alpha = 1,
baseshape = "rectangle",
remove_na = TRUE,
reorient = TRUE,
clear_layers = FALSE,
horizontal_offset = c(0, 0),
...
)Overlay (4D RGBA array) to be rendered on the 3D map.
Altitude to place the overlay.
The underlying surface. A two-dimensional matrix, where each entry in the matrix is the elevation at that point.
Default 1. The ratio between the x and y spacing (which are assumed to be equal) and the z axis. For example, if the elevation levels are in units
of 1 meter and the grid values are separated by 10 meters, zscale would be 10. Adjust the zscale down to exaggerate elevation features.
Default 1. Multiplies the layer's transparency by this factor. 0 is completely transparent.
Default rectangle. Shape of the overlay. Options are c("rectangle", "circle", "hex").
Default TRUE. Whether to make the overlay transparent above empty spaces (represented by NA values) in the underlying elevation matrix.
Default TRUE. Whether to reorient the image array to match the 3D plot.
Default FALSE. Clears all existing floating layers on the visualization.
Default c(0,0). Distance (in 3D space) to offset the floating offset in the x/y directions.
Additional arguments to pass to rgl::triangles3d().
Adds a 3D floating layer to the map. No return value.
if(run_documentation()) {
#Render the road network as a floating overlay layer, along with a label annotation and a floating
#point annotation
if(all(length(find.package("sf", quiet = TRUE)) > 0,
length(find.package("magick", quiet = TRUE)) > 0)) {
monterey = c(-121.892933,36.603053)
monterey_city = sf::st_sfc(sf::st_point(monterey))
#Generate Overlays
road_overlay = generate_line_overlay(monterey_roads_sf, attr(montereybay,"extent"),
heightmap = montereybay)
point_overlay = generate_point_overlay(monterey_city, color="red", size=12,
attr(montereybay,"extent"), heightmap = montereybay)
#Create 3D plot (water transparency set to 1 because multiple transparency layers can interfere)
montereybay |>
height_shade() |>
add_shadow(ray_shade(montereybay,zscale=50),0.3) |>
plot_3d(montereybay, water = T, wateralpha = 1, windowsize = 800, watercolor = "lightblue")
render_camera(theta=-55,phi=45,zoom=0.8)
#Render label
render_label(montereybay, lat = monterey[2], long = monterey[1], altitude = 9900,
extent = attr(montereybay, "extent"),
zscale = 50, text = "Monterey", textcolor = "black", linecolor="darkred")
#Render Floating Overlays
render_floating_overlay(road_overlay, altitude = 10000,zscale = 50)
render_floating_overlay(point_overlay, altitude = 100,zscale = 50)
render_snapshot()
}
}
#> `montereybay` dataset used with no zscale--setting `zscale=50`. For a realistic depiction, raise `zscale` to 200.