首页 文章

在SpatialPolygonsDataFrame上绘制SpatialPointsDataFrame

提问于
浏览
6

我有一个SpatialPolygonsDataFrame,我使用以下命令绘制:

spplot(milanoNILNew, "percPolVita",at = c(0,0.0696,0.08979,0.0974,0.1116,0.181),col.regions =pal,main="Quota Clienti Unipol con Polizze Vita ")

我使用以下命令创建了一个spatialPointsDataFrame

agenziePoints<-SpatialPointsDataFrame(coords=datiAgenzie[,c("Long","Lat")],data=datiAgenzie,proj4string = llCRS, match.ID = TRUE).

我可以绘制多边形,但我无法在同一个图上表示多边形上的agenziePoints . 在此先感谢您的支持 .

1 回答

  • 6

    只需使用带有add = TRUE参数的基本绘图函数 .

    require(sp)
    
    # Create polygons
    sr=SpatialPolygons(list(
      Polygons(list(Polygon(cbind(c(180114,180553,181127,181477,181294,181007,180409, 
      180162,180114),c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),"1"),
      Polygons(list(Polygon(cbind(c(180042,180545,180553,180314,179955,179142,179437,179524,179979,180042), 
      c(332373,332026,331426,330889,330683,331133,331623,332152,332357,332373)))),"2")))
    srdf=SpatialPolygonsDataFrame(sr, data.frame(cbind(1:2,1:2), row.names=c("1","2")))
    
    # Add points (sp meuse dataset)
    data(meuse)
    coordinates(meuse) = ~x+y
    
    # Create a color vector for the meuse points
    color <- rep("xx", nrow(meuse@data))
      color[(meuse@data$copper > 0)&(meuse@data$copper <= 31)] <- "black"
        color[(meuse@data$copper  > 31)] <- "red"
    
    # Plot polygons with points overlaid    
    plot(srdf, col=c("grey","blue"))
      plot(meuse, col=color, pch=19, add=TRUE)
    

    如果你真的想使用spplot函数,你可以实现这样的东西:

    # spplot approach
    pts=list("sp.points", meuse, pch=19, col=color)
      spplot(srdf, "X1", col.regions=c("grey","blue"), colorkey=FALSE,
             sp.layout=list(pts))
    

相关问题