我正在创建萨克拉门托市的地图,其中有一个图层指示土地利用并仅限于公用事业服务区。我需要添加背景图以使其更容易识别。 这是我正在绘制的地图
` Parcel_map<-
ggplot()+
geom_sf(data = Parcel, aes(fill = Land_Use), color = NA) +
geom_sf(data = Water_Boundary, fill = NA, color = "blue") +
scale_fill_viridis_c()+
labs(title = "Heatmap of Start of Tracking Period (2025 for all others)", fill = "Year_dum") +
labs(fill=" Meter Installation")+
theme_minimal()`
我尝试了多种方法来添加谷歌地图作为背景。一种方法如下:
`myLocation <- c(-121.6, 38.4, -121.35, 38.7)
myMap <- get_map(location=myLocation, source="google", maptype="terrain", crop=FALSE)
ggmap(myMap)
`
然而,最终的地图并未使用并抛出错误来生成。
> GParcel_map_Strt_dt_dm <-
+ ggmap(myMap)+
+ geom_sf(data = Parcel_Strt_dt, aes(fill = Year_dum), color = NA) +
+ geom_sf(data = Water_Boundary, fill = NA, color = "blue") +
+ scale_fill_viridis_c()+
+ labs(title = "Heatmap of Start of Tracking Period (2025 for all others)", fill = "Year_dum") +
+ labs(fill=" Meter Installation") +
+ coord_sf(datum = NA,
+ xlim = c(bbox['xmin'], bbox['xmax']),
+ ylim = c(bbox['ymin'], bbox['ymax'])) +
+ theme_minimal()
坐标系已经存在。添加新的坐标系,它将取代现有的坐标系。
> GParcel_map_Strt_dt_dm
geom_sf()
中的错误:
!计算美学时出现问题。
ℹ 第4层发生错误。
错误原因:
!未找到对象“lon”
运行 rlang::last_trace()
查看错误发生的位置。
我只需要当前地图的背景地图,如下所示。
我以前遇到过类似的问题,如果我没记错的话,可以通过在每次调用
inherit.aes = FALSE
时添加 geom_sf()
来解决该错误。正如警告消息所示,已经存在一个来自 myMap
的坐标系。 Google 将底图作为 EPSG: 3857 或“Google PseudoMercator”投影中的栅格图层返回,而您的其他 sf
对象可能位于不同的 CRS 中,例如 EPGS: 4326 或 WGS 84(您可以使用 sf::st_crs(Parcel_Strt_dt)
检查,例如实例)。
我发现这篇 StackOverflow 帖子在遇到此错误时很有帮助,您也可以:如何将 geom_sf 生成的地图放在 ggmap 生成的栅格之上。