R에서 맵 레이어 (shp 및 csv)를 오버레이하는 방법은 무엇입니까?


9

이것은 stackoverflow크로스 포스트입니다 . 나는 GIS 소프트웨어에 대해 거의 알지 못하고 R. Apologies에서 모든 매핑을 미리하고 있습니다. 이것이 너무 기본적인 질문이라면. 소스가 다르지만 속성이 다른 두 개의 shapefile이 있다고 가정 해 봅시다. 하나는 텍사스의 행정적 경계를 boundaries.shp위한 것이고 다른 하나는 텍사스 강을위한 것 rivers.shp입니다. 또한 towns.csv주 내의 도시 위치를 보여주는 세 번째 파일 이 있습니다. 파일을 읽은 후 maptools패키지 의 인접 경계에 도시 위치를 넘길 수 있습니다 .

plot(boundaries); points(towns$lon, towns$lat)

그러나 세 가지를 모두 오버레이하려면 어떻게해야합니까? 분명히 이것을하는 쉬운 방법이 있습니까?

답변:


8

PBSMapping은 귀하의 요구에 맞아야합니다. NCEAS에 튜토리얼이 있습니다 . 아래 코드는 해당 튜토리얼에서 수정되었습니다. 나는 당신의 데이터에 대해 가정하고 있습니다. 상황에 맞게 편집하십시오.

library(PBSmapping)

#prepare towns
pts <- read.csv("towns.csv")
towns <- points(towns$lon, towns$lat)
# read in shapefiles 
rivers <- importShapefile("rivers.shp")
boundaries <- importShapefile("boundaries.shp")


# note that importShapefile reads the .prj file if it exists, but it
# does not adopt the proj4 format used by the above approaches
proj.abbr <- attr(boundaries, "projection") # abbreviated projection info
proj.full <- attr(boundaries, "prj") # full projection info
print(proj.abbr)
# [1] "LL"

# generate map using PBSmapping plotting functions
plotPolys(boundaries, projection=proj.abbr, border="gray",
    xlab="Longitude", ylab="Latitude")
addPoints(towns, pch=20, cex=0.8)
addLines(rivers, col="blue", lwd=2.0)

고마워, RK 나는 아직도 그것을 끊으려고 노력하고 있지만, 이것은 훌륭한 포인터였습니다.
user3671

천만에요. 재미있는 매핑 되세요 :)
RK

11

두 개의 플롯을 오버레이하는 가장 간단한 방법은의 add = TRUE옵션을 사용하는 것입니다 plot. 인공 데이터를 사용한 예는 다음과 같습니다.

# Load sp package for creating artificial data
library(sp)

# Create sample town points
towns <- data.frame(lon = sample(100), lat = sample(100))
towns <- SpatialPoints(towns)

# Create sample polygon grid
grd <- GridTopology(c(1,1), c(10,10), c(10,10))
polys <- as.SpatialPolygons.GridTopology(grd)

# Plot polygons
plot(polys)

# Add towns (in red colour)
plot(towns, add = TRUE, col = 'red')

치핑에 감사합니다. 그러나 "add는 그래픽 매개 변수가 아닙니다."라고 말합니다.
user3671

이 예제는 컴퓨터에서 실행할 때 제대로 작동하지만 "add"는 항상 작동하지 않으며 입력 데이터의 클래스에 따라 다릅니다 . 이 게시물을 참조하십시오 . 그래서 내 제안이 최선의 방법이 아닐 수도 있습니다 ...
yellowcap
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.