library(readxl)
library(sf)
## Linking to GEOS 3.7.1, GDAL 2.4.0, PROJ 5.2.0
library(mapsapi)
library(mapview)

# Google API key
key = readLines("~/Dropbox/BGU/key_google")

# Read table
dat = read_excel("kalpies_full_report.xls")
dat = as.data.frame(dat)

# Clean addresses
dat$address = paste0(
  dat$`כתובת קלפי`,
  ", ",
  dat$`שם ישוב בחירות`,
  ", ישראל"
)

# Subset
dat = dat[1:100, ]

# Geocode
gc = mp_geocode(addresses = dat$address, key = key)
## מגן האלף,1, ירושלים, ישראל..............OK
## פישל אהרן,29, ירושלים, ישראל............OK
## שבטי ישראל,27, ירושלים, ישראל...........OK
## מגן האלף,1, ירושלים, ישראל..............OK
## נטר,40, ירושלים, ישראל..................OK
## מגן האלף,3, ירושלים, ישראל..............OK
## פישל אהרן,29, ירושלים, ישראל............OK
## מגן האלף,3, ירושלים, ישראל..............OK
## שמעון הצדיק,23, ירושלים, ישראל..........OK
## שמעון הצדיק,23, ירושלים, ישראל..........OK
## שמעון הצדיק,23, ירושלים, ישראל..........OK
## שמעון הצדיק,23, ירושלים, ישראל..........OK
## דבורה הנביאה,2, ירושלים, ישראל..........OK
## הנביאים,42, ירושלים, ישראל..............OK
## הנביאים,42, ירושלים, ישראל..............OK
## שבטי ישראל,27, ירושלים, ישראל...........OK
## מגן האלף,3, ירושלים, ישראל..............OK
## אביגדורי,4, ירושלים, ישראל..............OK
## מגן האלף,3, ירושלים, ישראל..............OK
## מגן האלף,3, ירושלים, ישראל..............OK
## מגן האלף,1, ירושלים, ישראל..............OK
## נטר,40, ירושלים, ישראל..................OK
## אהלי יוסף,15, ירושלים, ישראל............OK
## אהלי יוסף,15, ירושלים, ישראל............OK
## מגן האלף,1, ירושלים, ישראל..............OK
## ירמיהו,5, ירושלים, ישראל................OK
## ירמיהו,5, ירושלים, ישראל................OK
## ירמיהו,5, ירושלים, ישראל................OK
## ירמיהו,5, ירושלים, ישראל................OK
## ירמיהו,5, ירושלים, ישראל................OK
## שמעון הצדיק,23, ירושלים, ישראל..........OK
## מן,7, ירושלים, ישראל....................OK
## מן,7, ירושלים, ישראל....................OK
## מן,7, ירושלים, ישראל....................OK
## מן,7, ירושלים, ישראל....................OK
## מן,7, ירושלים, ישראל....................OK
## מן,7, ירושלים, ישראל....................OK
## אביגדורי,4, ירושלים, ישראל..............OK
## אביגדורי,4, ירושלים, ישראל..............OK
## מלכי ישראל,57, ירושלים, ישראל...........OK
## מלכי ישראל,57, ירושלים, ישראל...........OK
## מלכי ישראל,57, ירושלים, ישראל...........OK
## פישל אהרן,29, ירושלים, ישראל............OK
## פישל אהרן,29, ירושלים, ישראל............OK
## אהלי יוסף,15, ירושלים, ישראל............OK
## הטורים,23, ירושלים, ישראל...............OK
## ילין דוד,41, ירושלים, ישראל.............OK
## ילין דוד,41, ירושלים, ישראל.............OK
## הטורים,23, ירושלים, ישראל...............OK
## מלכי ישראל,57, ירושלים, ישראל...........OK
## מלכי ישראל,57, ירושלים, ישראל...........OK
## ישעיהו,7, ירושלים, ישראל................OK
## מלכי ישראל,57, ירושלים, ישראל...........OK
## ישעיהו,7, ירושלים, ישראל................OK
## עזרת תורה,45, ירושלים, ישראל............OK
## ישעיהו,7, ירושלים, ישראל................OK
## ישעיהו,7, ירושלים, ישראל................OK
## עזרת תורה,45, ירושלים, ישראל............OK
## עזרת תורה,45, ירושלים, ישראל............OK
## עזרת תורה,45, ירושלים, ישראל............OK
## שפע חיים,1, ירושלים, ישראל..............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## סורוצקין,40, ירושלים, ישראל.............OK
## עזרת תורה,45, ירושלים, ישראל............OK
## אביגדורי,4, ירושלים, ישראל..............OK
## שבטי ישראל,22, ירושלים, ישראל...........OK
## שבטי ישראל,22, ירושלים, ישראל...........OK
## שבטי ישראל,22, ירושלים, ישראל...........OK
## שבטי ישראל,22, ירושלים, ישראל...........OK
## שבטי ישראל,22, ירושלים, ישראל...........OK
## הלל,17, ירושלים, ישראל..................OK
## הלל,17, ירושלים, ישראל..................OK
## הלל,17, ירושלים, ישראל..................OK
## הלל,17, ירושלים, ישראל..................OK
## נרקיס,11, ירושלים, ישראל................OK
## הקרן הקיימת,14, ירושלים, ישראל..........OK
## הקרן הקיימת,14, ירושלים, ישראל..........OK
## הקרן הקיימת,14, ירושלים, ישראל..........OK
## רבי עקיבא,7, ירושלים, ישראל.............OK
## רבי עקיבא,7, ירושלים, ישראל.............OK
## רבי עקיבא,7, ירושלים, ישראל.............OK
## רבי עקיבא,7, ירושלים, ישראל.............OK
## שמעון הצדיק,23, ירושלים, ישראל..........OK
## נטר,40, ירושלים, ישראל..................OK
## יצחק אלחנן,4, ירושלים, ישראל............OK
## יצחק אלחנן,4, ירושלים, ישראל............OK
## יצחק אלחנן,4, ירושלים, ישראל............OK
## יצחק אלחנן,4, ירושלים, ישראל............OK
## יצחק אלחנן,4, ירושלים, ישראל............OK
## הגדוד העברי,22, ירושלים, ישראל..........OK
## בן לברט,15, ירושלים, ישראל..............OK
## בן לברט,15, ירושלים, ישראל..............OK
## בן לברט,15, ירושלים, ישראל..............OK
## בן לברט,15, ירושלים, ישראל..............OK
pnt = mp_get_points(gc)

