https://github.com/cran/SoDA
Revision abb11e53fd1d4cd6d80e90fa5a000adda65fe209 authored by jmc on 14 July 2008, 00:00:00 UTC, committed by Gabor Csardi on 14 July 2008, 00:00:00 UTC
1 parent 9e5b9bb
Tip revision: abb11e53fd1d4cd6d80e90fa5a000adda65fe209 authored by jmc on 14 July 2008, 00:00:00 UTC
version 1.0-3
version 1.0-3
Tip revision: abb11e5
geoDist.R
"geoDist" <-
function(lat1, lon1, lat2, lon2, NAOK = TRUE, DUP = TRUE) {
n <- unique(c(length(lat1), length(lon1), length(lat2),
length(lon2)))
nok <- n
if(length(n)>1)
stop("Need all arguments of the same length: got ",
paste(n, collapse=", "))
if(n < 1)
return(numeric())
nas <- is.na(lat1) | is.na(lat2) | is.na(lon1) | is.na(lon2)
if(NAOK) {
if(any(nas)) {
ok <- !nas
lat1 <- lat1[ok]; lon1 <- lon1[ok];
lat2 <- lat2[ok]; lon2 <- lon2[ok];
nok <- sum(ok)
}
}
else if(any(nas))
stop("NA values found but not allowed")
res <- .Fortran("GEODISTV",
as.double(lat1),as.double(lon1),
as.double(lat2),as.double(lon2),
dist = double(nok), as.integer(nok),
DUP = DUP, PACKAGE = "SoDA")$dist
if(NAOK && any(nas)) {
value <- rep(NA, n)
value[ok] <- res
value
}
else
res
}
Computing file changes ...