Как добавить 3D-здания в Leaflet - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь включить плагин листовки OSMBuildings в блестящее приложение. Здания появляются, но они расположены за базовой картой.

Вы можете увидеть здания, если вы увеличите или уменьшите масштаб или удалите линию с помощью addTiles() %>%.

Интересно, когда addTiles() удалено, масштабирование больше не работает, но наклон работает. С опрокидыванием базовой карты больше не работает.

Итак:

  • Как я могу расположить здания поверх плиток OSM?
  • Как можно наложить слой зданий увеличивать / уменьшать, изменять масштаб и исчезать при определенных уровнях увеличения?

library(shiny)
library(htmlwidgets)
library(leaflet)

ui <- fluidPage(
  tags$head(tags$link(href = "https://cdn.osmbuildings.org/4.0.0/OSMBuildings.css")),
  tags$head(tags$script(src = "https://cdn.osmbuildings.org/4.0.0/OSMBuildings.js")),
  leafletOutput("map")
)

server <- function(input, output, session) {
  output$map <- renderLeaflet({
    leaflet() %>%
      addTiles() %>%
      setView(lat = 52.52000, 13.41000, zoom = 15) %>%
      onRender("function(el, x) {
                  var osmb = new OSMBuildings({
                    container: 'map',
                    position: { latitude: 52.52000, longitude: 13.41000 },
                    tilt: 30,
                    minZoom: 14,
                    maxZoom: 20,
                    zoom: 15
                  })

                  osmb.addGeoJSONTiles('http://{s}.data.osmbuildings.org/0.2/anonymous/tile/{z}/{x}/{y}.json', {
                    fixedZoom: 15,
                    minZoom: 14,
                    maxZoom: 20
                  });
                }"
               )
  })
}

shinyApp(ui, server)
...