Нарисуйте точки широты / долготы на OpenStreetMap, используя R - PullRequest
0 голосов
/ 12 октября 2018

Мне трудно обернуть голову вокруг проекции.Мои очки за место в Северной Европе заканчиваются в Средней Африке.

Мой код выглядит следующим образом.

#Loading packages

library(OpenStreetMap)
library(rgdal)
library(ggplot2)

#defining world map
map <- openmap(c(70,-179), c(-70,179))
plot(map)

#Finding my work place in Northern Europe (Ørbækvej 100, Odense, Denmark from here: https://www.latlong.net/convert-address-to-lat-long.html)
subscr<-data.frame(lat=c(55.381640),
                   lon=c(10.433600))

#I am not sure what this does, but found on the web for a map in Germany: (https://gis.stackexchange.com/questions/209166/plotting-bubbles-on-top-of-openstreetmap-in-r) 
coordinates(subscr)<-~lat+lon
proj4string(subscr)<-CRS("+init=epsg:4326")
points(spTransform(subscr,osm()))
#as can be seen using this method the dot turns up in Eastern Africa


symbols(y = subscr$lon, x = subscr$lat, circles = 1, add = TRUE,
        inches = 0.0001, bg = "darkgreen")
#as can be seen using the method the dot turns up in Western/Mid Africa

Может кто-нибудь объяснить или даже помочь мне поставить точку в Дании, Северной Европе?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Я не знаю, какую карту вы хотите, но для нанесения широтных точек, leaflet - мое оружие по умолчанию.

library( leaflet )
library( magrittr )

subscr<-data.frame(lat=c(55.381640),
                   lon=c(10.433600))

leaflet() %>% addTiles() %>% 
  addCircleMarkers(data = subscr,
                   lat = ~lat, lng = ~lon,
                   color = "blue")

enter image description here

0 голосов
/ 12 октября 2018

Вы обязаны использовать открытые карты улиц?Вы можете рассмотреть возможность использования пакета ggmap, который очень хорошо взаимодействует с ggplot2.Однако у меня иногда возникают проблемы с загрузкой открытой карты улиц с помощью ggmap, но Google-карты должны работать.

Рассмотрим следующий пример.Обратите внимание, что я удалил ненужный текст на карте в команде загрузки.

# download
map <- get_googlemap(center = "Europe", zoom = 3, 
                     style = paste0("feature:administrative.country|",
                                    "element:labels|visibility:off"),
                     filename = "Map",
                     language = "en-EN") # you might want to adjust the language settings

# see what you've got
ggmap(map)

# edit map
ggmap(map)+

  # do some scaling (make it smaller)
  scale_x_continuous(limits = c(-12, 42), expand = c(0, 0)) +
  scale_y_continuous(limits = c(35, 70), expand = c(0, 0))+

  # remove unwanted information
  theme(axis.title.x    = element_blank(),
        axis.title.y    = element_blank(),
        axis.line       = element_blank(),
        axis.ticks      = element_blank(),
        axis.text       = element_blank(),
        plot.title      = element_blank(),
        plot.background = element_blank())+

  # add whatever you like based on your coordinates using annotate()
  annotate("text", x = 10.433600, y = 55.381640, 
           label = "You are here",
           size = 2.4, color = "black", fontface = "bold",
           na.rm = TRUE, hjust = 0.5)

Решает ли это вашу проблему?

...