创建函数以检查点是否落在R中的两条线之间

tfr950

因此,假设有两个经度/纬度坐标列表。我将这些坐标绘制在地图上,并将列表1中的每个点与直线相连,并将列表2中的每个点与直线相连。

这是一个数据框,其中包含这两个列表的经度和纬度示例:

long_1<- c(-87, -85.927, -83.8056)
long_2<- c(-87, -85.4729, -83.1944)
lat_1<- c(17.8,18.969, 20.31)
lat_2<- c(17.8, 18.23, 19.0881)
df<- data.frame(long_1,long_2,lat_1, lat_2)

leaflet() %>% addTiles() %>%
addPolylines(data = df, lng = ~long_1, lat = ~lat_1) %>%
addPolylines(data = df, lng = ~long_2, lat = ~lat_2) %>%
setView(-93.65, 42.0285, zoom = 4)

我正在尝试创建一个将在经度和纬度上馈入一个点的函数,如果该点落入由这些线的连接所创建的边界范围之内,则返回true;否则,返回false。

老实说,我不知道该怎么做。任何想法将不胜感激!

s__

也许您可以通过sp::point.in.polygon()功能轻松地对其进行管理这个想法是要测试这些点是否在您的坐标构成的多边形中。

library(sp)
# first you've to get one column for the long, and one column for the lat
new_df <- data.frame(long = c(long_1,long_2), lat = c(lat_1, lat_2))

# then you can put the points to test in a vector, like these, and use the function
point.in.polygon(c(-85.927,-84.2),c(18.7,18.5),new_df$long,new_df$lat)
[1] 1 0   

一进一出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章