library(ggplot2)
library(dplyr)
library(ggmap)
library(sp)
library(maptools)
library(rgeos)
library(leaflet)
library(googleVis);op <- options(gvis.plot.tag='chart')
data <- read.csv(choose.files(), header = T, sep = ",", stringsAsFactors = F, encoding = "UTF-8")
head(data,2)
##   id     slat     slon     hlat     hlon          loc
## 1  1 54.71043 20.45221 54.71043 20.45221 Kaliningrad 
## 2  2 55.82492 49.12274 55.82492 49.12274       Kazan'
##                                                                                       loc.1
## 1 <U+041A><U+0430><U+043B><U+0438><U+043D><U+0438><U+043D><U+0433><U+0440><U+0430><U+0434> 
## 2                                          <U+041A><U+0430><U+0437><U+0430><U+043D><U+044C>
##                        mix
## 1             Kaliningrad 
## 2 Kazan' Tatarstan Licej 7
data1 <- data[,-7]
head(data1,2)
##   id     slat     slon     hlat     hlon          loc
## 1  1 54.71043 20.45221 54.71043 20.45221 Kaliningrad 
## 2  2 55.82492 49.12274 55.82492 49.12274       Kazan'
##                        mix
## 1             Kaliningrad 
## 2 Kazan' Tatarstan Licej 7
for(i in 1:1) {
  data1[,i] <- as.character(data1[,i])
}
str(data1)
## 'data.frame':    92 obs. of  7 variables:
##  $ id  : chr  "1" "2" "3" "4" ...
##  $ slat: num  54.7 55.8 61.7 59.6 50.6 ...
##  $ slon: num  20.5 49.1 42.5 30.1 36.6 ...
##  $ hlat: num  54.7 55.8 61.5 59.6 50.6 ...
##  $ hlon: num  20.5 49.1 42.3 30.1 36.6 ...
##  $ loc : chr  "Kaliningrad " "Kazan'" "Arhangel'skaja obl.  Shenkurskij r-n  s. Rovdino" "Gatchina" ...
##  $ mix : chr  "Kaliningrad " "Kazan' Tatarstan Licej 7" "Rovdino Arhangel'skaja obl.  Shenkurskij r-n Rovdinskaja SOSh" "Gatchina SOSh 2" ...
data1$latlongs<-paste(data1$slat, data1$slon, sep=":")
data1$latlongh<-paste(data1$hlat, data1$hlon, sep=":")
head(data1[,8:9],2)
##              latlongs            latlongh
## 1 54.710426:20.452214 54.710426:20.452214
## 2  55.824919:49.12274  55.824919:49.12274
data("wrld_simpl")
map = fortify(wrld_simpl)
ggplot(map) +
  geom_polygon(data = map, aes(long, lat, group = group), color = "black", fill = "white") + 
  geom_point(data = data1, aes(x = slon, y = slat), color = "red")+
  coord_map(ylim=c(-60, 111))

data("wrld_simpl")
wrld_simpl_filtered = wrld_simpl[wrld_simpl@data$NAME %in% c("Bulgaria", "Moldova", "Belarus", "Ukraine", "Finland", "Latvia", "Lithuania", "Estonia", "Kazakhstan", "Russia", "China", "Mongolia", "Norway", "Romania", "Poland", "Turkey", "Georgia", "Azerbaijan", "Korea, Democratic People's Republic of", "Japan", "Sweden"),]
wrld_simpl_df = fortify(wrld_simpl_filtered)

ggplot(wrld_simpl_df) +
  geom_polygon(data = wrld_simpl_df, aes(long, lat, group = group), color = "black", fill = "white") + 
  geom_point(data = data1, aes(x = hlon, y = hlat), color = "blue")+
  geom_point(data = data1, aes(x = slon, y = slat), color = "red")+
  geom_segment(data = data, aes(x = hlon, y = hlat, xend = slon, yend = slat), size = 1) +
  xlab("Home vs. School prior to HSE \n red = school prior to HSE, blue = home location")+
  ylab("")+
  coord_map("ortho", orientation = c(45, 75, 0))

map <- gvisMap(data1, locationvar="latlongs", 
               tipvar="mix")
      options = list(showTip=T, showLine=F, enableScrollWheel=TRUE,
              useMapTypeControl=T, width=1400,height=800)
plot(map)
m <- leaflet(data1) %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=data1$slon, lat=data1$slat, 
           popup = ~as.character(data1$mix), label = ~as.character(data1$mix))
m
rm(list=ls()) #clear workspace