Пути полетов в Leaflet - PullRequest
       6

Пути полетов в Leaflet

0 голосов
/ 18 сентября 2019

Я хотел бы изобразить местоположения штаб-квартиры в виде кружков и линий, соединяющих местоположения штаб-квартиры с их ответвлениями в листовке.Данные структурированы точно так же, как пример маршрута полета для графика (см. Пример:

https://plot.ly/r/lines-on-maps/).

Мне нужна интерактивная карта, которая показывает географию (реки, улицы, города и т. д.) из Канзаса, части штата Небраска, части штата Колорадо и части штата Миссури. Мне бы хотелось, чтобы появлялись всплывающие окна с описанием мест.Поэтому я думаю, что Leaflet может быть лучше, чем сюжет для этой задачи.

Вот что у меня есть для сюжета: enter image description here

Это мой код для сюжетной карты:

library(plotly)
library(dplyr)


# HQ locations
HQ <- read.csv('HQ.csv', stringsAsFactors=FALSE, fileEncoding="UTF-8-BOM")
j <- c(17:18)
HQ[ , j] <- apply(HQ[ , j], 2,            # Specify own function within apply
                       function(x) as.numeric(as.character(x)))

# Storage Locations from HQ
Storage <- read.csv('Storage.csv', stringsAsFactors=FALSE, fileEncoding="UTF-8-BOM")

#COLUMN NUMBER

Storage$id <- seq_len(nrow(Storage))
i <- c(16:18)
Storage[ , i] <- apply(Storage[ , i], 2,            # Specify own function within apply
                       function(x) as.numeric(as.character(x)))

colnames(HQ)

# map projection
geo <- list(
  scope = 'usa',
  projection = list(
    type = 'albers usa'),
  showland = TRUE,
  landcolor = toRGB("lightgray"),
  showlaKes = T,
  lakecolor = toRGB('white'),
  lonaxis = list(range = c(-108, -95)),
  lataxis = list(range = c(37, 42)))


p <- plot_geo(locationmode = 'USA-states', color = I("purple")) %>%
  add_markers(
    data = HQ, x = ~Lng_HQ, y = ~Lat_HQ, text = ~paste('</br><b> Co-op Name:</b> ',

                                                       Cooperative,
                                                        '</br><b> Co-op HQ Location:</b> ', Headquarter,
                                                        '</br><b> Grain Capacity (bu):</b> ', Grain.Capacity..in.bushels.,
                                                        '</br><b> Grain Storage Locations:</b> ', CNGL
                                                        ),
    size = ~CNGL, hoverinfo = "text", alpha = 0.5
  ) %>%
  add_segments(
    data = group_by(Storage, id),
    x = ~Lng_HQ, xend = ~Lng,
    y = ~Lat_HQ, yend = ~Lat,
    alpha = 0.3, size = I(1), hoverinfo = "text", text =~paste('</br><b> Co-op Name:</b> ',

                                                               Cooperative,
                                                               '</br><b> Co-op Branch Location:</b>', Storage$Branch,
                                                               '</br><b> Grain Capacity (bu):</b> ', Storage$Grain.Capacity..in.bushels.)) %>%
  layout(
    title = ' <b>Map of All Cooperatives with Grain Locations</b><br>(Hover for Cooperative & Grain Storage Details)',
    geo = geo, showlegend = F, autosize = F, height=1000, width=1000, margin = m 
  )

p
...