使用R

时间:2018-11-25 09:05:08

标签: r google-maps ggplot2 latitude-longitude ggmap

首先感谢大家的宝贵时间。 我想让您知道我刚开始使用R 我正在尝试使用R绘制坐标。我已经尝试遵循不同的功能,其中一个将在下面添加,我有一个坐标点覆盖了世界的文件,我想在Google卫星地图中绘制它们? 我也有API密钥,但是我不知道如何在代码中添加它?

require(ggplot2)
require(ggmap)
require(maps)
require(mapproj)
require(mapdata)
require(rgeos)
require(maptools)
require(sp)
require(raster)
require(rgdal)
require(dismo)
require(tmp)
####
swf1 <- read.csv("D:/jamal project/swf1.csv",header=TRUE)
head(swf1)
 Lon      Lat
1 46.60638 24.88843
2 39.57275 21.39170
3 39.63389 24.43904
4 46.73168 24.64144
5 46.77773 24.73872
6 43.98056 26.33847
#i try using ggmap’s make_bbox function
swfp <- make_bbox(lon = swf$lon, lat = swf$lat, f = .1)
swfp
        ###i got this messg
        Warning messages:
       1: In min(x, na.rm = na.rm) :
        no non-missing arguments to min; returning Inf
       2: In max(x, na.rm = na.rm) :
        no non-missing arguments to max; returning -Inf
       3: In min(x, na.rm = na.rm) :
        no non-missing arguments to min; returning Inf
       4: In max(x, na.rm = na.rm) :
        no non-missing arguments to max; returning -Inf
       > swfp
      left bottom  right    top 
      -Inf   -Inf    Inf    Inf 

现在我不知道如何添加点的问题,我希望每个区域都可以使用一种颜色。

有人可以帮我前进吗?

我尝试过的另一个选项是:

# loading the required packages
library(ggplot2)
library(ggmap)

# creating a sample data.frame with your lat/lon points
lon <- c(-38.31,-35.5)
lat <- c(40.96, 37.5)
df <- as.data.frame(cbind(lon,lat))

# getting the map
mapgilbert <- get_map(location = c(lon = mean(df$lon), lat = mean(df$lat)), 
zoom = 4,
                  maptype = "satellite", scale = 2)

# plotting the map with some points on it
ggmap(mapgilbert) +
geom_point(data = df, aes(x = lon, y = lat, fill = "red", alpha = 0.8), size = 
5, shape = 21) +
guides(fill=FALSE, alpha=FALSE, size=FALSE)

当我运行它时,我得到了      download.file(URL,destfile = tmp,quiet =!messaging,mode =“ wb”)中的错误:      无法打开URL“ http://maps.googleapis.com/maps/api/staticmap?center=39.23,-36.905&zoom=4&size=640x640&scale=2&maptype=satellite&language=en-EN&sensor=false” 另外:警告消息: 在download.file(url,destfile = tmp,quiet =!messaging,mode =“ wb”)中:   无法打开URL'http://maps.googleapis.com/maps/api/staticmap?center=39.23,-36.905&zoom=4&size=640x640&scale=2&maptype=satellite&language=en-EN&sensor=false':HTTP状态为'403 Forbidden'

帮助请坐标文件HERE尝试一下... 谢谢

1 个答案:

答案 0 :(得分:1)

这是使用library(googleway)

的解决方案
library(googleway)

set_key( "API_KEY" )

swf1 <- read.table(text='
Lon      Lat
1 46.60638 24.88843
2 39.57275 21.39170
3 39.63389 24.43904
4 46.73168 24.64144
5 46.77773 24.73872
6 43.98056 26.33847')

## you've asked for colours and sizes, so I'm making some random values which you can use in the plot
swf1$region <- sample(c("a","b"), size = nrow(swf1), replace = T)
swf1$size <- sample(50000:100000, size = nrow(swf1))

google_map() %>%
  add_circles(
    data = swf1, lon = "Lon", lat = "Lat", fill_colour = "region", radius = "size"
  )

enter image description here

要获取卫星视图,请按地图上的“卫星”按钮

enter image description here