提高传单的性能
Improving Performance of a leaflet
我正在尝试在 Flexdashboard 上使用 Leaflet 绘制地图,输出:html。我有 50,000 个数据点需要绘制。我尝试使用 addCircleMarker(lng,lat)
,它在 Base R 中工作,但是当在 HTML 文件中生成输出时,地图的性能非常慢。我也尝试使用 leafletOptions(preferCanvas = TRUE)
但性能仍然很慢。
我还尝试使用不同的 library(leaflet.glify)
来提高性能,因为 leaflet.glify
可以处理大型数据集并使用 addGlifyPoints(data, color = cbind(0, 0, 0.1), group = "All cases")
绘制地图。但我无法在 HTML 输出中 运行 它。它为我提供了以下错误。
pandoc: Could not determine mime type for `/Library/Frameworks/R.framework/Versions/3.5/Resources/library/leaflet.glify/htmlwidgets/Leaflet.glify/src/shader/fragment/dot.glsl'
CallStack (from HasCallStack):
error, called at src/Text/Pandoc/SelfContained.hs:156:35 in pandoc-1.19.2.1-JIeRA5EnQv74mk86CvVbbp:Text.Pandoc.SelfContained
Error: pandoc document conversion failed with error 1
Execution halted
请帮忙。
对于 leaflet.glify
你需要在你的 yaml 中设置 self_contained: false
header:
---
title: "testing gl"
output:
flexdashboard::flex_dashboard:
vertical_layout: fill
self_contained: false
---
### Chart 1
```{r}
library(mapview)
library(leaflet)
library(leaflet.glify)
library(sf)
n = 1e5
df1 = data.frame(id = 1:n,
x = rnorm(n, 10, 3),
y = rnorm(n, 49, 1.8))
pts = st_as_sf(df1, coords = c("x", "y"), crs = 4326)
options(viewer = NULL) # view in browser
system.time({
m = leaflet() %>%
addProviderTiles(provider = providers$CartoDB.DarkMatter) %>%
addGlifyPoints(data = pts, group = "pts") %>%
addMouseCoordinates() %>%
setView(lng = 10.5, lat = 49.5, zoom = 6) %>%
addLayersControl(overlayGroups = "pts")
})
m
```
### Chart 2
```{r}
plot(cars)
```
我正在尝试在 Flexdashboard 上使用 Leaflet 绘制地图,输出:html。我有 50,000 个数据点需要绘制。我尝试使用 addCircleMarker(lng,lat)
,它在 Base R 中工作,但是当在 HTML 文件中生成输出时,地图的性能非常慢。我也尝试使用 leafletOptions(preferCanvas = TRUE)
但性能仍然很慢。
我还尝试使用不同的 library(leaflet.glify)
来提高性能,因为 leaflet.glify
可以处理大型数据集并使用 addGlifyPoints(data, color = cbind(0, 0, 0.1), group = "All cases")
绘制地图。但我无法在 HTML 输出中 运行 它。它为我提供了以下错误。
pandoc: Could not determine mime type for `/Library/Frameworks/R.framework/Versions/3.5/Resources/library/leaflet.glify/htmlwidgets/Leaflet.glify/src/shader/fragment/dot.glsl'
CallStack (from HasCallStack):
error, called at src/Text/Pandoc/SelfContained.hs:156:35 in pandoc-1.19.2.1-JIeRA5EnQv74mk86CvVbbp:Text.Pandoc.SelfContained
Error: pandoc document conversion failed with error 1
Execution halted
请帮忙。
对于 leaflet.glify
你需要在你的 yaml 中设置 self_contained: false
header:
---
title: "testing gl"
output:
flexdashboard::flex_dashboard:
vertical_layout: fill
self_contained: false
---
### Chart 1
```{r}
library(mapview)
library(leaflet)
library(leaflet.glify)
library(sf)
n = 1e5
df1 = data.frame(id = 1:n,
x = rnorm(n, 10, 3),
y = rnorm(n, 49, 1.8))
pts = st_as_sf(df1, coords = c("x", "y"), crs = 4326)
options(viewer = NULL) # view in browser
system.time({
m = leaflet() %>%
addProviderTiles(provider = providers$CartoDB.DarkMatter) %>%
addGlifyPoints(data = pts, group = "pts") %>%
addMouseCoordinates() %>%
setView(lng = 10.5, lat = 49.5, zoom = 6) %>%
addLayersControl(overlayGroups = "pts")
})
m
```
### Chart 2
```{r}
plot(cars)
```