2015-01-13 1 views
6

완벽하게 사각형이 아니며 직사각형 모양의지도를 만들고 싶습니다.ggmap지도 크기 변경

require(ggmap) 
tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813), 
    color = "color", 
    source = "google", 
    maptype = "roadmap", 
    zoom = 12) 
tenmile.map <- ggmap(tenmile, 
    extent = "device", 
    ylab = "Latitude", 
    xlab = "Longitude")+ggtitle("GEOMean for Data from Oct 2013-Nov 2014") 
tenmile.map + geom_point(data=pp, aes(x=lon, y=lat, size=geomean), color="red", alpha=0.5) +  
geom_text(data=pp, aes(x=lon, y=lat, label = site), size=3, vjust = 1.25, hjust = -0.1) 

나는 내가 얻은 것과 내가 원하는 것의 사진을 게시 할 것이지만 이미지를 게시하는 데 충분한 평판 포인트가 없습니다. = - (

+0

ggmap이 [비표준지도를 작성하지 않은 것 같습니다] (http://stackoverflow.com/questions/19438316/r-ggmap-why-can-i-create-rectangular-maps-using-the- 파일 이름 - 속성 - but - not),하지만 어쩌면 당신은 더 큰지도, [이미지 자르기] (http://www.image.ucar.edu/~nychka/Fields/Help/image2lz.html)와 [use 그것은 배경으로] (http://stackoverflow.com/questions/12918367/in-r-how-to-plot-with-a-png-as-background). 좌표를 정렬하는 것이 힘들 것 같아요. (아마도 여기) (https://github.com/hadley/ggplot2/wiki/Crime-in-Downtown-Houston,-Texas-%3a-Combining-ggplot2 구글 맵스). – andybega

답변

2

경계 상자의 원래 한계를 유지하면서 모양을 변경하기 만하면 가로 세로 비율을 조정할 수 있습니다. 경계 상자의 한계를 변경하려면 다음과 같이지도를 얻으십시오. 이전하지만 coord_fixed() (또는 coord_cartesian())를 사용하여 한계를 설정합니다. 또는 당신은 화면 비율 및 경계 상자의 한계를 모두 조정할 수 있습니다.

tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813), 
    color = "color", 
    source = "google", 
    maptype = "roadmap", 
    zoom = 12) 
tenmile.map <- ggmap(tenmile, 
    ylab = "Latitude", 
    xlab = "Longitude")+ggtitle("GEOMean for Data from Oct 2013-Nov 2014") + 
    coord_fixed(xlim = c(-122.55, -122.40), ratio = 2/1) 
+0

코드 샌디에게 감사하지만 작동하도록 할 수는 없습니다. –

+0

죄송합니다, 귀하의 코멘트를 놓쳤습니다. 지도가 어떻게 보이는지에 대해 설명해야합니다. 나는 정사각형이 아닌지도를 얻는다. –

0

샌디 Muspratt의 대답은 직사각형의지도를 생산하고 있지만 뻗어됩니다. 얻으려면 unstretched지도, 비율은지도의 장소에서 평행과 자오선의 간격 사이의 비율로 조정해야합니다 :

,451,515,

비 = 1/코사인 (위도) 위도가 각도 주어지면

즉된다 :

비 = 1/COS (파이 * 위도/180)

나는 바르셀로나의지도를 사용하여 예제를 제공합니다. 바르셀로나는 대부분의 거리가 사각형 그리드를 형성하고 변형이 쉽게 눈에 띄기 때문에 스트레칭을 확인하는 좋은 예입니다.

이 이 방법으로지도의 지역 계정 지구의 곡률에 걸릴 않을만큼 작은 경우 (예를 들어지도에 점을 추가 할 수) 전체지도에 대한 작업을 계속 좌표 주목해야

library(ggmap) library(mapproj) mapbcn <- get_map(location = 
    'Barcelona, Catalonia', zoom = 13) 

# square map (default) ggmap(mapbcn) 

# map cropped by latitude 
ggmap(mapbcn) +     
    coord_fixed(ylim=c(41.36,41.41), 
       ratio=1/cos(pi*41.39/180)) 

# map cropped by longitude 
ggmap(mapbcn) +  
    coord_fixed(xlim=c(2.14, 2.18), 
       ratio=1/cos(pi*41.39/180)) 
- 즉 지도에 표시된 영역에서 자오선이 평행하다고 가정합니다. 수백 킬로미터에 걸쳐있는지도에서는 ​​정확하지 않을 수 있으며 대륙 규모지도에서는 ​​매우 잘못 될 수 있습니다.