问题描述
我有一个多边形数据框,其中列出了每个顶点的经度和纬度坐标。考虑以下数据框:
shape longitude latitude
polygon1 -0.15 51
polygon1 -0.148 51.3
polygon1 -0.148 51.3
polygon1 -0.15 51
polygon2 -0.15 51.5
polygon2 -0.148 51.5
polygon2 -0.148 52
polygon2 -0.15 52
我想使用SF库,并将坐标转换为shapefile多边形。首先,我将坐标参考系设置为4326,其中包括地球的标准坐标系。然后,将坐标参考系转换为27700,该坐标系是英国国家网格(我的观点在英国)。这是我使用的代码:
library(sf)
library(dplyr)
library(readr)
data <- data %>%
st_as_sf(coords = c('longitude','latitude')) %>%
st_set_crs(4326)
data = data %>% st_transform(27700)
data <- data %>%
group_by(shape) %>%
summarise(do_union=FALSE) %>%
st_cast("polyGON")
投影shapefile之后,我使用st_distance计算出两个顶点之间的距离为22247.47米。使用haversine公式,我得到22238.99米。会有变化是正常的吗?
为获得正确的距离,我必须正确地将经度和纬度坐标映射到英国,这一点很重要。我的方法正确吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)