R/as.turf.R

Defines functions fixq as.turf.geo_list as.turf.geometrycollection as.turf.multilinestring as.turf.linestring as.turf.multipolygon as.turf.polygon as.turf.centroid as.turf.multipoint as.turf.point as.turf.feature as.turf

Documented in as.turf

#' Coerce to turf.js javascript function call
#'
#' @param x Input data to be coerced.
#' @param ... Ignored.
#' @export
#' @keywords internal
as.turf <- function(x, ...) {
  UseMethod("as.turf")
}

#' @export
as.turf.feature <- function(x, ...) {
  fixq(sprintf("turf.feature(%s, %s)", toj(x$geometry),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.point <- function(x, ...) {
  fixq(sprintf("turf.point(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.multipoint <- function(x, ...) {
  fixq(sprintf("turf.multiPoint(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.centroid <- function(x, ...) {
  fixq(sprintf("turf.point(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.polygon <- function(x, ...) {
  fixq(sprintf("turf.polygon(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.multipolygon <- function(x, ...) {
  fixq(sprintf("turf.multiPolygon(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.linestring <- function(x, ...) {
  fixq(sprintf("turf.lineString(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.multilinestring <- function(x, ...) {
  fixq(sprintf("turf.multiLineString(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.geometrycollection <- function(x, ...) {
  fixq(sprintf("turf.geometryCollection(%s, %s)", toj(x$geometry$coordinates),
               toj(x$properties, auto_unbox = TRUE)))
}

#' @export
as.turf.geo_list <- function(x, ...) {
  lapply(x$features, function(b) {
    fixq(sprintf("turf.%s(%s, %s)",
                 tolower(b$geometry$type),
                 toj(b$geometry$coordinates),
                 toj(b$properties, auto_unbox = TRUE)))
  })
}

fixq <- function(x) {
  gsub("\"", "'", x)
}

Try the lawn package in your browser

Any scripts or data that you put into this service are public.

lawn documentation built on Jan. 6, 2021, 5:07 p.m.