【发布时间】:2018-07-21 12:05:14
【问题描述】:
我正在编写一个脚本,该脚本采用在 google earth 中创建的输入 KML 文件,并在多边形内绘制坐标点网格。
到目前为止,我有多边形输入和多边形边界框的点网格,但我只想在多边形内部有点。
我尝试使用over() 函数执行此操作,但它不起作用。有什么建议吗?
你可以下载我的测试KML文件HERE。
library(rgdal)
library(sp)
library(maptools)
# ogrInfo() to find layer name... not as labelled in Google Earth?!
my.poly = readOGR(ds = "PolyNYC.kml", layer = "PolyNYC")
proj4string(my.poly) <- "+proj=longlat +datum=WGS84 +no_defs"
# Creating grid of points
grdpts <- makegrid(my.poly)
# Converting from df to spdf
coords = cbind(grdpts$x1, grdpts$x2)
sp = SpatialPoints(coords)
spdf = SpatialPointsDataFrame(coords, grdpts, proj4string = CRS(proj4string(my.poly)))
# Using over() to select only those points in the polygon
inPoly = over(spdf, my.poly)
# This is not working
# Plotting the polygon with the points overlaid.
plot(my.poly)
points(spdf, pch = 3, col = "red")
#kmlPoints(obj = spdf, kmlfile = "BBoxFromPoly.kml", kmlname = "Testing123")
【问题讨论】:
标签: r geospatial polygon spatial