0

タイトルが示すように、RgoogleMaps の PlotPolysonStaticMap 関数を使用してポリゴンをプロットしようとしています。私のポリゴンは、世界自然保護基金 (WWF) のエコリージョンのより大きなデータセットからのサブセットです。私のエコリージョンの境界は別のエコリージョンの境界を制限しているため、ポリゴンの真ん中に「穴」または空白スペースがあるはずです。プロット関数を使用してシェープファイルをプロットすると、穴が白く表示されます。RgoogleMaps のベース マップ上にポリゴンをプロットすると、穴が色付きで表示され、これを変更する方法がわかりません。

完全な地図はこちらから入手できます。私のコードが機能するには、ダウンロードして解凍する必要があります。

library(rgdal)
library(RgoogleMaps)
library(PBSmapping)

WWF<-readOGR(dsn="wwf_terr_eco.shp",layer="wwf_terr_eco"
ACADIA<-WWF[WWF@data$ECO_NAME%in%c("New England-Acadian forests"),]
ACADIA <- SpatialPolygons(ACADIA@polygons,proj4string=ACADIA@proj4string)

add.alpha <- function(col, alpha=1){
if(missing(col))
stop("Please provide a vector of colours.")
apply(sapply(col, col2rgb)/255, 2, 
    function(x) 
      rgb(x[1], x[2], x[3], alpha=alpha))  
 }

mycol=add.alpha("#507415",alpha=.4)

terrMap<-GetMap(center=c(46,-66.8),zoom=6,maptype="terrain")
PlotOnStaticMap(terrMap) 
PlotPolysOnStaticMap(terrMap, ACADIA_ONLY,col =mycol ,border = NULL, lwd = 0.25,
                 verbose = T)

ありがとう!

4

1 に答える 1

0

RgoogleMaps私はパッケージをよく知らないので(エラーはPlotPolysOnStaticMap複雑なポリゴンでの関数の動作に起因するようです)、質問に正確に答えることができませんが、別の方法で遊ぶことができますOpenStreetMap

library(rgdal)
library(OpenStreetMap)

WWF<-readOGR(dsn="/home/delaye/Téléchargements/official/",layer="wwf_terr_ecos")
ACADIA<-WWF[WWF@data$ECO_NAME%in%c("New England-Acadian forests"),]

##reprojection with osm system
ACADIA<-spTransform(ACADIA,osm())

##alpha definition
add.alpha <- function(col, alpha=1){
  if(missing(col))
    stop("Please provide a vector of colours.")
  apply(sapply(col, col2rgb)/255, 2, 
        function(x) 
          rgb(x[1], x[2], x[3], alpha=alpha))  
}
mycol=add.alpha("#507415",alpha=.4)

##load data from osm (you can play with type='bing' to)
map.osm<-openmap(c(49.849184,-75.214844),c(42.013233,-59.877930),type="osm")
plot(map.osm)
##add you datalayer on the plot
plot(ACADIA,add=T,col=mycol)

結果は

ここに画像の説明を入力

それが役立つことを願っています

于 2014-08-25T20:51:14.120 に答える