R Under development (unstable) (2024-09-06 r87103 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > if (require(maps, quietly = TRUE)) { + m = map('usa', plot = FALSE, fill = TRUE) + suppressPackageStartupMessages(library(sf)) + m0 <- st_as_sfc(m) + m <- st_as_sf(m) + + laea = st_crs("+proj=laea +lat_0=30 +lon_0=-95") # Lambert equal area + m <- st_transform(st_as_sf(m), laea) + + bb = st_bbox(m) + bbox = st_linestring(rbind(c( bb[1],bb[2]),c( bb[3],bb[2]),c( bb[3],bb[4]),c( bb[1],bb[4]),c( bb[1],bb[2]))) + + g = st_graticule(m) + plot(m, xlim = 1.2 * c(-2450853.4, 2186391.9)) + plot(g[1], add = TRUE, col = 'grey') + plot(bbox, add = TRUE) + points(g$x_start, g$y_start, col = 'red') + points(g$x_end, g$y_end, col = 'blue') + + invisible(lapply(seq_len(nrow(g)), function(i) { + if (g$type[i] == "N" && g$x_start[i] - min(g$x_start) < 1000) + text(g$x_start[i], g$y_start[i], labels = parse(text = g$degree_label[i]), + srt = g$angle_start[i], pos = 2, cex = .7) + if (g$type[i] == "E" && g$y_start[i] - min(g$y_start) < 1000) + text(g$x_start[i], g$y_start[i], labels = parse(text = g$degree_label[i]), + srt = g$angle_start[i] - 90, pos = 1, cex = .7) + if (g$type[i] == "N" && g$x_end[i] - max(g$x_end) > -1000) + text(g$x_end[i], g$y_end[i], labels = parse(text = g$degree_label[i]), + srt = g$angle_end[i], pos = 4, cex = .7) + if (g$type[i] == "E" && g$y_end[i] - max(g$y_end) > -1000) + text(g$x_end[i], g$y_end[i], labels = parse(text = g$degree_label[i]), + srt = g$angle_end[i] - 90, pos = 3, cex = .7) + })) + + plot(m, graticule = st_crs(4326)) + nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE) + # options(warn=2) + g = st_graticule(nc, datum = st_crs(nc)) + #g = st_graticule(nc) + + plot(nc[1], graticule = st_crs(nc)) + + plot(nc[1], graticule = st_crs(nc), axes = TRUE) + + g = st_graticule() + + if (require(ggplot2, quietly = TRUE) && utils::packageVersion("ggplot2") > "2.2.1") { + ggplot() + geom_sf(data = st_set_crs(nc, NA_crs_)) # NA_crs_ for crs + } + + library(maps) #421 + (wrld2 = st_as_sf(map('world2', plot=FALSE, fill=TRUE ))) + try(plot(wrld2, graticule = TRUE)) + } > > proc.time() user system elapsed 1.62 0.31 1.92