Bibliotecas Necessárias

require(RJSONIO)
library(jsonlite)
library(magrittr)
library(dplyr)
library(leaflet)
rm(list = ls(all.names = TRUE))

Carga de Paradas de um polígino definido

## paradas ##
path = paste('http://www.poatransporte.com.br/php/facades/process.php?a=tp&p=((-30.14296222668432,%20-51.87917968750003),%20(-29.79200328961529,%20-50.56082031250003))))')
path
## [1] "http://www.poatransporte.com.br/php/facades/process.php?a=tp&p=((-30.14296222668432,%20-51.87917968750003),%20(-29.79200328961529,%20-50.56082031250003))))"
json_file <- fromJSON(path)

paradas = as.data.frame(json_file)
paradas[1, ]
##   codigo              latitude             longitude terminal
## 1      1 -30.06408281140900000 -51.17093728089600000        N
##                                                               linhas
## 1 5588, 5602, 345-2, 3462-1, SANTA CATARINA, SAO JOSE/SANTA CATARINA
paradas$latitude = as.numeric(as.character(paradas$latitude))
paradas$longitude  = as.numeric(as.character(paradas$longitude))
dim(paradas)
## [1] 4595    5
paradas2 = paradas[paradas$latitude < -30.0110, ]      # norte
paradas2 = paradas2[paradas2$latitude > -30.0440, ]    # sul
paradas2 = paradas2[paradas2$longitude < -51.14990, ]  # direita
paradas2 = paradas2[paradas2$longitude > -51.20000, ] #esquerda
dim(paradas2)
## [1] 428   5

Linhas atendidas pelas paradas retornadas

loop = c(1:length(paradas2$codigo))
for(i in loop){
  paradas2$IdLinha[i] = paradas2$linhas[[i]][1]
  paradas2$codLinha[i] = paradas2$linhas[[i]][2]
  paradas2$nomeLinha[i] = paradas2$linhas[[i]][3]
}
## linhas ##
linhas = c(5684, 5831, 5705, 5682, 5704, 5681, 5830, 5683, 5806, 5511,
           5435, 5418, 5858, 5959, 5640, 5644, 5805, 5498, 5434, 5609,
           5485, 5116,5686,5864,5489, 5818, 5493, 5495, 5869, 5606, 5491,
           5497, 5433, 5490, 5817, 5494, 5496, 5870, 5819, 5492, 5960,
           5833, 5961, 5421, 5471, 5422, 5680, 5436)
sort(linhas)
##  [1] 5116 5418 5421 5422 5433 5434 5435 5436 5471 5485 5489 5490 5491 5492 5493
## [16] 5494 5495 5496 5497 5498 5511 5606 5609 5640 5644 5680 5681 5682 5683 5684
## [31] 5686 5704 5705 5805 5806 5817 5818 5819 5830 5831 5833 5858 5864 5869 5870
## [46] 5959 5960 5961
length(linhas)
## [1] 48
linhas
##  [1] 5684 5831 5705 5682 5704 5681 5830 5683 5806 5511 5435 5418 5858 5959 5640
## [16] 5644 5805 5498 5434 5609 5485 5116 5686 5864 5489 5818 5493 5495 5869 5606
## [31] 5491 5497 5433 5490 5817 5494 5496 5870 5819 5492 5960 5833 5961 5421 5471
## [46] 5422 5680 5436

Obtenção de Linhas geradas

linhas_unique = list()
for (i in linhas) {
  path = paste('http://www.poatransporte.com.br/php/facades/process.php?a=il&p=', i, sep = "")
  json_file1 <- fromJSON(path)
  json_file1 <- lapply(json_file1, function(x) {
    x[sapply(x, is.null)] <- NA
    unlist(x)
  })
  json_file1$idlinha
  aa = do.call("rbind", json_file1)
  aa = as.data.frame(aa)
  lim = length(aa$lat) - 3
  aa = aa[4:lim,]
  aa$lat =  as.numeric(as.character(aa$lat))
  aa$lng =  as.numeric(as.character(aa$lng))
  assign(paste("linha_", i, sep=""),aa)
  linhas_unique = c(linhas_unique, json_file1$codigo)
}
class(paradas)
## [1] "data.frame"

Plotagem