# Plot
mapview(pnt)
# Get lon/lat
dat$lon = st_coordinates(pnt)[, 1]
dat$lat = st_coordinates(pnt)[, 2]
str(dat)
## 'data.frame':    100 obs. of  15 variables:
##  $ סמל ועדה        : num  1 1 1 1 1 1 1 1 1 1 ...
##  $ שם ועדה         : chr  "ירושלים" "ירושלים" "ירושלים" "ירושלים" ...
##  $ סמל ישוב בחירות : num  3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 ...
##  $ שם ישוב בחירות  : chr  "ירושלים" "ירושלים" "ירושלים" "ירושלים" ...
##  $ סמל קלפי        : num  3 4 5 6 7 8 9 10 11 12 ...
##  $ סמל רכוז        : num  18 59 383 18 75 5 59 5 83 83 ...
##  $ כתובת קלפי      : chr  "מגן האלף,1" "פישל אהרן,29" "שבטי ישראל,27" "מגן האלף,1" ...
##  $ מקום קלפי       : chr  "סמינר בית יעקב - עטרת חן" "ת\"ת זיכרו תורת משה" "משרד החינוך" "סמינר בית יעקב - עטרת חן" ...
##  $ נגישה           : chr  NA "כ" NA NA ...
##  $ נגישה מיוחדת    : chr  NA NA NA NA ...
##  $ הדפסה בערבית    : chr  NA NA NA NA ...
##  $ בוחרי כנסת בפועל: num  700 768 527 653 621 478 728 701 557 672 ...
##  $ address         : chr  "מגן האלף,1, ירושלים, ישראל" "פישל אהרן,29, ירושלים, ישראל" "שבטי ישראל,27, ירושלים, ישראל" "מגן האלף,1, ירושלים, ישראל" ...
##  $ lon             : num  35.2 35.2 35.2 35.2 35.2 ...
##  $ lat             : num  31.8 31.8 31.8 31.8 31.8 ...
# Write
write.csv(dat, "result.csv", row.names = FALSE)