Как нанести данные на карту без использования карты Google (изображение)?

У меня есть файл csv с именами переменных «Широта», «Долгота», «Концентрация PM10». Вы можете загрузить данные здесь. Я хочу нанести данные о PM10 на карту Южной Кореи в соответствии с их широтой и долготой. Также я хочу показать их в виде пузырей разного размера и цвета.

Следуя этому примеру, я уже нанес данные PM10 на карту Google. Но теперь я хочу сделать это без использования карты Google, а путем создания пространственного объекта или каким-либо другим способом.

Я попытался написать код, но мне удалось загрузить пространственные данные для административной области (GADM) Южной Кореи. Но я не уверен, что это правильный или неправильный подход.

library(rgdal)
library(ggplot2)
library(maptools)

map<-readOGR('D:/BACKUP/R/GSTAT/R File/shape file korea map',layer ='KOR_adm2')
summary(kmap)

EPSG<-make_EPSG()
EPSG[grepl("WGS 84$", EPSG$note), ]

kmap84<-spTransform(kmap, CRS("+init=epsg:4326"))
kmaps<-fortify(kmap84)

Я не понимаю, что мне делать дальше.


person Orpheus    schedule 10.07.2015    source источник
comment
см. это. Думаю, это будет полезнее прямого ответа.   -  person shekeine    schedule 10.07.2015
comment
извините, но на самом деле я пытался сделать это, используя этот документ, но мне не удалось добиться успеха. Спасибо, в любом случае.   -  person Orpheus    schedule 12.07.2015


Ответы (1)


Вот пример:

library(raster)
library(ggplot2)
download.file("https://docs.google.com/uc?id=0ByY3OAw62EShakxJZkplOXZ0RGM&export=download", tf <- tempfile(fileext = ".csv"))
df <- read.csv(tf, row.names = 1)
skorea <- getData("GADM", country = "South Korea", level = 2)
skorea <- fortify(skorea)
ggplot() +  
  geom_map(data = skorea, map = skorea, aes(x = long, y = lat, map_id = id, group = group), 
           fill = NA, colour = "black") + 
  geom_point(data = df, aes(x = LON, y = LAT, size = PM10), colour = "red", alpha = .5) + 
  scale_size(range = c(1, 5))

введите описание изображения здесь

person lukeA    schedule 10.07.2015
comment
Большое спасибо @lukeA. У меня 2 глупых вопроса. а) data=skorea, map_id = id, group = group: какова функция этого кода в geom_map? действительно ли важно упомянуть group = group? б) Как я могу показать разное количество PM10 другим цветом? например, PM10-125 красным, PM10-100 синим и так далее? Спасибо еще раз. - person Orpheus; 12.07.2015
comment
# 1: AFAIK, это группирующая переменная для каждого многоугольника / каждого региона. Регион (map_id) необходим, полигон - нет. №2: Вы можете ?cut значения в интервалы и сопоставить цвета срезов / групп. g = cut(df$PM10, c(-Inf, 100, Inf)) & aes(colour = g). - person lukeA; 13.07.2015