geojsonio (version 0.8.0)

geojson_sp: Convert output of geojson_list or geojson_json to spatial classes

Description

Convert output of geojson_list or geojson_json to spatial classes

Usage

geojson_sp(x, disambiguateFIDs = FALSE, stringsAsFactors = FALSE, ...)

Arguments

x

Object of class geo_list or geo_json

disambiguateFIDs

Ignored, and will be removed in a future version. Previously was passed to rgdal::readOGR(), which is no longer used.

stringsAsFactors

Convert strings to Factors? Default FALSE.

...

Further args passed on to sf::st_read()

Value

A spatial class object, see Details.

Details

The spatial class object returned will depend on the input GeoJSON. Sometimes you will get back a SpatialPoints class, and sometimes a SpatialPolygonsDataFrame class, etc., depending on what the structure of the GeoJSON.

The reading and writing of the CRS to/from geojson is inconsistent. You can directly set the CRS by passing a valid PROJ4 string or epsg code to the crs argument in sf::st_read()

Examples

Run this code
# NOT RUN {
library(sp)

# geo_list ------------------
## From a numeric vector of length 2 to a point
vec <- c(-99.74,32.45)
geojson_list(vec) %>% geojson_sp

## Lists
## From a list
mylist <- list(list(latitude=30, longitude=120, marker="red"),
               list(latitude=30, longitude=130, marker="blue"))
geojson_list(mylist) %>% geojson_sp
geojson_list(mylist) %>% geojson_sp %>% plot

## From a list of numeric vectors to a polygon
vecs <- list(c(100.0,0.0), c(101.0,0.0), c(101.0,1.0), c(100.0,1.0), c(100.0,0.0))
geojson_list(vecs, geometry="polygon") %>% geojson_sp
geojson_list(vecs, geometry="polygon") %>% geojson_sp %>% plot

# geo_json ------------------
## from point
geojson_json(c(-99.74,32.45)) %>% geojson_sp
geojson_json(c(-99.74,32.45)) %>% geojson_sp %>% plot

# from featurecollectino of points
geojson_json(us_cities[1:2,], lat='lat', lon='long') %>% geojson_sp
geojson_json(us_cities[1:2,], lat='lat', lon='long') %>% geojson_sp %>% plot

# Set the CRS via the crs argument
geojson_json(us_cities[1:2,], lat='lat', lon='long') %>%
  geojson_sp(crs = "+init=epsg:4326")

# json ----------------------
x <- geojson_json(us_cities[1:2,], lat='lat', lon='long')
geojson_sp(x)
# }

Run the code above in your browser using DataCamp Workspace