Learn R Programming

geojsonio (version 0.7.0)

geo2topo: GeoJSON to TopoJSON and back

Description

GeoJSON to TopoJSON and back

Usage

geo2topo(x, object_name = "foo", quantization = 0, ...)

topo2geo(x, ...)

Arguments

x

GeoJSON or TopoJSON as a character string, json, a file path, or url

object_name

(character) name to give to the TopoJSON object created. Default: "foo"

quantization

(numeric) quantization parameter, use this to quantize geometry prior to computing topology. Typical values are powers of ten (1e4, 1e5, ...), default is 0 to not perform quantization. For more information about quantization, see this StackOverflow post by Mike Bostock.

...

for geo2topo args passed on to fromJSON, and for topo2geo args passed on to st_read

Value

An object of class json, of either GeoJSON or TopoJSON

See Also

topojson_write, topojson_read

Examples

Run this code
# NOT RUN {
# geojson to topojson
x <- '{"type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ]}'
z <- geo2topo(x)
jsonlite::prettify(z)
# }
# NOT RUN {
library(leaflet)
leaflet() %>%
  addProviderTiles(provider = "Stamen.Terrain") %>%
  addTopoJSON(z)
# }
# NOT RUN {
# geojson to topojson as a list
x <- list(
 '{"type": "LineString", "coordinates": [ [100, 0], [101, 1] ]}',
 '{"type": "LineString", "coordinates": [ [110, 0], [110, 1] ]}',
 '{"type": "LineString", "coordinates": [ [120, 0], [121, 1] ]}'
)
geo2topo(x)

# change the object name created
x <- '{"type": "LineString", "coordinates": [ [100.0, 0.0], [101.0, 1.0] ]}'
geo2topo(x, object_name = "HelloWorld")
geo2topo(x, object_name = "4")

x <- list(
 '{"type": "LineString", "coordinates": [ [100, 0], [101, 1] ]}',
 '{"type": "LineString", "coordinates": [ [110, 0], [110, 1] ]}',
 '{"type": "LineString", "coordinates": [ [120, 0], [121, 1] ]}'
)
geo2topo(x, "HelloWorld")
geo2topo(x, c("A", "B", "C"))


# topojson to geojson
w <- topo2geo(z)
jsonlite::prettify(w)

## larger examples
file <- system.file("examples", "us_states.topojson", package = "geojsonio")
topo2geo(file)
# }

Run the code above in your browser using DataLab