View source: R/geojson_write.r
geojson_write | R Documentation |
Convert many input types with spatial data to a geojson file
geojson_write(
input,
lat = NULL,
lon = NULL,
geometry = "point",
group = NULL,
file = "myfile.geojson",
overwrite = TRUE,
precision = NULL,
convert_wgs84 = FALSE,
crs = NULL,
...
)
input |
Input list, data.frame, spatial class, or sf class.
Inputs can also be dplyr |
lat |
(character) Latitude name. The default is |
lon |
(character) Longitude name. The default is |
geometry |
(character) One of point (Default) or polygon. |
group |
(character) A grouping variable to perform grouping for polygons - doesn't apply for points |
file |
(character) A path and file name (e.g., myfile), with the
|
overwrite |
(logical) Overwrite the file given in |
precision |
desired number of decimal places for the coordinates in the geojson file. Using fewer decimal places can decrease file sizes (at the cost of precision). |
convert_wgs84 |
Should the input be converted to the
standard CRS for GeoJSON (https://tools.ietf.org/html/rfc7946)
(geographic coordinate reference
system, using the WGS84 datum, with longitude and latitude units of decimal
degrees; EPSG: 4326). Default is |
crs |
The CRS of the input if it is not already defined. This can be
an epsg code as a four or five digit integer or a valid proj4 string. This
argument will be ignored if |
... |
Further args passed on to internal functions. For Spatial*
classes, data.frames,
regular lists, and numerics, it is passed through to
|
A geojson_write
class, with two elements:
path: path to the file with the GeoJSON
type: type of object the GeoJSON came from, e.g., SpatialPoints
geojson_list()
, geojson_json()
, topojson_write()
## Not run:
# From a data.frame
## to points
geojson_write(us_cities[1:2, ], lat = "lat", lon = "long")
## to polygons
head(states)
geojson_write(
input = states, lat = "lat", lon = "long",
geometry = "polygon", group = "group"
)
## partial states dataset to points (defaults to points)
geojson_write(input = states, lat = "lat", lon = "long")
## Lists
### list of numeric pairs
poly <- list(
c(-114.345703125, 39.436192999314095),
c(-114.345703125, 43.45291889355468),
c(-106.61132812499999, 43.45291889355468),
c(-106.61132812499999, 39.436192999314095),
c(-114.345703125, 39.436192999314095)
)
geojson_write(poly, geometry = "polygon")
### named list
mylist <- list(
list(latitude = 30, longitude = 120, marker = "red"),
list(latitude = 30, longitude = 130, marker = "blue")
)
geojson_write(mylist)
# From a numeric vector of length 2
## Expected order is lon, lat
vec <- c(-99.74, 32.45)
geojson_write(vec)
## polygon from a series of numeric pairs
### this requires numeric class input, so inputting a list will
### dispatch on the list method
poly <- c(
c(-114.345703125, 39.436192999314095),
c(-114.345703125, 43.45291889355468),
c(-106.61132812499999, 43.45291889355468),
c(-106.61132812499999, 39.436192999314095),
c(-114.345703125, 39.436192999314095)
)
geojson_write(poly, geometry = "polygon")
# Write output of geojson_list to file
res <- geojson_list(us_cities[1:2, ], lat = "lat", lon = "long")
class(res)
geojson_write(res)
# Write output of geojson_json to file
res <- geojson_json(us_cities[1:2, ], lat = "lat", lon = "long")
class(res)
geojson_write(res)
# From SpatialPolygons class
library("sp")
poly1 <- Polygons(list(Polygon(cbind(
c(-100, -90, -85, -100),
c(40, 50, 45, 40)
))), "1")
poly2 <- Polygons(list(Polygon(cbind(
c(-90, -80, -75, -90),
c(30, 40, 35, 30)
))), "2")
sp_poly <- SpatialPolygons(list(poly1, poly2), 1:2)
geojson_write(sp_poly)
# From SpatialPolygonsDataFrame class
sp_polydf <- as(sp_poly, "SpatialPolygonsDataFrame")
geojson_write(input = sp_polydf)
# From SpatialGrid
x <- GridTopology(c(0, 0), c(1, 1), c(5, 5))
y <- SpatialGrid(x)
geojson_write(y)
# From SpatialGridDataFrame
sgdim <- c(3, 4)
sg <- SpatialGrid(GridTopology(rep(0, 2), rep(10, 2), sgdim))
sgdf <- SpatialGridDataFrame(sg, data.frame(val = 1:12))
geojson_write(sgdf)
# From SpatialPixels
library("sp")
pixels <- suppressWarnings(SpatialPixels(SpatialPoints(us_cities[c("long", "lat")])))
summary(pixels)
geojson_write(pixels)
# From SpatialPixelsDataFrame
library("sp")
pixelsdf <- suppressWarnings(
SpatialPixelsDataFrame(points = canada_cities[c("long", "lat")], data = canada_cities)
)
geojson_write(pixelsdf)
# From sf classes:
if (require(sf)) {
file <- system.file("examples", "feature_collection.geojson", package = "geojsonio")
sf_fc <- st_read(file, quiet = TRUE)
geojson_write(sf_fc)
}
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.