2013-09-28 4 views
4

현재 R 프로젝트에서 나는 ggmap 패키지를 사용하여지도를 다운로드하고 표시합니다. 나를 귀찮게하는 것은 당신이 google 등에서지도를로드하기 위해 인터넷 액세스가 필요하다는 것입니다. 인터넷에서지도를로드하고 저장하여 오프라인에서도 작업 할 수 있습니다. 이상적인 솔루션은 get_map() (또는 관련 명령) 사이의 코드 양을 최소화하고 저장된 맵을 ggmap() (또는 관련 명령) 내에서 사용해야합니다.ggmap, ggimage ... -지도 저장 및로드 R

는 그 get_map() 이미지로지도를 저장하는 filename 속성이 이미 알고, 나는 또한 ggimage() 방법을 알고있다 (I 실제로 불구하고, 그것으로 일한 적이 없어요.)

간단한 방법이 있나요 지도를 저장하거나,이 두 가지 도구를 사용할 수 있습니까? 그렇다면 어떻게 효과적으로 사용할 수 있습니까?

답변

3

같은지도가 한 번에 수십 번씩로드 될 때까지 기다렸다가 같은 질문을 보았습니다.

R에 개체를 저장할 수는 있지만 함수 내부에지도를 저장하는 데있어 약간의 시간이 필요합니다. 여기에 내가 생각해 낸 점이 있습니다. 개선이 가능한지 알고 싶습니다.

이 함수는 Locale 문자열 (기본적으로지도의 이름을 지정), 좌표 및 확대/축소 수준을 찾습니다. 그런 다음 함수는 이미 맵이 저장된 파일로 존재하는지 확인한 후로드합니다. 지도가 디스크에 없으면 Google에서 다운로드 한 다음 파일에 저장합니다.

파일에서로드하는 트릭이 없지만지도 객체를 디스크에 저장하기 전에 assign 함수에 .GlobalEnv을 지정하지 않으면 해당 R이 잘못된 환경에 충실하게로드됩니다.

load.map <- function(Locale, Lon, Lat, MapZoom){ 
    MapName <- paste("Map", gsub(" ", "", Locale), MapZoom, sep = "") 

    FileName <- paste(MapName,".RData", sep = "") 
    if (file.exists(FileName) & ReloadMaps == 0) 
    { 
    load(FileName, envir = .GlobalEnv) 
    } else 
    { 
    Map <- get_googlemap(center=c(lon = Lon, lat = Lat), zoom=MapZoom, scale = 2, 
     size = c(640, 640), maptype = "roadmap", color = "color", format = "png8") 
    assign(MapName, Map, envir = .GlobalEnv) 
    save(list = MapName, file = FileName, envir = .GlobalEnv) 
    } 
}