I don't know of such a function, but you have several options:

1. Assume that Euclidean distance is "good enough" - probably
reasonable over a limited geographic region (and commonly done).
2. Use your GIS software to do the calculations since it already
"understands" projections and distances on a sphere.
3. Write a function to do this yourself and make it available to
other researchers who need this capability. Assuming that
great circle distances on a perfect sphere are good enough, it
isn't that hard to do.

Eh, I talked myself into it (runs, but otherwise untested):

geogdist <- function(lat1, lon1, lat2, lon2)
{
# takes latitude and longitue for points 1 and 2
# returns great circle distances in km
# south and west are negative

rad <- function(x) { (x/360) * 2 * pi }
deg <- function(x) { (x/(2 * pi)) * 360 }

gd <- (sin(rad(lat1)) * sin(rad(lat2))) + (cos(rad(lat1)) *
cos(rad(lat2)) * cos(rad(abs(lon2-lon1))))

gd <- deg(acos(gd))

111.23 * gd

}



On Oct 30, 2007 11:49 AM,  <[EMAIL PROTECTED]> wrote:
> Hi,
> I have a set of locations defined by longitude and latitude (in degrees),
> and want to calculate the spatial (or geographic) distance among all
> locations.
> I did not find such a function in the spatial-related packages. (I *cannot*
> use 'dist', as I have geographic, not cartesian coordinates).
> thanks!
> Robert
>


-- 
Sarah Goslee
http://www.functionaldiversity.org

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to