非常简单的情况:一个多边形定义了一个地理区域,我想知道一个由GPS坐标给出的点是否在该多边形内。
我查看了许多SO问题,并尝试了各种函数和包,如sp,但无法确定它为什么失败。
我尝试了这个非常简单的函数: https://www.rdocumentation.org/packages/SDMTools/versions/1.1-221/topics/pnt.in.poly
这个函数的例子可以正常运行,但是对于这个简单的情况却不起作用…为什么呢?
我查看了许多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)
这个函数的例子可以正常运行,但是对于这个简单的情况却不起作用…为什么呢?