首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RgoogleMaps中使用PlotPolysOnStaticMap函数:绘制我的多边形返回“孔”中的颜色

在RgoogleMaps中使用PlotPolysOnStaticMap函数:绘制我的多边形返回“孔”中的颜色
EN

Stack Overflow用户
提问于 2014-08-25 03:18:51
回答 1查看 540关注 0票数 0

正如标题所说,我正在尝试使用RgoogleMaps中的PlotPolysonStaticMap函数绘制多边形。我的多边形是世界野生动物基金会(WWF)生态区域的更大数据集的子集。因为我的生态区的边界限制了另一个生态区的边界,所以在我的多边形中间应该有一个“洞”或空白。当我使用plot函数绘制shapefile时,孔显示为白色。当我在RgoogleMaps的底图上绘制多边形时,洞显示为彩色,我不知道如何更改这一点。

完整的地图可以在here上找到。它需要下载并解压,我的代码才能工作。

代码语言:javascript
复制
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)

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-08-26 04:51:14

我不太了解RgoogleMaps包(错误似乎来自于复杂多边形的函数PlotPolysOnStaticMap行为),所以我不能准确地回答你的问题,但我希望你可以用另一种方式来玩OpenStreetMap

代码语言:javascript
复制
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)

结果就是

我希望它能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25475404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档