#Beberapa Package R yang Digunakan untuk Membuat Peta

library(maps)
library(ggplot2)
library(mapdata)
library(ggthemes)
library(ggrepel)
library(raster)
library(plyr)
library(dplyr)

#Membuat Peta Dunia dengan Fungsi map_data()

peta_dunia <- map_data("world")



peta_dunia


gambar1 <- ggplot() + 
  geom_polygon(data = peta_dunia, aes(x=long, y = lat, group = group), 
               fill = "gray85", color = "gray80") 



print(gambar1)

#Membuat Peta Indonesia

peta_indonesia <- gambar1 + xlim(94.5,141.5) + ylim(-11.5,6.5)


print(peta_indonesia)  

#Menggunakan fungsi getData(), Mendapatkan Nama-Nama Provinsi

peta_indonesia_level_1 <- getData('GADM', country = 'IDN', level = 1)  
## Warning in getData("GADM", country = "IDN", level = 1): getData will be removed in a future version of raster
## . Please use the geodata package instead
nama_provinsi = peta_indonesia_level_1$NAME_1

nama_provinsi

#Melakukan Pengelompokkan Wilayah Provinsi pada Peta Indonesia

label_angka <- seq(1, 33)     
NAME_1 = peta_indonesia_level_1$NAME_1



gabung_label_nama <- data.frame(NAME_1, label_angka)
indo1 = peta_indonesia_level_1


indo1@data$id <- rownames(indo1@data)
indo1@data <- plyr::join(indo1@data, gabung_label_nama, by = "NAME_1")



new_indo1 <- fortify(indo1)
## Regions defined for each Polygons
new_indo1 <-  plyr::join(new_indo1, indo1@data, by="id")


new_indo1
warna <- rainbow(33)
Indo <- peta_indonesia +
   scale_color_manual(values= c(warna) )+
  geom_polygon(data = new_indo1, aes(x=long, y = lat, group = group, fill = NAME_1), color = "grey") + 
  scale_fill_manual(values=c(warna)) +
   theme(legend.position = "none") 


 


Indo

#Ekstrak Label

label_kota = new_indo1 %>% distinct(NAME_1, .keep_all = TRUE)


label_kota
ambil_label = read.table("label.txt", header = T, sep = "\t")

ambil_label
##                       woe_label postal   latitude longitude
## 1                          Aceh     AC  4.4153300   96.9956
## 2                 North Sumatra     SU  2.3630400   99.2161
## 3                  West Sumatra     SB -0.6426110  100.6110
## 4                          Riau     RI  0.3968920  101.7450
## 5                         Jambi     JA -1.6549700  102.8230
## 6                 South Sumatra     SL -3.3824000  104.0730
## 7                      Bengkulu     BE -3.4860600  102.3680
## 8                       Lampung     LA -4.9190000  105.0590
## 9               Bangka-Belitung     BB -2.9581700  106.8190
## 10               Kepulauan Riau     KR -0.1426390  104.6010
## 11                  DKI Jakarta     JK -6.2246200  106.8370
## 12                    West Java     JR -6.9076300  107.6380
## 13                 Central Java     JT -7.2901000  109.8960
## 14 Special Region of Yogyakarta     YO -7.8353300  110.4430
## 15                    East Java     JI -7.8812900  112.6160
## 16                       Banten     BT -6.2579400  106.1670
## 17                         Bali     BA -8.3412000  115.1790
## 18           West Nusa Tenggara     NB -8.5710600  116.2940
## 19           East Nusa Tenggara     NT -8.5844300  120.6890
## 20              West Kalimantan     KB -0.0636474  111.3040
## 21           Central Kalimantan     KT -1.8421700  113.2860
## 22             South Kalimantan     KS -3.0071300  115.4510
## 23              East Kalimantan     KI  1.2891500  116.3540
## 24             North Kalimantan     KU  3.0730930  116.0414
## 25               North Sulawesi     SW  0.8530390  124.4460
## 26             Central Sulawesi     ST -1.3009700  120.1530
## 27               South Sulawesi     SE -3.7444000  119.9900
## 28          South East Sulawesi     SG -4.0746000  122.1190
## 29                    Gorontalo     GO  0.7605010  122.3310
## 30                West Sulawesi     SR -2.6961500  119.3160
## 31                       Maluku     MA -8.2481400  128.1610
## 32                 North Maluku     LA -2.2894500  125.9760
## 33                   West Papua     IB -1.3252500  132.8250
## 34                        Papua     PA -4.1082500  138.6890
Indo <- peta_indonesia +
   scale_color_manual(values= c(warna) )+
  geom_polygon(data = new_indo1, aes(x=long, y = lat, group = group, fill = NAME_1), color = "grey") + 
  scale_fill_manual(values=c(warna)) +
   theme(legend.position = "none") +
   geom_point(data = ambil_label,aes(x = longitude, y = latitude ),
              color = "black", size=2.5, alpha = 0.5, show.legend = F) +
   geom_text_repel(data = ambil_label, aes(longitude, latitude, label = woe_label),
                    size = 3)  


 


Indo