#' Function to export geometries as shapefiles.
#'
#' \code{write_shapefile} uses \code{rgdal::writeOGR} for the shapefile writer
#' and will write projection information. \code{write_shapefile} will create the
#' directory where the shapefile is to be exported if necessary.
#'
#' @author Stuart K. Grange
#'
#' @param sp Spatial object to be written as a shapefile.
#'
#' @param file Filename of shapefile to write. \code{file} will be cleaned to be
#' the "base" filename because many files make up a shapefile.
#'
#' @examples
#' \dontrun{
#'
#' write_shapefile(sp_county, "~/Desktop/county_spatial_data")
#'
#' }
#'
#' @export
write_shapefile <- function(sp, file) {
# Expand path
file <- path.expand(file)
# Get directory
destination <- dirname(file)
# Create directory if it does not exist
if (!file.exists(destination)) dir.create(destination, recursive = TRUE)
# Get layer which is file name
layer <- basename(file)
# Remove extension(s)
layer <- stringr::str_split_fixed(layer, pattern = "\\.", n = 2)[, 1]
# Add data slots if not present
sp <- sp_promote(sp)
# Write files
rgdal::writeOGR(sp, destination, layer, driver = "ESRI Shapefile",
overwrite_layer = TRUE)
# No return
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.