require(highcharter)
## Loading required package: highcharter
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
require(dplyr)
## Loading required package: dplyr
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
mapdata <- get_data_from_map(download_map_data("countries/co/co-all"))

glimpse(mapdata)
## Rows: 34
## Columns: 19
## $ `hc-group`    <chr> "admin1", "admin1", "admin1", "admin1", "admin1", "admin~
## $ `hc-middle-x` <dbl> 0.31, 0.48, 0.47, 0.59, 0.44, 0.55, 0.45, 0.39, 0.30, 0.~
## $ `hc-middle-y` <dbl> 0.47, 0.26, 0.41, 0.68, 0.44, 0.47, 0.57, 0.69, 0.36, 0.~
## $ `hc-key`      <chr> "co-sa", "co-ca", "co-na", "co-ch", "co-3653", "co-to", ~
## $ `hc-a2`       <chr> "SA", "CA", "NA", "CH", "NU", "TO", "CQ", "HU", "PU", "A~
## $ labelrank     <chr> "5", "5", "5", "5", "20", "5", "5", "5", "5", "5", "5", ~
## $ hasc          <chr> "CO.SA", "CO.CA", "CO.NA", "CO.CH", "-99", "CO.TO", "CO.~
## $ `alt-name`    <chr> "Saint Andrew and Providence", NA, NA, NA, NA, NA, NA, N~
## $ `woe-id`      <chr> "2345070", "2345055", "2345065", "2345057", "-99", "2345~
## $ fips          <chr> "CO17", "CO09", "CO20", "CO11", NA, "CO28", "CO08", "CO1~
## $ `postal-code` <chr> "SA", "CA", "NA", "CH", NA, "TO", "CQ", "HU", "PU", "AM"~
## $ name          <chr> "San Andrés y Providencia", "Cauca", "Nariño", "Chocó", ~
## $ country       <chr> "Colombia", "Colombia", "Colombia", "Colombia", "Colombi~
## $ `type-en`     <chr> "Department", "Department", "Department", "Department", ~
## $ longitude     <chr> "-81.7049", "-77.277", "-77.9777", "-76.7263", "-81.5928~
## $ `woe-name`    <chr> "San Andrés y Providencia", "Cauca", "Nariño", "Chocó", ~
## $ latitude      <chr> "12.5429", "2.61609", "1.60168", "5.38283", "3.97794", "~
## $ `woe-label`   <chr> "San Andres y Providencia, CO, Colombia", "Cauca, CO, Co~
## $ type          <chr> "Departamento", "Departamento", "Departamento", "Departa~
data_fake <- mapdata %>%
  select(code = `hc-a2`) %>%
  mutate(value = 1e5 * abs(rt(nrow(.), df = 10)))

glimpse(data_fake)
## Rows: 34
## Columns: 2
## $ code  <chr> "SA", "CA", "NA", "CH", "NU", "TO", "CQ", "HU", "PU", "AM", "BL"~
## $ value <dbl> 90851.34, 44034.99, 93397.31, 153239.94, 87832.28, 73300.65, 919~
cities <- data.frame(
  name = c("Bogotá", "Cali", "Medellín"),
  lat = c(4.60971, 3.43722, 6.25184),
  lon = c(-74.08175, -76.5225, -75.56359)
)

cities
##       name     lat       lon
## 1   Bogotá 4.60971 -74.08175
## 2     Cali 3.43722 -76.52250
## 3 Medellín 6.25184 -75.56359
hc <- hcmap(
  "countries/co/co-all", 
  data = data_fake,
  value = "value",
  joinBy = c("hc-a2", "code"),
  name = "Fake data",
  dataLabels = list(enabled = TRUE, format = "{point.name}"),
  colorAxis = 0,
  showInLegend = FALSE) %>%
  hc_add_series(
    data = cities, 
    color = hex_to_rgba("blue", alpha = 1),
    type = "mappoint",
    zIndex = 10,
    name = "Cities", 
    minSize = "3%",
    maxSize = "10%",
    showInLegend = TRUE,
    colorAxis = 1
  ) %>%
  hc_mapNavigation(enabled = TRUE) %>% 
  hc_colorAxis(minColor = "white", maxColor = "red")

hc
# 
# hc$x$hc_opts$colorAxis <- list(
#   list(minColor = "white", maxColor = "red"),
#   list(minColor = "yellow", maxColor = "blue")
# )
# 
# hc