R可以将纬度和经度点合并到空间多边形中的区域吗?

时间:2013-08-01 10:15:37

标签: r polygon geospatial spatial

我有两个数据框。一个是空间多边形,另一个是空间点数据帧。不幸的是,我无法重现整个示例,但Spatial Polygon看起来像这样:

     head(electorate)
     ELECT_DIV STATE NUMCCDS ACTUAL PROJECTED POPULATION OVER_18  AREA_SQKM SORTNAME
     Adelaide    SA     318      0         0          0       0    76.0074 Adelaide
        Aston   VIC     191      0         0          0       0    99.0122    Aston
     Ballarat   VIC     274      0         0          0       0  4651.5400 Ballarat
        Banks   NSW     229      0         0          0       0    49.3189    Banks
       Barker    SA     343      0         0          0       0 63885.7100   Barker
       Barton   NSW     234      0         0          0       0    44.1112   Barton 

正如你所看到的那样,它是澳大利亚选民的空间多边形。第二个数据框是具有经度和纬度的空间点数据帧,用于轮询场所。它看起来像这样 -

  head(ppData)
  State PollingPlaceID    PollingPlaceNm Latitude Longitude
1   ACT           8829            Barton -35.3151   149.135
2   ACT          11877          Bonython -35.4318   149.083
3   ACT          11452           Calwell -35.4406   149.116
4   ACT           8794 Canberra Hospital -35.3453   149.099
5   ACT           8761           Chapman -35.3564   149.042
6   ACT           8763          Chisholm -35.4189   149.123

我的目标是尝试将每个投票站点(PollingPlaceID)与相应的选区(ELECT_DIV)匹配。每个部门内都会有很多投票站点。将它们绘制在一起是没有问题的。 R似乎也很自然地让我向我的投票站数据框(ppData)添加一个新的向量,该数据帧为每个投票站分配了它所属的选民(ELECT_DIV)。

我知道我可以用coordinates(electorate)从选民那里提取每个ELECT_DIV的坐标,但我不确定这实际上有什么帮助。有什么建议?

1 个答案:

答案 0 :(得分:3)

您需要over中的sp,您可以像这样使用它:

require( sp )
ID <- over( SpatialPoints( ppData ) , electorate )
ppData@data <- cbind( ppData@data , ID )

这将返回一个data.frame,其中每一行与第一个参数(每个轮询点)相关,并且是该点落入的多边形中的数据。您可以在之后将它们绑定,然后您现在拥有与每个点相关的多边形数据。