如何使用R提取与点最近的关联多边形的信息?
我正在研究如何从ShapeFile在点和多边形之间进行相交(空间连接)。我的想法是得到最近的点和那些在多边形内部完全匹配的点。在ARGIS中,有一个名为“最近”的匹配选项函数,它们的定义如下:“连接要素中最接近目标要素的要素已匹配。两个或多个连接特征与目标特征的距离可能相同。出现这种情况时,将随机选择一个连接特征作为匹配特征。“ 我有一个将点相交为多边形的函数,它是由Lyndon Estes在r-sig-geo列表中提供的,当所有多边形填充了所有区域时,该代码工作得非常好。第二种情况称为空间连接距离,在ArcGIS中称为当匹配_选项最接近时相交,就像ArcGIS一样。因此,您可以修改当区域未被所有多边形填充时,点与多边形之间的最小距离 以下是第一个交叉点的数据和功能:如何使用R提取与点最近的关联多边形的信息?,r,join,arcgis,esri,shapefile,R,Join,Arcgis,Esri,Shapefile,我正在研究如何从ShapeFile在点和多边形之间进行相交(空间连接)。我的想法是得到最近的点和那些在多边形内部完全匹配的点。在ARGIS中,有一个名为“最近”的匹配选项函数,它们的定义如下:“连接要素中最接近目标要素的要素已匹配。两个或多个连接特征与目标特征的距离可能相同。出现这种情况时,将随机选择一个连接特征作为匹配特征。“ 我有一个将点相交为多边形的函数,它是由Lyndon Estes在r-sig-geo列表中提供的,当所有多边形填充了所有区域时,该代码工作得非常好。第二种情况称为空间连接
library(rgeos)
library(sp)
library(maptools)
library(rgdal)
library(sp)
xy.map <- readShapeSpatial("http://www.udec.cl/~jbustosm/points.shp")
manzana.map <- readShapeSpatial("http://www.udec.cl/~jbustosm/manzanas_from.shp" )
IntersectPtWithPoly <- function(x, y) {
# Extracts values from a SpatialPolygonDataFrame with SpatialPointsDataFrame, and appends table (similar to
# ArcGIS intersect)
# Args:
# x: SpatialPoints*Frame
# y: SpatialPolygonsDataFrame
# Returns:
# SpatialPointsDataFrame with appended table of polygon attributes
# Set up overlay with new column of join IDs in x
z <- overlay(y, x)
# Bind captured data to points dataframe
x2 <- cbind(x, z)
# Make it back into a SpatialPointsDataFrame
# Account for different coordinate variable names
if(("coords.x1" %in% colnames(x2)) & ("coords.x2" %in% colnames(x2))) {
coordinates(x2) <- ~coords.x1 + coords.x2
} else if(("x" %in% colnames(x2)) & ("x" %in% colnames(x2))) {
coordinates(x2) <- ~x + y
}
# Reassign its projection if it has one
if(is.na(CRSargs(x@proj4string)) == "FALSE") {
x2@proj4string <- x@proj4string
}
return(x2)
}
test<-IntersectPtWithPoly (xy.map,manzana.map)
我建议你拿出一部分数据来说明这个问题,然后也许其他对多边形到多边形的相交/覆盖有更好想法的人可以建议这个方法
应在shapefile中的点半径中创建,以使它们进入最近的多边形
我知道这些功能可以帮助实现它
library(sp)
?over
library(rgeos)
?gBuffer
?gIntersects
我正在研究它,所以任何评论或帮助都将非常感谢!我知道可以使用
sp
和rgeos
进行多边形到多边形的叠加。加载sp后需要加载rgeos
library(rgeos)
over(polygon1, polygon2)
交叉发布在。这似乎是一个有效的选择,但这意味着,Pantaleon,我们希望您在每个站点开始的线程中努力总结这两个站点的回复。好的,谢谢。我在这方面很新!!!也许您可以在gis.stackexchange上添加一个问题的链接?我假设您已经得到了这些答案。。。
library(rgeos)
over(polygon1, polygon2)