map <- leaflet(data = paradas2) %>%
  addTiles() %>%
  addCircles(~paradas2$longitude, ~paradas2$latitude, popup=~paste("<br>Id", IdLinha, "<br>Cod", codLinha, "<br>Nome", nomeLinha,  sep = " "),
             weight = 1, radius=80, color= 'blue', stroke = TRUE, fillOpacity = 0.8, group = "Paradas")  %>%
    addPolylines(linha_5684[, 2],linha_5684[, 1],weight=2.25,color="#00ff00",popup=paste("Linha:","5684","<br>")     ,group = c("Todos","671-2") ) %>%
    addPolylines(linha_5497[, 2],linha_5497[, 1],weight=2.25,color="#0000ff",popup=paste("Linha:","5497","<br>") ,group = c("Todos","T2A9-1") )%>%
    addPolylines(linha_5433[, 2],linha_5433[, 1],weight=2.25,color="#6699ff",popup=paste("Linha:","5433","<br>") ,group = c("Todos","6172-2") )%>%
    addPolylines(linha_5490[, 2],linha_5490[, 1],weight=2.25,color="#00ffff",popup=paste("Linha:","5490","<br>") ,group = c("Todos","T2-2") )%>%
    addPolylines(linha_5817[, 2],linha_5817[, 1],weight=2.25,color="#33cccc",popup=paste("Linha:","5870","<br>") ,group = c("Todos","T2A2-2") )%>%
    addPolylines(linha_5494[, 2],linha_5494[, 1],weight=2.25,color="red",popup=paste("Linha:","5494","<br>") ,group = c("Todos","T2A-2") )%>%
    addPolylines(linha_5496[, 2],linha_5496[, 1],weight=2.25,color="#006600",popup=paste("Linha:","5490","<br>") ,group = c("Todos","T2-2") )%>%
    addPolylines(linha_5870[, 2],linha_5870[, 1],weight=2.25,color="#cc0066",popup=paste("Linha:","5870","<br>") ,group = c("Todos","T23-2") )%>%
    addPolylines(linha_5819[, 2],linha_5819[, 1],weight=2.25,color="#b30086",popup=paste("Linha:","5819","<br>") ,group = c("Todos","T22-2") )%>%
    addPolylines(linha_5492[, 2],linha_5492[, 1],weight=2.25,color="#4d3300",popup=paste("Linha:","5492","<br>") ,group = c("Todos","T29-2") )%>%
    addPolylines(linha_5960[, 2],linha_5960[, 1],weight=2.25,color="#7a7a52",popup=paste("Linha:","5960","<br>") ,group = c("Todos","T13-2") )%>%
    addPolylines(linha_5435[, 2],linha_5435[, 1],weight=2.25,color="#990099",popup=paste("Linha:","5435","<br>") ,group = c("Todos","620-1") )%>%
    addPolylines(linha_5498[, 2],linha_5498[, 1],weight=2.25,color="#660066",popup=paste("Linha:","5498","<br>") ,group = c("Todos","T2A9-2") )%>%
    addPolylines(linha_5434[, 2],linha_5434[, 1],weight=2.25,color="#000066",popup=paste("Linha:","5434","<br>") ,group = c("Todos","617-1") )%>%
    addPolylines(linha_5609[, 2],linha_5609[, 1],weight=2.25,color="#004080",popup=paste("Linha:","5609","<br>") ,group = c("Todos","6171-1") )%>%
    addPolylines(linha_5485[, 2],linha_5485[, 1],weight=2.25,color="#1aff1a",popup=paste("Linha:","5485","<br>") ,group = c("Todos","T11-1") )%>%
    addPolylines(linha_5116[, 2],linha_5116[, 1],weight=2.25,color="#ff0000",popup=paste("Linha:","5116","<br>") ,group = c("Todos","T12-1") )%>%
    addPolylines(linha_5686[, 2],linha_5686[, 1],weight=2.25,color="#ff6600",popup=paste("Linha:","5686","<br>") ,group = c("Todos","3442-1") )%>%
    addPolylines(linha_5864[, 2],linha_5864[, 1],weight=2.25,color="#ff33cc",popup=paste("Linha:","5864","<br>") ,group = c("Todos","T11A-1") )%>%
    addPolylines(linha_5489[, 2],linha_5489[, 1],weight=2.25,color="#669900",popup=paste("Linha:","5489","<br>") ,group = c("Todos","T2-1") )%>%
    addPolylines(linha_5818[, 2],linha_5818[, 1],weight=2.25,color="#003300",popup=paste("Linha:","5818","<br>") ,group = c("Todos","T2A2-1") )%>%
    addPolylines(linha_5493[, 2],linha_5493[, 1],weight=2.25,color="#00ffff",popup=paste("Linha:","5493","<br>") ,group = c("Todos","T2A-1") )%>%
    addPolylines(linha_5495[, 2],linha_5495[, 1],weight=2.25,color="#669999",popup=paste("Linha:","5495","<br>") ,group = c("Todos","T2A1-1") )%>%
    addPolylines(linha_5869[, 2],linha_5869[, 1],weight=2.25,color="#ffcc00",popup=paste("Linha:","5869","<br>") ,group = c("Todos","T23-1") )%>%
    addPolylines(linha_5606[, 2],linha_5606[, 1],weight=2.25,color="#9999ff",popup=paste("Linha:","5606","<br>") ,group = c("Todos","T22-1") )%>%
    addPolylines(linha_5491[, 2],linha_5491[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5491","<br>") ,group = c("Todos","T29-1") )%>%
    addPolylines(linha_5833[, 2],linha_5833[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5833","<br>") ,group = c("Todos","C4-1") )%>%
    addPolylines(linha_5961[, 2],linha_5961[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5961","<br>") ,group = c("Todos","T12-2") )%>%
    addPolylines(linha_5421[, 2],linha_5421[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5421","<br>") ,group = c("Todos","608-1") )%>%
    addPolylines(linha_5471[, 2],linha_5471[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5471","<br>") ,group = c("Todos","B05-1") )%>%
    addPolylines(linha_5422[, 2],linha_5422[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5422","<br>") ,group = c("Todos","608-2") )%>%
    addPolylines(linha_5680[, 2],linha_5680[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5680","<br>") ,group = c("Todos","510-2") )%>%
    addPolylines(linha_5436[, 2],linha_5436[, 1],weight=2.25,color="#00ff99",popup=paste("Linha:","5436","<br>") ,group = c("Todos","620-2") )%>%
    addPolylines(linha_5418[, 2],linha_5418[, 1],weight=2.25,color="pynk",popup=paste("Linha:","5418","<br>")    ,group = c("Todos","520-1") )%>%
    addPolylines(linha_5858[, 2],linha_5858[, 1],weight=2.25,color="green",popup=paste("Linha:","5858","<br>")   ,group = c("Todos","5202-1") )%>%
    addPolylines(linha_5959[, 2],linha_5959[, 1],weight=2.25,color="yellow",popup=paste("Linha:","5959","<br>")  ,group = c("Todos","T13-1") )%>%
    addPolylines(linha_5806[, 2],linha_5806[, 1],weight=2.25,color="black",popup=paste("Linha:","5608","<br>")   ,group = c("Todos","3752-1") )%>%
    addPolylines(linha_5805[, 2],linha_5805[, 1],weight=2.25,color="orange",popup=paste("Linha:","5805","<br>")  ,group = c("Todos","B51-1") )%>%
    addPolylines(linha_5681[, 2],linha_5681[, 1],weight=2.25,color="magenta",popup=paste("Linha:","5681","<br>") ,group = c("Todos","525-1") )%>%
    addPolylines(linha_5640[, 2],linha_5640[, 1],weight=2.25,color="#3cb371",popup=paste("Linha:","5640","<br>") ,group = c("Todos","429-1") )%>%
    addPolylines(linha_5644[, 2],linha_5644[, 1],weight=2.25,color="#ffa500",popup=paste("Linha:","5644","<br>") ,group = c("Todos","4292-1") )%>%
    addPolylines(linha_5830[, 2],linha_5830[, 1],weight=2.25,color="#ee82ee",popup=paste("Linha:","5830","<br>") ,group = c("Todos","6712-1") )%>%
    addPolylines(linha_5683[, 2],linha_5683[, 1],weight=2.25,color="#6a5acd",popup=paste("Linha:","5683","<br>") ,group = c("Todos","671-1") )%>%
    addPolylines(linha_5704[, 2],linha_5704[, 1],weight=2.25,color="#3c3c3c",popup=paste("Linha:","5704","<br>") ,group = c("Todos","T9-1") )%>%
    addPolylines(linha_5705[, 2],linha_5705[, 1],weight=2.25,color="#D35400",popup=paste("Linha:","5705","<br>") ,group = c("Todos","T9-2") )%>%
    addPolylines(linha_5682[, 2],linha_5682[, 1],weight=2.25,color="#2E4053",popup=paste("Linha:","5682","<br>") ,group = c("Todos","525-2") )%>%
    addPolylines(linha_5831[, 2],linha_5831[, 1],weight=2.25,color="#6C3483",popup=paste("Linha:","5831","<br>") ,group = c("Todos","6712-2") ) %>%
    addLegend(group="Legenda", "topright", colors= "", labels="Atravessando o sistema", title="Linhas de ônibus") %>%
    addLayersControl(overlayGroups = c("Todos", "Paradas"), baseGroups = c("3442-1", "3752-1", "429-1", "4292-1", "510-2", "520-1", "5202-1", "525-1", "525-2", "608-1", "608-2", "617-1",
                                                             "6171-1", "6172-2", "620-1", "620-2", "671-1", "671-2", "6712-1", "6712-2", "B05-1", "B51-1", "B511-1",
                                                             "C4-1", "T11-1", "T11A-1", "T12-1", "T12-2", "T13-1", "T13-2", "T2-1", "T2-2", "T22-1", "T22-2",
                                                             "T23-1", "T23-2", "T29-1", "T29-2", "T2A-1", "T2A-2", "T2A1-1", "T2A1-2", "T2A2-1", "T2A2-2", "T2A9-1",
                                                             "T2A9-2", "T9-1", "T9-2"), options = layersControlOptions(collapsed = FALSE)) %>% 
  addProviderTiles(providers$CartoDB.DarkMatter)
map
 map %>% 
  addProviderTiles(providers$Stamen.Toner)