Улучшение производительности листовки - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь построить карту с помощью Leaflet на Flexdashboard, вывод: html.У меня есть 50000 точек данных, которые мне нужно построитья попытался использовать 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

Любая помощь, пожалуйста.

1 Ответ

0 голосов
/ 08 января 2019

Для leaflet.glify вам нужно установить self_contained: false в заголовке yaml:

---
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)
```
...