marker_icon может содержать ошибки в вызове google_map_update - PullRequest
0 голосов
/ 02 мая 2018

Задача

У меня есть data.frame, который содержит столбец с именем "icon" со ссылкой в ​​символьном формате точно так же, как "http://i.imgur.com/UxVFMcQ.png".

Я передаю имя столбца в вызов google_map_update в моем блестящем приложении:

output$map <- renderGoogle_map({
      google_map(
        location = c(43.761539, -79.411079),
        key = api_key,
        scale_control = F,
        street_view_control = F
      ) 
    })

  observeEvent(
    input$updateData,  # a button that updates the data 
    {              

      googleway::google_map_update(map_id = "map") %>%
        clear_markers() %>%
        googleway::add_markers(
          lat = "lat.x",
          lon = "long.x",
          marker_icon = "icon", 
          data = data %>% filter(gender %in% input$gender)
     }
  )
)

Однако, когда я строю точки, ничего не видно. Глядя на консоль Chrome, я вижу ошибку 404, ссылка не найдена. Я все еще вижу кластеризованные точки (желтый, красный и синий сигналы с цифрой), но не отдельные маркеры.

Я попробовал следующее

  1. Не включая s в https://
  2. Вместо этого ссылаясь на локальный файл, вызывая его двумя способами: абсолютным и относительным
  3. Использование совершенно другой ссылки, которую используют другие сайты (http://maps.google.com/mapfiles/kml/shapes/parking_lot_maps.png)
  4. Глядя на SO, но большинство вопросов о маркере карты Google написаны на Javascript
  5. При использовании не блестящих пользовательских маркеров работают:
google_map(
  location = c(43.761539, -79.411079),
) %>%
googleway::add_markers(
  data = data,
  marker_icon = "icon",
  lat = "lat.x",
  lon = "long.x",
  cluster = T
)

1 Ответ

0 голосов
/ 03 мая 2018

Я не могу повторить вашу ошибку. Вот рабочий пример, когда маркеры обновляются, но сохраняют значение icon

library(shiny)
library(googleway)

ui <- fluidPage(
  google_mapOutput(outputId = "map", height = "800px"),
  actionButton(inputId = "btn", label = "some people")
)

server <- function(input, output) {

  tram_stops$icon <- "http://i.imgur.com/UxVFMcQ.png"
  # set_key("YOUR_GOOGLE_API_KEY)

  output$map <- renderGoogle_map({
    google_map(data = tram_stops) %>%
      add_markers(lat = "stop_lat", lon = "stop_lon", marker_icon = "icon")
  })

  observeEvent(input$btn, {

    myRow <- sample(1:nrow(tram_stops), 10)

    google_map_update(map_id = "map") %>%
      clear_markers() %>%
      add_markers(data = tram_stops[myRow, ], marker_icon = "icon")
  })
}

shinyApp(ui, server)

Откроется карта пользовательских маркеров

enter image description here

Затем, нажав кнопку some people, отбирает десять строк данных, а затем использует google_map_update для обновления существующей карты

enter image description here

enter image description here


devtools::session_info()
Session info -------------------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.4.4 (2018-03-15)
 system   x86_64, darwin15.6.0        
 ui       RStudio (1.1.447)           
 language (EN)                        
 collate  en_AU.UTF-8                 
 tz       Australia/Melbourne         
 date     2018-05-03                  

Packages -----------------------------------------------------------------------------------------------------
 package     * version date       source                          
 base        * 3.4.4   2018-03-15 local                           
 ...<snip>...                
 googleway   * 2.6     2018-04-29 local                           
 shiny       * 1.0.5   2017-08-23 cran (@1.0.5) 
...