距离的R或QGIS方向
正在寻找一个R或QGIS解决方案:我有一个lat long和组名的文件。我想找出a)从一个组的起点到终点的距离,b)一个组的坐标之间的平均距离,或者c)两者之间的某个距离。如果它有一个成本函数,就有奖金。我考虑过r包的GD距离,但这似乎只是点之间的距离。我想在小组之间找到一种流动。我也有postgresql访问权限,但我在这方面没有太多经验,所以我更喜欢其他选项。想法?在计算距离之前,您首先需要将数据投影到地理坐标中。GME中的pointdistances(点间距离)工具应该完成您要求的部分工作,您可能需要执行一些额外的步骤,以获得GME输出所需格式的数据。这里有更多信息距离的R或QGIS方向,r,postgresql,qgis,R,Postgresql,Qgis,正在寻找一个R或QGIS解决方案:我有一个lat long和组名的文件。我想找出a)从一个组的起点到终点的距离,b)一个组的坐标之间的平均距离,或者c)两者之间的某个距离。如果它有一个成本函数,就有奖金。我考虑过r包的GD距离,但这似乎只是点之间的距离。我想在小组之间找到一种流动。我也有postgresql访问权限,但我在这方面没有太多经验,所以我更喜欢其他选项。想法?在计算距离之前,您首先需要将数据投影到地理坐标中。GME中的pointdistances(点间距离)工具应该完成您要求的部分工作
GME是一个独立的程序,它使用r进行分析,因此您必须单独安装。希望这有帮助 查看软件包
sp
。具体来说,函数spDists
,它接受经纬度矩阵,并返回从每个点到所有其他点的成对距离矩阵
使用此实用程序,您可以想象创建一个工作流,在该工作流中,您一次将一组位置输入到计算位置之间距离的函数。然后,您可以获取这个矩阵输出,并以您喜欢的任何方式计算平均值
以下可重复的示例将帮助您了解如何开始
require(ggmap) # Used for 'geocode' function.
require(sp) # Used for 'spDists' function.
### spDists spits out distance in KM if longlat argument = T.
# Write a function to convert to miles.
kmToMile <- function(x) x * 0.621371
### Create a character vector of locations to be geocoded.
locs <- c("san francisco", "new york city", "los angeles", "miami, florida")
ll <- lapply(locs, geocode)
ll <- do.call(rbind, ll)
### lon lat
### 1 -122.41942 37.77493
### 2 -74.00594 40.71278
### 3 -118.24368 34.05223
### 4 -80.20404 25.78910
### Feeding in a matrix of points to spDists returns a matrix
# of pairwise distance calculations. Use longlat argument to request
# kilometers rather than the "metric of the points".
dist <- spDists(as.matrix(ll), longlat = T)
### Convert object from kilometers to miles.
# Add row and column names, for easier reading.
dist <- kmToMile(dist)
rownames(dist) <- locs
colnames(dist) <- locs
### san francisco new york city los angeles miami, florida
### san francisco 0.0000 2571.930 347.1645 2593.075
### new york city 2571.9305 0.000 2450.8558 1087.392
### los angeles 347.1645 2450.856 0.0000 2337.818
### miami, florida 2593.0752 1087.392 2337.8179 0.000
require(ggmap)#用于“地理编码”功能。
需要(sp)#用于“spDists”功能。
###如果longlat参数=T,则SPDIST以KM为单位显示距离。
#编写一个函数以转换为英里。
kmToMile PostGIS和接地距离?