【问题标题】:How to add a column with location-based data to a SpatialPolygonsDataFrame in R?如何将具有基于位置的数据的列添加到 R 中的 SpatialPolygonsDataFrame?
【发布时间】:2015-10-11 16:01:46
【问题描述】:

我在 R 中有空间数据,它作为 SpatialPolygonsDataFrame 加载:

library(sp)
library(tmap)
d <- readRDS("data.rds")
qtm(d)

例如,我使用来自http://www.gadm.org/download 的德国数据。

下面是qtm(d) 绘制的地图。但是,我想显示我自己的数据。我有经度和纬度的位置,我想计算映射多边形内的点数,并将这些计数显示为下面地图的颜色。

我不知道从哪里开始。有没有一种简单的方法可以将位置映射到多边形?

【问题讨论】:

    标签: r dictionary gis maptools


    【解决方案1】:

    我对空间数据不是很有经验,但是,也许您可​​以将其用作入门:

    library(sp)
    library(raster)
    library(rgeos)
    
    # load map
    d <- getData("GADM", country = "Germany", level = 2)
    
    # generate some random points 
    set.seed(1)
    p <- data.frame(
      lon = jitter(sample(8:13, 20, T)), 
      lat = jitter(sample(49:52, 20, T))
    )
    
    # match points with polygons
    mat <- gContains(d, SpatialPoints(p, proj4string=CRS(sp::proj4string(d))), byid=TRUE)
    hits <- colSums(mat)
    cols <- rev(heat.colors(diff(range(hits))+1))
    
    # plot
    plot(d, col = cols[hits+1], border = "green")
    with(p, points(lon, lat, col = "blue", pch = 19, cex = .5))
    

    【讨论】:

    • 这很棒。非常感谢你。尤其是gContains() 似乎正是我所需要的。
    猜你喜欢
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 2022-10-24
    • 2021-02-08
    • 2014-02-12
    • 2022-01-12
    相关资源
    最近更新 更多