距离的R或QGIS方向

距离的R或QGIS方向,r,postgresql,qgis,R,Postgresql,Qgis,正在寻找一个R或QGIS解决方案:我有一个lat long和组名的文件。我想找出a)从一个组的起点到终点的距离,b)一个组的坐标之间的平均距离,或者c)两者之间的某个距离。如果它有一个成本函数,就有奖金。我考虑过r包的GD距离,但这似乎只是点之间的距离。我想在小组之间找到一种流动。我也有postgresql访问权限,但我在这方面没有太多经验,所以我更喜欢其他选项。想法?在计算距离之前,您首先需要将数据投影到地理坐标中。GME中的pointdistances(点间距离)工具应该完成您要求的部分工作

正在寻找一个R或QGIS解决方案:我有一个lat long和组名的文件。我想找出a)从一个组的起点到终点的距离,b)一个组的坐标之间的平均距离,或者c)两者之间的某个距离。如果它有一个成本函数,就有奖金。我考虑过r包的GD距离,但这似乎只是点之间的距离。我想在小组之间找到一种流动。我也有postgresql访问权限,但我在这方面没有太多经验,所以我更喜欢其他选项。想法?

在计算距离之前,您首先需要将数据投影到地理坐标中。GME中的pointdistances(点间距离)工具应该完成您要求的部分工作,您可能需要执行一些额外的步骤,以获得GME输出所需格式的数据。这里有更多信息


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和接地距离?