【问题标题】:Issue plotting (simple) polygons with leaflet in r在 r 中使用传单绘制(简单)多边形
【发布时间】:2017-06-25 23:06:17
【问题描述】:

我想使用小册子帮助我在英国绘制热图多边形,但是小叶()%>%addPolygons(...) 给了我奇怪的输出,即使对于一个非常简单的情况也是如此。

我正在使用以下代码在传单中绘制一个简单的三角形,然后在 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="polygon", 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"))

在我看来,我好像缺少一个参数或其他东西,但我终其一生都无法弄清楚发生了什么。任何帮助表示赞赏。

谢谢, 汤姆

【问题讨论】:

    标签: r leaflet polygons sp


    【解决方案1】:

    显然传单只处理长/纬度,即使没有底图。 从 shape 文件开始(带有 Eastings 和 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)
    

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-08
      • 2018-08-31
      • 2015-01-01
      • 2019-04-13
      相关资源
      最近更新 更多