Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 计算最近地物的方位角_R_Sf - Fatal编程技术网

R 计算最近地物的方位角

R 计算最近地物的方位角,r,sf,R,Sf,我正在计算两个sf对象(点)之间的最近点。我需要得到最近的轮毂名称、距离和方位角方向。此时,我得到了名称和距离,但我不知道如何获得ben点和每个最近中心之间的方向 library(sf) #create the point layers x_hub <- c(483049,482685) y_hub <- c(4691026,4686387) x_origin <- c(489597,489935,479537,476802,486356) y_origin <- c(

我正在计算两个sf对象(点)之间的最近点。我需要得到最近的轮毂名称、距离和方位角方向。此时,我得到了名称和距离,但我不知道如何获得ben点和每个最近中心之间的方向

library(sf)

#create the point layers
x_hub <- c(483049,482685)
y_hub <- c(4691026,4686387)
x_origin <- c(489597,489935,479537,476802,486356)
y_origin <- c(4696493,4695278,4692577,4684002,4690383)
p1 <- st_point(c(x_hub[1],y_hub[1]))
p2 <- st_point(c(x_hub[2],y_hub[2]))
p3 <- st_point(c(x_origin[1],y_origin[1]))
p4 <- st_point(c(x_origin[2],y_origin[2]))
p5 <- st_point(c(x_origin[3],y_origin[3]))
p6 <- st_point(c(x_origin[4],y_origin[4]))
p7 <- st_point(c(x_origin[5],y_origin[5]))
hub <- st_sfc(p1,p2, crs = 25831)
atr_hub <- data.frame(id= c(1,2))
hub <- st_sf(atr_hub, geometry = hub)
origin <- st_sfc(p3,p4,p5,p6,p7, crs=25831)
atr_origin <- data.frame(id= c(1:5))
origin <- st_sf(atr_origin, geometry = origin)


#find the hub name and save in origin
hubname <- st_nearest_feature(origin,hub)
origin$hubname <- hubname

#distance matrix between origin and hub
dist_matrix <- st_distance(origin,hub, by_element=FALSE)

#get the minimum value in each row and save in origin
dist <- 1
for (i in 1:nrow(dist_matrix)){
  print(i)
  dist[i] <- min(dist_matrix[i,])
}
origin$dist <- dist
库(sf)
#创建点图层

x_hub请参阅下面的修改脚本,使用package
nngeo
获得最近点的(平面)方位角。需要从GitHub安装开发版本,才能使其正常工作:

remotes::install\u github(“michaeldorman/nngeo”)
剧本:

库(sf)
图书馆(nngeo)
#创建点图层

您好,您的示例并不是因为只有您可以访问
.shp
文件。你能用一个可复制的例子来修改你的帖子吗?我编辑了一些数据点。现在它是可复制的。谢谢你的建议。非常感谢。也是为了使我的代码更加高效和优雅。我是个自学成才的人,我知道我写了很多无用的台词。一步一步地。