使用 gContains 测试经纬度点是否位于地图内

Using gContains to test whether lat lon points lie within a map

我有一张区域地图是从 dismo 包中的 gmap 函数获得的。然后我试图测试某些纬度和经度点是否在该地图内。

这是我的可重现示例:

library(dismo)
library(sp)
library(rgdal)
library(XML)
library(rgeos)


spatP <- SpatialPoints(gmap("Palo Alto, CA", lonlat = TRUE), 
    proj4string = CRS("+proj=longlat"))

point <- data.frame( x =  -122.129610, y = 37.399761)
pointSp <- SpatialPoints(point, proj4string = CRS("+proj=longlat"))

gContains(spatP, pointSp, byid = FALSE)

那个点在那张地图内,但我显然遗漏了一些东西。

想出了解决办法。如果我将 SpatialPoints 数据框 spatP 变成凸多边形,它就可以工作了。

polyHull <- gConvexHull(spatP)
gContains(polyHull, pointSp)
[1] TRUE