如何使用R提取与点最近的关联多边形的信息?

如何使用R提取与点最近的关联多边形的信息?,r,join,arcgis,esri,shapefile,R,Join,Arcgis,Esri,Shapefile,我正在研究如何从ShapeFile在点和多边形之间进行相交(空间连接)。我的想法是得到最近的点和那些在多边形内部完全匹配的点。在ARGIS中,有一个名为“最近”的匹配选项函数,它们的定义如下:“连接要素中最接近目标要素的要素已匹配。两个或多个连接特征与目标特征的距离可能相同。出现这种情况时,将随机选择一个连接特征作为匹配特征。“ 我有一个将点相交为多边形的函数,它是由Lyndon Estes在r-sig-geo列表中提供的,当所有多边形填充了所有区域时,该代码工作得非常好。第二种情况称为空间连接

我正在研究如何从ShapeFile在点和多边形之间进行相交(空间连接)。我的想法是得到最近的点和那些在多边形内部完全匹配的点。在ARGIS中,有一个名为“最近”的匹配选项函数,它们的定义如下:“连接要素中最接近目标要素的要素已匹配。两个或多个连接特征与目标特征的距离可能相同。出现这种情况时,将随机选择一个连接特征作为匹配特征。“

我有一个将点相交为多边形的函数,它是由Lyndon Estes在r-sig-geo列表中提供的,当所有多边形填充了所有区域时,该代码工作得非常好。第二种情况称为空间连接距离,在ArcGIS中称为当匹配_选项最接近时相交,就像ArcGIS一样。因此,您可以修改当区域未被所有多边形填充时,点与多边形之间的最小距离

以下是第一个交叉点的数据和功能:

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)