The goal of tilemath is to encapsulate the logic needed for image pyramids, tile servers, etc.
I’m working on my habits here. Inspired by slippymath and GDAL.
You can install the development version of tilemath like so:
remotes::install_github("hypertidy/tilemath")This is a basic example which shows you how to solve a common problem:
library(tilemath)
x <- tiles_near(147.33, -42.88)
str(x)
#> 'data.frame': 9 obs. of 7 variables:
#> $ x : int 7447 7448 7449 7447 7448 7449 7447 7448 7449
#> $ y : int 5177 5177 5177 5178 5178 5178 5179 5179 5179
#> $ zoom: int 13 13 13 13 13 13 13 13 13
#> $ xmin: num 16392991 16397883 16402775 16392991 16397883 ...
#> $ xmax: num 16397883 16402775 16407667 16397883 16402775 ...
#> $ ymin: num -5293111 -5293111 -5293111 -5298003 -5298003 ...
#> $ ymax: num -5288219 -5288219 -5288219 -5293111 -5293111 ...
#> - attr(*, "extent_snapped")= num [1:4] 16392991 16407667 -5302895 -5288219
ex <- c(min(x$xmin), max(x$xmax), min(x$ymin), max(x$ymax))
## what shape is that (tiles_near assumes 256x256)
nx <- length(unique(x$x))
ny <- length(unique(x$y))
overall_dim <- c(nx, ny) * 256
m <- vapour::gdal_raster_nara(sds::wms_virtualearth(), target_ext = ex, target_dim = overall_dim)
ximage::ximage(m, asp = 1)Please note that the tilemath project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
