使用 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
我有一张区域地图是从 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