在地图图块上绘制空间多边形时如何调整透明度?

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 在地块下部的弗拉格斯塔夫和金曼之间运行。

【讨论】:

以上是关于在地图图块上绘制空间多边形时如何调整透明度?的主要内容,如果未能解决你的问题,请参考以下文章

使用 MapKit 框架在谷歌地图上绘制多边形

从地图中删除多边形

iphone多边形显示数

在 Flutter 中设置谷歌地图多边形的不透明度颜色

Mapbox 地图画布上的自定义绘图

如何使用坐标数组在谷歌地图 API 中绘制多边形?