
R version 4.4.0 (2024-04-24) -- "Puppy Cup"
Copyright (C) 2024 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu

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.361   1.348   1.218 
