2017-05-23 5 views
0

geom_polygonからggplot2にマップされたマップをGoogleマップAPIと組み合わせるときに問題があります。それぞれの地図を独自にプロットすると、奇妙なものは表示されませんが、私がそれらを組み合わせると、いくつかの線(直線)が現れ、私が強調しようとする境界を台無しにします。Google MapとSpatial Polygonsを組み合わせたときにぼやけたポリゴンの形

enter image description here

1)黒枠でpolygosを構築するために使用して、データ - 私は、このlinkから来ます。ファイルの正確なURLは私のコードの下にあります。時にはそれゆえデータをダウンロードするための以下のコードは動作しない可能性があり、手動でファイルを解凍する必要がある:

path <- getwd() 
fileName <- "R05.zip" 
if (!file.exists(fileName)) { 
    urlFile = "http://www.censo2017.cl/wp-content/uploads/2016/12/R05.zip" 
      download(urlFile, dest = "./R05.zip", mode ="wb") 
} 
if (!dir.exists("./R05")) { 
    unzip("R05.zip") 
} 

2)次に、私は - 私は、多角形を構築れるシェープファイルをロードします。

distritos <- readOGR(dsn= paste(getwd(), "/R05", sep = ""), 
        layer="Distritos_Censales", 
        encoding = "UTF-8", stringsAsFactors = FALSE) 

3)と

distritos <- distritos[[email protected]$DESC_COMUN=="QUILPUÉ", ] 

4に興味行政区分 - 私を選択し)そして地区(ポリゴン)に興味 - 私:

distritos <- distritos[[email protected]$DESC_DISTR=="EL RETIRO" | 
          [email protected]$DESC_DISTR=="BELLOTO NORTE" | 
          [email protected]$DESC_DISTR=="VALENCIA" | 
          [email protected]$DESC_DISTR=="MENA" | 
          [email protected]$DESC_DISTR=="BELLOTO SUR" | 
          [email protected]$DESC_DISTR=="ALTO QUILPUÉ" | 
          [email protected]$DESC_DISTR=="EL SAUCE", ] 

5) distritosの境界からベースマップを構築します。そのため、 は、私が一緒にggplot2

distritos.fort <- fortify(distritos, region = "DESC_DISTR") 

7)をプロットして、両方のマップを、それをプロットするためにシェープファイルデータを用意this StackOverflowの質問

bbox(distritos) 
MapCenter <- function(x1, y1, x2, y2){ 
    center.x <- x1 + ((x2 - x1)/2) 
    center.y <- y1 + ((y2 - y1)/2) 
    center <- c(center.x, center.y) 
    center 
} 
mcdistritos <- MapCenter(bbox(distritos)[1,1], bbox(distritos)[2,1], 
bbox(distritos)[1,2], bbox(distritos)[2,2]) 
basemap <- get_googlemap(mcdistritos, zoom = 13, 
          maptype = "roadmap", 
          color = "bw", 
          style = "feature:administrative|element:labels|visibility:off") 
basemap <- ggmap(basemap , extent = "device") 

6)から地図の中心を取得する機能を使用します

彼らはベースにフィットdidn't原因ポリゴン境界が台無しにされた場合には、私は、基本地図をズームアウトを試み
basemap + 
geom_polygon(data = distritos.fort, 
        aes(x = long, y = lat), 
         colour = "black", 
          fill = NA) + coord_map() 

私は同じ結果を得ました。ちょっと小さい地図でした。誰もそれを修正する方法を知っていますか?

+1

と思っています。あなたはdistritos @ data $ DESC_DISTR == "EL RETIRO"を置き換えることができます。 distritos @ data $ DESC_DISTR == "BELLOTO NORTE" | distritos @ data $ DESC_DISTR == "VALENCIA" | DISC_DISTR%@ DESC_DISTR =% "DISC_DISTR =" "MENA" | ... '%の中の' disitros @ data $ DESC_DISTR% 、...) ' – Gregor

答えて

2

審美的にグループマッピングを追加する必要があります。例えば

geom_polygon(data = distritos.fort, 
        aes(x = long, y = lat, group = group), 
         colour = "black", 
          fill = NA) + coord_map() 

現在、1つの連続したパスがあります。グループの美学は、あなたのデータを異なるポリゴンに分けます。

データを抽出できませんでしたので、グループに必要なマッピングがわかりません。しかし、他の例を見ると、&のドキュメントを見て、私はそれがgroup = group

+0

Jeremy!ありがとうございます。グループ引数は' aes'内にあるはずですが、basemap + geom_polygon(data = distritos.fort、aes(x = long、y = lat、group = group) 、color = "black"、fill = NA)+ coord_map() 'は魅力的です。 – csmontt

+0

あなたはそうです、それは私の意図でした!私の悪い。 - 訂正済み –

関連する問題