library(ggplot2)
library(maps)
library(ggthemes)
library(mapdata)
library(raster)
## Loading required package: sp
library(rgeos)
## rgeos version: 0.3-8, (SVN revision 460)
## GEOS runtime version: 3.4.2-CAPI-1.8.2 r3921
## Polygon checking: TRUE
world <- map_data("world")
# intercourse the penguins
world <- world[world$region != "Antarctica",]
# Winkel-Tripel -----------------------------------------------------------
gg <- ggplot()
gg <- gg + geom_map(data=world, map=world,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=wintri")
gg <- gg + theme_map()
gg

# Robinson ----------------------------------------------------------------
gg <- ggplot()
gg <- gg + geom_map(data=world, map=world,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=robin +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs")
gg <- gg + theme_map()
gg

# Eckert IV (best area preserving) ----------------------------------------
gg <- ggplot()
gg <- gg + geom_map(data=world, map=world,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=eck4")
gg <- gg + theme_map()
gg

# Gall (Gall Stereographic) -----------------------------------------------
gg <- ggplot()
gg <- gg + geom_map(data=world, map=world,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=gall")
gg <- gg + theme_map()
gg

gg <- ggplot()
gg <- gg + geom_map(data=world, map=world,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=ocea")
gg <- gg + theme_map()
gg

# Albers - US -------------------------------------------------------------
state <- map_data("state")
gg <- ggplot()
gg <- gg + geom_map(data=state, map=state,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=37.5 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs")
gg <- gg + theme_map()
gg

# Canada - EPSG:4617 ------------------------------------------------------
canada <- map_data("world", "Canada") # hires takes too long
gg <- ggplot()
gg <- gg + geom_map(data=canada, map=canada,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+init=epsg:4617")
gg <- gg + theme_map()
gg

# Japan - Custom ----------------------------------------------------------
japan <- map_data("worldHires", "Japan")
gg <- ggplot()
gg <- gg + geom_map(data=japan, map=japan,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=eqdc +lat_0=0 +lon_0=138 +lat_1=34 +lat_2=40 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs")
gg <- gg + theme_map()
gg

# Ireland - EPSG:3035 -----------------------------------------------------
ireland <- map_data("worldHires", "Ireland")
gg <- ggplot()
gg <- gg + geom_map(data=ireland, map=ireland,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+init=epsg:3035")
gg <- gg + theme_map()
gg

# Hawaii - custom ---------------------------------------------------------
hawaii <- map_data("worldHires", "Hawaii")
gg <- ggplot()
gg <- gg + geom_map(data=ireland, map=ireland,
aes(x=long, y=lat, map_id=region))
gg <- gg + coord_proj("+proj=aea +lat_1=8 +lat_2=18 +lat_0=13 +lon_0=-157 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs")
gg <- gg + theme_map()
gg

# Australia - Lambert Conformal Conic -------------------------------------
aus <- getData('GADM', country='AUS', level=0)
aus_s <- gSimplify(aus, tol=0.05)
aus_map <- fortify(aus_s)
gg <- ggplot()
gg <- gg + geom_map(data=aus_map, map=aus_map,
aes(x=long, y=lat, map_id=id))
gg <- gg + coord_proj("+proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs")
gg <- gg + theme_map()
gg
