【问题标题】:The osmda package doesn't find any objectsosmda 包没有找到任何对象
【发布时间】:2020-09-05 18:33:04
【问题描述】:

我正在使用osmdata 包来查找哥伦比亚波哥大地区的银行。直接使用overpass网页时,我找到了以下对象,但是R API没有找到任何东西。有什么问题?

使用立交桥

node[amenity=bank]
  (4.6304414673187,-74.075607061386,4.6332058140013,-74.072549343109);
out;

使用 R

library(osmdata)
library(mapview)

my_box <- c(4.6304414673187,-74.075607061386,4.6332058140013,-74.072549343109);
bank_pol <- opq(bbox = my_box, timeout = 25*100) %>% 
            add_osm_feature(key = "amenity", "bank") %>% 
            osmdata_sf()

bank_pol$osm_polygons
Simple feature collection with 0 features and 1 field
bbox:           xmin: 1.797693e+308 ymin: 1.797693e+308 xmax: -1.797693e+308 ymax: -1.797693e+308
geographic CRS: WGS 84
[1] osm_id   geometry
<0 rows> (or 0-length row.names)

mapview(bank_pol$osm_polygons)

【问题讨论】:

    标签: r openstreetmap sf


    【解决方案1】:

    my_box 可以是 matrixvector,正如 opq 的文档所述

    bbox - (i) 指定最大和最小经度和纬度的四个数值,形式为 c(xmin, ymin, xmax, ymax) 或 (ii) 形式为 xmin,ymin,xmax 的字符串,最大。这些将被传递给 getbb 以转换为数字边界框。也可以是 (iii) 表示从 getbb(..., format_out = "polygon") 返回的边界多边形的矩阵。

    使用getbb,生成的输出是matrix,x 值在顶行,y 值在下面

    getbb("Bogota", display_name_contains = "Colombia")
    #        min       max
    #x -74.223514 -74.01025
    #y   4.471175   4.83317
    
    
    getbb("Bogota", display_name_contains = "Colombia") %>%
        opq() %>% 
        add_osm_feature(key = "amenity", "bank") %>%
        osmdata_sf() -> bank_pol
    

    所以,如果我们检查 OP 的 vector,一些 'x' 和 'y' 值是相反的。它可以被创建为

    my_box <- c(-74.075607061386, 4.6304414673187, -74.072549343109, 4.6332058140013)
    

    现在,拨打opq

    bank_pol <- opq(bbox = my_box, timeout = 25*100) %>% 
             add_osm_feature(key = "amenity", "bank") %>% 
             osmdata_sf()
    

    -检查数据

    bank_pol$osm_polygons
    #Simple feature collection with 3 features and 18 fields
    #geometry type:  POLYGON
    #dimension:      XY
    #bbox:           xmin: -74.07552 ymin: 4.630524 xmax: -74.07264 ymax: 4.633099
    #geographic CRS: WGS 84
    #             osm_id            name addr.city addr.country addr.district #addr.housenumber       addr.state addr.street
    #392010374 392010374     Bancolombia    Bogotá           CO   Teusaquillo            40-95 Distrito Capital  Carrera 24
    #392010458 392010458 Banco AV Villas    Bogotá           CO   Teusaquillo         40-71/73             <NA>  Carrera 24
    #394955633 394955633            <NA>    Bogotá           CO   Teusaquillo            42-19             <NA>  Carrera 24
    #          addr.suburb amenity  atm       brand brand.wikidata brand.wikipedia building building.levels    operator
    #392010374  La Soledad    bank  yes Bancolombia        Q806206  en:Bancolombia      yes               2 Bancolombia
    #392010458  La Soledad    bank <NA>        <NA>           <NA>            <NA>      yes               4        <NA>
    #394955633  La Soledad    bank  yes        <NA>           <NA>            <NA>      yes               2  Davivienda
    #                            source                       geometry
    #392010374 Kaart Ground Survey 2017 POLYGON ((-74.07546 4.63140...
    #3392010458 Kaart Ground Survey 2017 POLYGON ((-74.07546 4.63112...
    #394955633                     <NA> POLYGON ((-74.0754 4.632585...
    

    -情节

    mapview(bank_pol$osm_polygons)
    

    也可以使用ggmap

    library(ggplot2)
    library(ggmap)
    library(sf)
    library(osmdata)
    
    bogota_map <- get_map(getbb("Bogota", 
       display_name_contains = "Colombia"), maptype = "toner-background")
    
    ggmap(bogota_map) + 
       geom_sf(data = bank_pol$osm_points, inherit.aes = FALSE,
               colour = "#238443",
               fill = "#004529",
               alpha = .5,
               size = 4,
               shape = 21)+
       labs(x = "", y = "")
    

    【讨论】:

    • 你好 akrun,最后的结果是给我带来了来自南美洲各地的 5837 个多边形,而我只需要波哥大的一个多边形的堤岸。
    • @RafaelDíaz 你是对的。我通过重新排列矢量来更新
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多