habe ich eine Arbeits einfach Broschüre Karte in glänzend, wo die glänzenden server.R
wie folgt aussieht:Wie beschleunigen Faltblatt auf einem glänzenden Server
(bitte auf die RDS-Daten aus Dropbox für ein reproduzierbares Beispiel erhalten)
Server.R
test_polygons <- readRDS('test_polygons.RDS') # Sind die Polygon-Shapefiles transformiert auf WGS84 für Bezirke
#some merging....
#we use sample data instead
[email protected]$sample <- runif(nrow([email protected]))
#Create some nice popups
world_popup <- function(modell){
niveau <- [email protected][, modell]
probs <- seq(0, 1, length.out = 5 + 1)
niveau <- cut(niveau, breaks=quantile(niveau, probs, na.rm = TRUE, names = FALSE), labels=paste('level', 0:4), include.lowest = TRUE)
niveau <- as.character(niveau)
niveau <- factor(niveau, labels=)
paste0("<strong>Bezirk: </strong>",
as.character([email protected]$ID),
"<br><strong><br>",
"</strong>",
"<strong>Level: </strong>",
niveau
)
}
tiles <- "http://{s}.tile.stamen.com/toner-lite/{z}/{x}/{y}.png"
attribution <- 'Map tiles by <a target="_blank" href="http://stamen.com">Stamen Design</a>, under <a target="_blank" href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Map data by <a target="_blank" href="http://www.naturalearthdata.com/">Natural Earth</a>.'
# produce the leaflet map ====
pal <- colorQuantile("YlOrRd", NULL, n = 5)
m.sample <- leaflet(data = test_polygons) %>%
addTiles(urlTemplate = tiles,
attribution = attribution) %>%
setView(13.782778, 47.61, zoom = 7) %>%
addPolygons(fillColor = ~pal(test_polygons$sample),
fillOpacity = 0.8,
color = "#000000",
weight = 1,
popup = world_popup('sample'))
# start the server part
server <- function(input, output, session) {
output$query <- renderText({
as.character(parseQueryString(session$clientData$url_search))
})
output$mymap <- renderLeaflet({
m.sample
})
}
ui.R
Während der Benutzeroberfläche ist recht einfach:
require(leaflet)
require(shiny)
ui <- fluidPage(
column(width=12,
leafletOutput("mymap", height="200px")#, height="700px")
)
)
Dieses auf meinem Desktop-Computer in Ordnung funktioniert. Sobald ich jedoch versuche, auf meinem Server darauf zuzugreifen, lädt sich die Flugblattkarte furchtbar langsam auf. Besonders wenn ich die Höhe auf 100% ändere, hört es überhaupt auf zu laden. Also hier sind meine Fragen:
- Wie beschleunige ich den Ladevorgang.
- Ist es möglich, einige Teile im Voraus zu laden, da in diesem Zusammenhang alles reaktiv ist.
- Kann ich eine Karte erstellen, die unabhängig von glänzend ist - wahrscheinlich wird diese schneller geladen.
- Ist es möglich, dass meine Polygone zu viele Details haben?
Vielen Dank für Ihre Hilfe!
Ich denke, das Polygon ist riesig für eine Webanwendung. Versuchen Sie zunächst, das Polygon zu vereinfachen und zu überprüfen, ob es sich verbessert. –
Sie können Mapview, gebaut auf Prospekt, aber schneller mit großem Dataset betrachten (ich denke, dass sie js mit größeren Datensätzen verwenden) – MLavoie