非常简单的情况:多边形定义了一个地理区域,我想知道它由gps坐标给定的点是否位于该多边形内。这一点是否在一个多边形内?
我经历了许多SO问题,并尝试过各种函数和包如sp,但无法弄清楚它为什么失败。
我这个很简单的功能的尝试: https://www.rdocumentation.org/packages/SDMTools/versions/1.1-221/topics/pnt.in.poly
install.packages("SDMTools v1.1-221")
library(SDMTools v1.1-221)
## Coordinates of the polygon corners
lat <- c(48.43119, 48.43119, 48.42647, 48.400031, 48.39775, 48.40624, 48.42060, 48.42544, 48.42943)
lon <- c(-71.06970, -71.04180, -71.03889, -71.04944, -71.05991, -71.06764, -71.06223, -71.06987, -71.07004)
pol = cbind(lat=lat,lng=lon)
## Point to be tested
x <- data.frame(lng=-71.05609, lat=48.40909)
## Visualization, this point clearly stands in the middle of the polygon
plot(rbind(pol, x))
polygon(pol,col='#99999990')
## Is that point in the polygon?
out = pnt.in.poly(x,poly)
## Well, no (pip=0)
print(out)
示例所示为该函数给出的作品和我在一起,但这个简单的情况下,没有......这是为什么?