mapview 不显示来自 osmdata 的查询的多面体

mapview doesn't show multipolygons of a query from osmdata

我正在使用 osmdata 包来引入波哥大的大学,其中一些被映射为 multipolygons。然而,情节是空的。知道如何解决吗?

library(osmdata)
library(mapview)
query <- opq(bbox = "Bogota") %>% add_osm_feature(key = "amenity",value = "university") %>% osmdata_sf()
mapview(query$osm_multipolygons[,c("osm_id","name","amenity")], map.types = "OpenStreetMap")
#mapview(query$osm_polygons[,c("osm_id","name","amenity")], map.types = "OpenStreetMap")

注意: 绘制点或多边形时它可以正常工作。

解决方法是对对象的坐标系进行变换。如下图所示:

library(osmdata)
library(mapview)
library(sf)
query <- opq(bbox = "Bogota") %>% 
  add_osm_feature(key = "amenity",value = "university") %>%
  osmdata_sf()

query <- query$osm_multipolygons[,c("osm_id","name","amenity")] %>%
  st_transform(st_crs("+proj=utm +ellps=GRS80 +datum=WGS84")) %>% 
  st_make_valid() 

mapview(query, map.types = "OpenStreetMap")

有关详细信息,请查看以下内容 link。 Coordinate Systems in R