В моем предыдущем вопросе я представил, что у меня есть таблица «записей» с IP-адресами, и что я хочу их геолокации.
Геолокация большого количества сообщений на основе IP-адресов. (880 000 строк)
Ответ продемонстрировал, как использовать rgeolocate для достижения этого, и после некоторых усилий в изучении R мне удалось достичь того же результата:
library(iptools)
library(rgeolocate)
library(tidyverse)
library(readxl)
library(rworldmap)
library(ggmap)
library(rworldxtra)
post <- read_excel("filepath/post.xlsx")
view(post)
## grab my ips and, format them
ips <- unlist(post[,3], use.names=FALSE)
#geolocte them
system.time(
rgeolocate::maxmind(
ips, "~/R/GeoLite2-City.mmdb", c("longitude", "latitude")
) -> xdf
)
#user system elapsed
#6.04 0.02 6.05
xdf %>%
count(longitude, latitude) -> pts
#And, plot them:
ggplot(pts) +
geom_point(
aes(longitude, latitude, size = n),
shape=21, fill = "steelblue", color = "white", stroke=0.25
) +
ggalt::coord_proj("+proj=wintri") +
ggthemes::theme_map() +
theme(legend.justification = "center") +
theme(legend.position = "bottom")
Результат показан здесь:

Этот график показывает именно ту группу, которую я ожидал, основываясь на данных. Итак, один шаг к успеху!
Конечно, следующий логический шаг - увеличить разрешение и добавить наложение карты мира. Мне не удалось достичь ни одной из этих целей.
Используя этот код, я могу создать карту мира с высоким разрешением:
newmap <- getMap(resolution = "high")
plot(newmap)
И результат показан здесь:

Каким-то образом я просто не могу получить комбинацию карты И данных, которые наносятся на график. Кажется, что любая попытка создать карту требует от меня построения самой карты, и любая попытка добавить точки к этому провалу. Например:
newmap <- getMap(resolution = "high")
plot(newmap)
ggmap(newmap) +
geom_point(data = pts, aes(x = longitude, y = latitude, size=n),
shape=21, fill = "steelblue", color = "white", stroke=0.25)
Ошибка: ggmap строит объекты класса ggmap, видите? Get_map
Я пытался работать, основываясь на совете http://www.milanor.net/blog/maps-in-r-plotting-data-points-on-a-map/, но этот сайт посвящен карте Европы, и я хочу показать свои данные на карте мира.
Спасибо за вашу помощь.