R/geolocation.R

Defines functions geolocation.map

Documented in geolocation.map

#' @title Geolocation Maps
#' @description Blank Description.
#' @param d Tweet Data
#' @param dn Name
#' @param HTML HTML Code
#' Defaults to TRUE.
#' @keywords package
#' @return NULL
#' @export
#' @examples geolocation.map()
#' geolocation.map(nk.tweets, nk.name)
#' geolocation.map(nk.tweets, nk.name, HTML)

geolocation.map <- function(d, dn, HTML) {
     
# Geolocation Libraries
     
if('dplyr' %in% rownames(installed.packages()) == TRUE) {
require(dplyr)} else {
install.packages("dplyr", repos = "http://cran.us.r-project.org")	
require(dplyr)}
     
if('ggplot2' %in% rownames(installed.packages()) == TRUE) {
require(ggplot2)} else {
install.packages("ggplot2", repos = "http://cran.us.r-project.org")	
require(ggplot2)}

nk.tweets <- d
nk.name <- dn

if(missing(HTML)) {

if('maps' %in% rownames(installed.packages()) == TRUE) {
require(maps)} else {
install.packages("maps", repos = "http://cran.us.r-project.org")	
require(maps)}

if('ggthemes' %in% rownames(installed.packages()) == TRUE) {
require(ggthemes)} else {
install.packages("ggthemes", repos = "http://cran.us.r-project.org")	
require(ggthemes)}
	
# Format Data for Geolocation
nk.filtered <- dplyr::filter(nk.tweets, !is.na(place_type))
nk.geo <- lat_lng(nk.filtered, coords = c("coords_coords", "bbox_coords", "geo_coords"))  

# Create World Basemap
world_basemap <- ggplot() +
	borders("world", colour = "gray85", fill = "gray80") + 
	theme_map() + labs(title = "World Basemap")
world_basemap

# Create Tweet Geolocation World Map	
nk.world <- world_basemap +
	geom_point(data = nk.geo, aes(x = lng, y = lat),
	colour = 'purple', alpha = .5) +
	scale_size_continuous(range = c(1, 8), breaks = c(250, 500, 750, 1000)) +
	labs(title = paste0("Tweets by Location for Search Term ", nk.name))

return(nk.world)

} else {

if('leaflet' %in% rownames(installed.packages()) == TRUE) {
require(leaflet)} else {
install.packages("leaflet", repos = "http://cran.us.r-project.org")	
require(leaflet)}

# Format Data for Geolocation
nk.filtered <- dplyr::filter(nk.tweets, !is.na(place_type))
nk.geo <- lat_lng(nk.filtered, coords = c("coords_coords", "bbox_coords", "geo_coords"))  

# Create HTML Tweet Geolocation World Map	
nk.HTMLmap <- leaflet(nk.geo) %>%
	addTiles() %>%
	addCircleMarkers(lng = ~lng, lat = ~lat, popup = ~text,
		radius = 3, stroke = FALSE)

return(nk.HTMLmap)
	
}

}
sabalicodev/sabali documentation built on Jan. 13, 2020, 2:22 p.m.