在地图图块上绘制空间多边形时如何调整透明度?
Posted
技术标签:
【中文标题】在地图图块上绘制空间多边形时如何调整透明度?【英文标题】:how to adjust transparency when plotting spatial polygons over map tiles? 【发布时间】:2013-07-29 20:23:30 【问题描述】:在开放街道地图地图图块上绘制空间多边形时如何调整透明度? 我可以用 ggmaps 做到这一点,但我必须分别做每种颜色。
从 OpenStreetMap 包中获取地图图块的代码:
map = openproj(openmap(
c(lat= max(as.numeric(as.character(zip$INTPTLAT10))),
lon= min(as.numeric(as.character(zip$INTPTLON10)))),
c(lat= min(as.numeric(as.character(zip$INTPTLAT10))),
lon= max(as.numeric(as.character(zip$INTPTLON10)))),
type="osm"))
plot(map)
热图:
zip=readShapePoly( "tl_2010_04_zcta510.shp" )
zip$groups2=sample(1:10, length(zip[,1]), replace=T)
brks=classIntervals(zip$groups2, n=9, style="quantile")$brks
cols <- colors[findInterval(zip$groups2, brks, all.inside=TRUE)]
plot( zip , col = cols , axes=F , add=TRUE)
这是 2010 年美国人口普查中的 phoenix .shp 文件。
【问题讨论】:
您至少没有以明显的方式提供“zip”。您是如何从“2010 年美国人口普查的phoenix .shp 文件”中制作“zip”的。还不清楚您是否了解透明度通常用第四个十六进制数字对编码,例如;"#D9D9D980"
你从这里下载phoenix .shp文件:goo.gl/DgY0H(文件名为tl_2010_04_zcta510.shp)。然后使用 readShapePoly() 将形状文件读入 R。
该页面上没有该名称的文件。
去这里:census.gov/cgi-bin/geo/shapefiles2010/main。选择 zip 列表,然后选择 Arizona 下载文件。
【参考方案1】:
我遇到了一些困难,找到了将指定文件作为 zip 文件的 ftp 站点(在其他方向出现之前):ftp://ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010/
随后又遇到了更多困难,因为需要另外两个包来运行上面的代码:
require(maptools)
require(classInt)
RGB 编码颜色值中的透明度信息是 8 位 nex-number 中的最后两个十六进制代码条目,存储为字符值。附加小于“FF”的值会导致某种程度的透明度,但事实证明“NA”值实际上并未正确附加,需要重置为 NA_character_:
cols <- paste0( cols, "20") # as suggested in my earlier comment
plot(map)
plot( zip , col = cols , axes=F , add=TRUE)
#Error in polypath(x = mcrds[, 1], y = mcrds[, 2], border = border, col = col, :
# invalid color name 'NA20'
is.na(cols) <- grepl("NA", cols)
plot( zip , col = cols , axes=F , add=TRUE)
我没有发布将 7MB pdf 文件转换为 PNG 格式的 1.4MB 文件,而是放大了亚利桑那州的东北角并截取了屏幕截图:
通过透明的叠加层可以看到地理特征和道路。那是 US-40 在地块下部的弗拉格斯塔夫和金曼之间运行。
【讨论】:
以上是关于在地图图块上绘制空间多边形时如何调整透明度?的主要内容,如果未能解决你的问题,请参考以下文章