# install.packages('ggmap')

apiKey <- "AIzaSyCf_f8FAvjIsabAKxqkch2OcSZlY_h8tCc"

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.0.5
library(ggmap)
## Warning: package 'ggmap' was built under R version 4.0.5
## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
register_google(apiKey)

# Longitud, latitud
qmap(c(-76.5,3.43), zoom=12, maptype="hybrid")
## Source : https://maps.googleapis.com/maps/api/staticmap?center=3.43,-76.5&zoom=12&size=640x640&scale=2&maptype=hybrid&language=en-EN&key=xxx

paradasMio <- read.delim("~/MAIN/VisualizacionDatos/mapas/MIO_STOPS.txt")

# city <- get_map("Cali", zoom = 12)
city <- get_map(c(-76.5,3.43), zoom = 12)
## Source : https://maps.googleapis.com/maps/api/staticmap?center=3.43,-76.5&zoom=12&size=640x640&scale=2&maptype=terrain&language=en-EN&key=xxx
caliMap <- ggmap(city)
caliMap <- caliMap + geom_point(data = paradasMio, 
                                aes(x= DECIMALLONGITUDE, y = DECIMALLATITUDE), 
                                color = paradasMio$TYPE_BUS, 
                                size = paradasMio$PASSANGERS_NUM * 0.02)
caliMap

Agrupamiento de las estaciones

k <- 7
nIter <- 100

grupos <- kmeans(paradasMio[,c(7,8)], k, iter.max = nIter, nstart = 1)

paradasMio$grupos <- grupos$cluster

caliMap <- ggmap(city)
caliMap <- caliMap + geom_point(data = paradasMio, 
                                aes(x= DECIMALLONGITUDE, y = DECIMALLATITUDE), 
                                color = paradasMio$grupos, 
                                size = paradasMio$PASSANGERS_NUM * 0.02)
caliMap

# poligono
indicesC1 <- chull(paradasMio$grupos==1)
poligono <- paradasMio[indicesC1,]

caliMap <- ggmap(city)
caliMap <- caliMap + geom_point(data = paradasMio, 
                                aes(x= DECIMALLONGITUDE, y = DECIMALLATITUDE), 
                                color = paradasMio$grupos, 
                                size = paradasMio$PASSANGERS_NUM * 0.02)
caliMap <- caliMap + geom_polygon(data = poligono, 
                                  aes(x= DECIMALLONGITUDE, y = DECIMALLATITUDE), 
                                  color="black", alpha=0.2)
caliMap