knitr::opts_chunk$set(echo = TRUE)
The material below doesn't actually match this package yet, this is just here for now until simplifying the lga and electoral boundaries is done.
This block of code will download a ~1.5Gb zip file with many shapefiles in nested folders.
I discovered these links (ESRI Shapefile and MapInfo) at this site: https://data.gov.au/dataset/psma-administrative-boundaries
I originally chose the MapInfo format, but those had empty geometries(!).
Build a data frame of the available file names, it's a recursive tree of directories but we only need the ".shp$" values.
## ignore state and see what layers there are ## there are 32 different kinds of layers sort(unique(unlist(lapply(strsplit(fs$file, "_"), function(x) paste(tail(x, -1), collapse = "_")))))
No we can filter on the state-removed strings to get the entire set for the country.
## all LGA lga <- read_psma(fs %>% dplyr::filter(grepl("LGA_POLYGON", file)) %>% dplyr::pull(fullname)) ## note that the "geometry" column is sticky, we ## subset like this to avoid faceting on all columns plot(lga[1]) ## electoral elec <- read_psma(fs %>% dplyr::filter(grepl("STATE_ELECTORAL_POLYGON", file)) %>% dplyr::pull(fullname)) plot(elec[1]) ## state state <- read_psma(fs %>% dplyr::filter(grepl("STATE_POLYGON", file)) %>% dplyr::pull(fullname)) plot(state[1]) abline(v = 148, h = -43) ## that is very high resolution, checkout plot(state[1], xlim = c(147.7, 148.2), ylim = c(-43.3, -43.0)) abline(v = 148, h = -43) pryr::object_size(state) ## use rmapshaper for topological simplification ## (but avoid date columns which trigger a bug in 0.3.0) simple_state <- rmapshaper::ms_simplify(state[c("ST_PLY_PID", "STATE_PID", "geometry")]) pryr::object_size(simple_state) plot(simple_state[1], xlim = c(147.7, 148.2), ylim = c(-43.3, -43.0)) plot(simple_state[1])
Another location.
## that is very high resolution, checkout plot(state[1], xlim = c(146.7, 148.2), ylim = c(-44.3, -43.0)) abline(v = 147.2385, h = -43.46973) plot(state[1], xlim = 147.2385 + c(-1, 1)/30, ylim = -43.46973 + c(-1, 1)/30, border = NA) plot(st_geometry(simple_state), add = TRUE) abline(v = 147.2385, h = -43.46973)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.