我想使用传单帮助我在英国绘制热图多边形,但是传单()%>%addPolygons(...)给了我奇怪的输出,即使对于一个非常简单的情况。 / p>
我使用以下代码在传单中绘制一个简单的三角形,然后使用ggplot2。 ggplot2没有问题,但是传单有时只给我一条直线而不是三角形。 传单代码:
l <- leaflet()
shapes <- unique(df$shape)
for (shape in shapes) {
d <- df[df$shape == shape, , drop = FALSE]
l <- l %>% addPolygons(lat = d$lat, lng = d$lng,noClip=TRUE)
}
l
geom_polygon代码: qplot(lng,lat,data = df,geom =&#34; polygon&#34;,group = shape)
如果我使用此输入,那么我从两个pacakges获得合理的输出:
df <- data.frame(lat = c(1, 2, 3), lng = c(2, 3, 1), shape = c("triangle", "triangle", "triangle"))
然而,即使使用简单的修改也会在传单中产生简单的水平线(但ggplot2中的正确三角形):
df <- data.frame(lat = c(100, 200, 300), lng = c(200, 300, 100), shape = c("triangle", "triangle", "triangle"))
听起来我觉得我错过了一个参数或者什么东西,但是我不知道我的生活是怎么回事。任何帮助表示赞赏。
谢谢, 汤姆
答案 0 :(得分:2)
显然,即使没有基本地图,传单也只处理长/纬度。 从形状文件(使用Eastings&amp; Northings)开始,以下内容将读入shapefile,转换为longlat,然后使用小叶成功绘制多边形:
shapefile <- readOGR("filepath_here", "shapefile_here")
shapeData <- spTransform(shapefile, CRS("+proj=longlat +datum=WGS84 +no_defs"))
leaflet() %>%
addPolygons(data=subset(shapeData, POSTAREA %in% c('SW')),weight=2)