Nothing
## conversion of absolute size units
getConvFac <-
function(conversion) {
## check how the conversion factor is indicated
convFac <- if(is.character(conversion)) {
## conversion factors for length units
facMM2MM <- 1
facMM2CM <- 1/10
facMM2M <- 1/1000
facMM2KM <- 1/1000000
facMM2IN <- 1/25.4
facMM2FT <- 1/304.8
facMM2YD <- 1/914.4
facCM2MM <- 10
facCM2CM <- 1
facCM2M <- 1/100
facCM2KM <- 1/100000
facCM2IN <- 1/2.54
facCM2FT <- 1/30.48
facCM2YD <- 1/91.44
facM2MM <- 1000
facM2CM <- 100
facM2M <- 1
facM2KM <- 1/1000
facM2IN <- 1/0.0254
facM2FT <- 1/0.3048
facM2YD <- 1/0.9144
facKM2MM <- 1000000
facKM2CM <- 100000
facKM2M <- 1000
facKM2KM <- 1/1
facKM2IN <- 1/0.0000254
facKM2FT <- 1/0.0003048
facKM2YD <- 1/0.0009144
facIN2MM <- 25.4
facIN2CM <- 2.54
facIN2M <- 0.0254
facIN2KM <- 0.0000254
facIN2IN <- 1
facIN2FT <- 1/12
facIN2YD <- 1/36
facFT2MM <- 304.8
facFT2CM <- 30.48
facFT2M <- 0.3048
facFT2KM <- 0.0003048
facFT2IN <- 12
facFT2FT <- 1
facFT2YD <- 1/3
facYD2MM <- 914.4
facYD2CM <- 91.44
facYD2M <- 0.9144
facYD2KM <- 0.0009144
facYD2IN <- 36
facYD2FT <- 3
facYD2YD <- 1
v <- c("mm2mm" =facMM2MM,
"mm2cm" =facMM2CM,
"mm2m" =facMM2M,
"mm2km" =facMM2KM,
"mm2in" =facMM2IN,
"mm2inch"=facMM2IN,
"mm2ft" =facMM2FT,
"mm2feet"=facMM2FT,
"mm2foot"=facMM2FT,
"mm2yd" =facMM2YD,
"mm2yard"=facMM2YD,
"cm2mm" =facCM2MM,
"cm2cm" =facCM2CM,
"cm2m" =facCM2M,
"cm2km" =facCM2KM,
"cm2in" =facCM2IN,
"cm2inch"=facCM2IN,
"cm2ft" =facCM2FT,
"cm2feet"=facCM2FT,
"cm2foot"=facCM2FT,
"cm2yd" =facCM2YD,
"cm2yard"=facCM2YD,
"m2mm" =facM2MM,
"m2cm" =facM2CM,
"m2m" =facM2M,
"m2km" =facM2KM,
"m2in" =facM2IN,
"m2inch" =facM2IN,
"m2ft" =facM2FT,
"m2feet" =facM2FT,
"m2foot" =facM2FT,
"m2yd" =facM2YD,
"m2yard" =facM2YD,
"km2mm" =facKM2MM,
"km2cm" =facKM2CM,
"km2m" =facKM2M,
"km2km" =facKM2KM,
"km2in" =facKM2IN,
"km2inch"=facKM2IN,
"km2ft" =facKM2FT,
"km2feet"=facKM2FT,
"km2foot"=facKM2FT,
"km2yd" =facKM2YD,
"km2yard"=facKM2YD,
"in2mm" =facIN2MM,
"inch2mm" =facIN2MM,
"in2cm" =facIN2CM,
"inch2cm" =facIN2CM,
"in2m" =facIN2M,
"inch2m" =facIN2M,
"in2km" =facIN2KM,
"inch2km" =facIN2KM,
"in2in" =facIN2IN,
"in2inch" =facIN2IN,
"inch2in" =facIN2IN,
"inch2inch"=facIN2IN,
"in2ft" =facIN2FT,
"in2feet" =facIN2FT,
"in2foot" =facIN2FT,
"inch2ft" =facIN2FT,
"inch2feet"=facIN2FT,
"inch2foot"=facIN2FT,
"in2yd" =facIN2YD,
"inch2yard"=facIN2YD,
"yd2mm" =facYD2MM,
"yard2mm" =facYD2MM,
"yd2cm" =facYD2CM,
"yard2cm" =facYD2CM,
"yd2m" =facYD2M,
"yard2m" =facYD2M,
"yd2km" =facYD2KM,
"yard2km" =facYD2KM,
"yd2in" =facYD2IN,
"yard2inch"=facYD2IN,
"yd2ft" =facYD2FT,
"yd2feet" =facYD2FT,
"yd2foot" =facYD2FT,
"yard2ft" =facYD2FT,
"yard2feet"=facYD2FT,
"yard2foot"=facYD2FT,
"yd2yd" =facYD2YD,
"yd2yard" =facYD2YD,
"yard2yd" =facYD2YD,
"yard2yard"=facYD2YD,
"ft2mm" =facFT2MM,
"feet2mm" =facFT2MM,
"ft2cm" =facFT2CM,
"feet2cm" =facFT2CM,
"ft2m" =facFT2M,
"feet2m" =facFT2M,
"ft2km" =facFT2KM,
"feet2km" =facFT2KM,
"ft2in" =facFT2IN,
"ft2inch" =facFT2IN,
"feet2in" =facFT2IN,
"feet2inch"=facFT2IN,
"foot2in" =facFT2IN,
"foot2inch"=facFT2IN,
"ft2ft" =facFT2FT,
"ft2feet" =facFT2FT,
"ft2foot" =facFT2FT,
"feet2ft" =facFT2FT,
"feet2feet"=facFT2FT,
"feet2foot"=facFT2FT,
"foot2ft" =facFT2FT,
"foot2feet"=facFT2FT,
"foot2foot"=facFT2FT,
"ft2yd" =facFT2YD,
"feet2yd" =facFT2YD,
"foot2yd" =facFT2YD,
"ft2yard" =facFT2YD,
"feet2yard"=facFT2YD,
"foot2yard"=facFT2YD)
## did we catch all requested conversion types?
# if(any(is.na(converted))) {
# converted <- v[conversion]
# warning(c('Conversion type(s) "', paste(conversion[is.na(converted)], collapse=", "),
# '" not found'))
# }
unname(v[conversion])
} else if(is.numeric(conversion)) { # factor is given directly
if(any(na.omit(conversion) <= 0)) {
is.na(conversion) <- conversion <= 0
warning("Conversion factor must be > 0")
}
conversion
} else {
stop("conversion must be a character constant or numeric factor")
} # if(is.character(conversion))
return(convFac)
}
## determine unit of (x,y)-coords from conversion string
getUnits <-
function(x="m2cm", first=TRUE) {
if(!is.character(x)) {
warning("Unit not recognized - input must have form like m2cm")
return(" ")
}
units <- strsplit(x, "2") # first and second part of string
if(!all(lengths(units) == 2L)) { # check that there are two parts
idx <- lengths(units) != 2L
units[idx] <- NA_character_
warning(paste0("Unit(s) ", paste(x[idx], collapse=", "),
" not recognized - input must have form like m2cm"))
}
# knownUnits <- c("km", "m", "cm", "mm", "yd", "yard",
# "ft", "foot", "feet", "in", "inch")
# isKnown <- vapply(units, function(x) { all(x %in% knownUnits) }, logical(1))
# if(!all(isKnown)) {
# warning(c("Unit not recognized - needs to be one of\n",
# paste(knownUnits, collapse=" ")))
# return("")
# }
## replace feet with ft, yard with yd, inch with in
replaceUnit <- function(x) {
x <- gsub("yard", "yd", x)
x <- gsub("foot", "ft", x)
x <- gsub("feet", "ft", x)
gsub("inch", "in", x)
}
units <- lapply(units, replaceUnit)
if(first) {
vapply(units, head, FUN.VALUE=character(1), n=1)
} else {
vapply(units, tail, FUN.VALUE=character(1), n=1)
}
}
## determine conversion between distance to target and point coords
determineConversion <- function(x) {
stopifnot(is.data.frame(x))
unitDst <- if(hasName(x, "distance.unit")) {
x[["distance.unit"]]
} else {
NA_character_
}
unitXY <- if(hasName(x, "point.unit")) {
x[["point.unit"]]
} else {
NA_character_
}
conversion <- paste0(unitDst, "2", unitXY)
is.na(conversion) <- is.na(unitDst) | is.na(unitXY)
conversion
}
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.