0

我正在使用传单包在我闪亮的应用程序上制作 chloropleth us state map。我发现渲染地图非常慢。谷歌搜索后,看起来 shapefile 可能过于复杂和简化,这可能会使其速度更快。根据这篇文章,简化 shapefile 可能是答案。

读取形状文件工作正常。我能够渲染我的传单地图。

states_shape <- tigris::states(cb = TRUE, resolution='500k')
leaflet(states_shape) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(fillColor = "white",
              color = "black",
              weight = 0.5) %>%
  setView(-98.5795, 39.8282, zoom=3)

我试图简化我的 shapefilermapshaper::ms_simplify

states_shape_simple <- rmapshaper::ms_simplify(states_shape, keep = 0.05, keep_shapes = TRUE)

我收到如下错误:

Error in FUN(X[[i]], ...) : isTRUE(gpclibPermitStatus()) is not TRUE

我不知道这意味着什么以及该怎么做。有谁知道为什么会发生这种情况以及如何使其工作?非常感谢!

4

1 回答 1

1

以下应该有效:

# packages
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(leaflet)

# data
states_shape <- tigris::states(cb = TRUE, resolution='500k', class = "sf")

# simplify
states_shape_simple <- rmapshaper::ms_simplify(states_shape, keep = 0.05, keep_shapes = TRUE)
states_shape_simple <- st_transform(states_shape_simple, 4326)

# plot
leaflet(states_shape_simple) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(fillColor = "white",
              color = "black",
              weight = 0.5) %>%
  setView(-98.5795, 39.8282, zoom = 3)

reprex 包(v0.3.0)于 2020-05-27 创建

我补充说,states_shape_simple <- st_transform(states_shape_simple, 4326)因为我收到一条警告消息,leaflet说对象states_shape_simple有一个无效的数据。我不知道你是否面临同样的警告信息。

无论如何,如果您想阅读有关与 R 之间的差异sfsp检查Geoocomputation 的第 1 章(也许还有第 6 章有关重投影的内容,例如st_transform)。我不知道为什么它会失败sp,也许你可以问包裹管理员

于 2020-05-27T15:11:51.080 回答