Leaflet Package loading:
library(leaflet)
Getting spatial data:
download.file("https://simplemaps.com/static/data/country-cities/bg/bg.csv","./bg.csv")
BulgariaCities<-read.csv("./bg.csv")
BulgariaCities<-BulgariaCities[complete.cases(BulgariaCities),]
BulgariaCities<-BulgariaCities[,c(1,2,3,7,8)]
print(BulgariaCities)
## city lat lng capital population
## 1 Sofia 42.68333 23.31667 primary 1185000
## 2 Plovdiv 42.15000 24.75000 admin 340494
## 3 Varna 43.21667 27.91667 admin 312770
## 4 Burgas 42.50606 27.46781 admin 195966
## 5 Ruse 43.85639 25.97083 admin 184270
## 6 Stara Zagora 42.43278 25.64194 admin 143431
## 7 Pleven 43.41667 24.61667 admin 118675
## 8 Sliven 42.68583 26.32917 admin 96368
## 9 Dobrich 43.56667 27.83333 admin 94831
## 10 Shumen 43.27667 26.92917 admin 87283
## 11 Pernik 42.60000 23.03333 admin 82467
## 12 Haskovo 41.94028 25.56944 admin 79699
## 13 Vratsa 43.21000 23.56250 admin 71633
## 14 Kyustendil 42.28389 22.69111 admin 51067
## 15 Montana 43.41250 23.22500 admin 47445
## 16 Lovech 43.13333 24.71667 admin 42211
## 17 Razgrad 43.53333 26.51667 admin 38285
Preparing Icons and Popups:
BulgariaIcon <- makeIcon(iconUrl="http://www.freeflagicons.com/download/?series=magnified_flag_with_map&country=bulgaria&size=64",
iconWidth = 64, iconHeight = 48,iconAnchorX = 32, iconAnchorY = 24)
#Icon Image with Bulgaria flag colors
BulgarianPopup<-rep(NA,nrow(BulgariaCities))
for(i in 1:nrow(BulgariaCities)) {
BulgarianPopup[i]<-paste("CITY","=",BulgariaCities[i,1],"<br/>","POPULATION","=",BulgariaCities[i,5])}
#Preparing multiple popups to show each city name , and its population
Drawing circles with its radius to ahow city population:
BulgariaCities %>%
leaflet() %>%
addTiles() %>%
addMarkers(icon = BulgariaIcon, popup = BulgarianPopup) %>%
addCircles(weight = 1, radius = sqrt(BulgariaCities$population)*60,color=ifelse(BulgariaCities$capital=="primary","red","blue"))
## Assuming "lng" and "lat" are longitude and latitude, respectively
## Assuming "lng" and "lat" are longitude and latitude, respectively
Adding Legends:
BulgariaCities %>%
leaflet() %>%
addTiles() %>%
addMarkers(icon = BulgariaIcon, popup = BulgarianPopup) %>%
addCircles(weight = 1, radius = sqrt(BulgariaCities$population)*60,color=ifelse(BulgariaCities$capital=="primary","red","blue")) %>%
addLegend(labels = c("Capital","City"), colors = c("red","blue"))
## Assuming "lng" and "lat" are longitude and latitude, respectively
## Assuming "lng" and "lat" are longitude and latitude, respectively