R:GGMAP如何在生成的地图上添加LON/LAT点?

发布于 2025-01-30 19:07:43 字数 1612 浏览 2 评论 0原文

我正在尝试将数据点放在地图上。但是我会收到以下错误: AREAMAP + GEOM_POINT中的错误(data = d,mapping = aes(x = lon,y = lat),: 另外,非数字参数向二进制操作员:警告消息: “+”的不兼容方法(“ ops.raster”,“+.gg”)

我已经搜索了整个平台以寻求解决方案,但到目前为止,我未能在生成的地图上投射要点。如果您可以帮助我,我的脚本:

library(ggmap)
library(ggplot2)
> area <- read.csv("area.csv", head = T, sep = ",")   
> area #area.csv
    species      lat       lon
1 primavera 20.64122 -103.5897
2 primavera 20.60023 -103.5341
3 primavera 20.62951 -103.5282
4 primavera 20.64517 -103.6449
5 primavera 20.68247 -103.5474
> save(area, file="area.rda")
> areabox <- make_bbox(lat = lat, 
+                      lon = lon, 
+                      data = area, 
+                      f = 1)
> areabox
      left     bottom      right        top 
-103.76159   20.51799 -103.41154   20.76472 
> # Ver los registros
> fix(area)
> areamapa <- get_map(location = areabox, 
+                         source = "stamen", 
+                         maptype = "terrain")
> d<-data.frame(lat=c(20.65728,20.70386),
+               lon=c(-103.62736,-103.53156))
> d # puntos
       lat       lon
1 20.65728 -103.6274
2 20.70386 -103.5316
> #incluir puntos georreferenciados
> points<- areamapa + 
+   geom_point(data = d,
+              mapping = aes(x = lon, y = lat), 
+              size = 2, 
+              colour = "red")
Error in areamapa + geom_point(data = d, mapping = aes(x = lon, y = lat),  : 
  non-numeric argument to binary operator
In addition: Warning message:
Incompatible methods ("Ops.raster", "+.gg") for "+" 

I am trying to place data points on a map. But I get the following error:
Error in areamap + geom_point(data = d, mapping = aes(x = lon, y = lat), :
non-numeric argument to binary operator In addition: Warning message:
Incompatible methods ("Ops.raster", "+.gg") for "+"

I have searched the entire platform for a solution, but so far failed to project the points on the generated map. My script in case you can help me:

library(ggmap)
library(ggplot2)
> area <- read.csv("area.csv", head = T, sep = ",")   
> area #area.csv
    species      lat       lon
1 primavera 20.64122 -103.5897
2 primavera 20.60023 -103.5341
3 primavera 20.62951 -103.5282
4 primavera 20.64517 -103.6449
5 primavera 20.68247 -103.5474
> save(area, file="area.rda")
> areabox <- make_bbox(lat = lat, 
+                      lon = lon, 
+                      data = area, 
+                      f = 1)
> areabox
      left     bottom      right        top 
-103.76159   20.51799 -103.41154   20.76472 
> # Ver los registros
> fix(area)
> areamapa <- get_map(location = areabox, 
+                         source = "stamen", 
+                         maptype = "terrain")
> d<-data.frame(lat=c(20.65728,20.70386),
+               lon=c(-103.62736,-103.53156))
> d # puntos
       lat       lon
1 20.65728 -103.6274
2 20.70386 -103.5316
> #incluir puntos georreferenciados
> points<- areamapa + 
+   geom_point(data = d,
+              mapping = aes(x = lon, y = lat), 
+              size = 2, 
+              colour = "red")
Error in areamapa + geom_point(data = d, mapping = aes(x = lon, y = lat),  : 
  non-numeric argument to binary operator
In addition: Warning message:
Incompatible methods ("Ops.raster", "+.gg") for "+" 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往日 2025-02-06 19:07:43

当您调用get_map时,它返回ggmap对象(分类栅格对象)。要绘制它,请尝试使用ggmap(areamapa)。这是添加点的完整示例:

library(ggmap)
library(ggplot2)

area <- read.table(text =
"species      lat       lon
 primavera 20.64122 -103.5897
 primavera 20.60023 -103.5341
 primavera 20.62951 -103.5282
 primavera 20.64517 -103.6449
 primavera 20.68247 -103.5474", header = T)

areabox <- make_bbox(lat = lat, lon = lon, data = area, f = 1)
areamapa <- get_map(location = areabox, source = "stamen", maptype = "terrain")

d <- data.frame(lat = c(20.65728,20.70386), 
                lon = c(-103.62736,-103.53156))

ggmap(areamapa) + 
  geom_point(data = d, mapping = aes(x = lon, y = lat), size = 2, colour = "red")

output

”映射,使用ggmap“使用ggmap”

When you call get_map it returns a ggmap object (classed raster object). To plot it, try using ggmap(areamapa). Here is the complete example with points added:

library(ggmap)
library(ggplot2)

area <- read.table(text =
"species      lat       lon
 primavera 20.64122 -103.5897
 primavera 20.60023 -103.5341
 primavera 20.62951 -103.5282
 primavera 20.64517 -103.6449
 primavera 20.68247 -103.5474", header = T)

areabox <- make_bbox(lat = lat, lon = lon, data = area, f = 1)
areamapa <- get_map(location = areabox, source = "stamen", maptype = "terrain")

d <- data.frame(lat = c(20.65728,20.70386), 
                lon = c(-103.62736,-103.53156))

ggmap(areamapa) + 
  geom_point(data = d, mapping = aes(x = lon, y = lat), size = 2, colour = "red")

Output

map with two points using ggmap

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文