【问题标题】:R: find overlapping geometries: link routes and roadsR:查找重叠的几何图形:连接路线和道路
【发布时间】:2021-06-03 14:23:17
【问题描述】:

我有一个交通路线数据集(sf 对象),我想将它们链接到街道(即知道每条路线中包含哪些街道)。 有什么可能的方法?

一些(非常少的)虚拟数据:


my_route=data.frame(
  stringsAsFactors = FALSE,
                 origin = c("E02001186", "E02001260"),
                 destination = c("E02001186", "E02001260"),
                 geometry = c("c(-2.438813, -2.438813, 53.429707, 53.429707)",
                       "c(-2.350659, -2.350659, 53.457229, 53.457229)")
)

roads=data.frame(
  stringsAsFactors = FALSE,
            osm_id = c(779434L, 779437L),
              name = c("Ruskin Avenue", "Barnes Avenue"),
          geometry = c("c(-1.5178758, -1.5171935, -1.5170291, -1.5168588, -1.5163581, -1.5158187, -1.5156387, -1.5154735, -1.5153933, -1.5146483, -1.5132778, -1.5126556, 53.7011323, 53.7013923, 53.7014655, 53.701575, 53.7020413, 53.7025049, 53.7026595, 53.7027965, 53.7028383, 53.7032271, 53.7039413, 53.7042654)",
                       "c(-1.5132778, -1.5113646, 53.7039413, 53.7031114)")
)


道路和路线的完整数据(以上数据集仅包括几行和几列)可以使用:

library(stplanr)

od_data <- stplanr::flow[1:20, ]
desire_lines_ <- od2line(flow = od_data, zones = cents_sf)


routes= route(l = desire_lines_, route_fun = route_osrm)


library(osmextract)
library(osmdata)


chorlton_point = tmaptools::geocode_OSM("bristol")
c_m_coordiantes = rbind(chorlton_point$coords, chorlton_point$coords)
c_m_od = od::points_to_od(p = c_m_coordiantes, interzone_only = TRUE)
c_m_desire_line = od::odc_to_sf(c_m_od[-(1:2)])[1, ]
chorlton_buffer = stplanr::geo_buffer(c_m_desire_line, dist = 1000)
qtm(chorlton_buffer)


iow_sf_polygon <- getbb("bristol", format_out = "sf_polygon")

roads = oe_get(chorlton_buffer, stringsAsFactors = FALSE, quiet = TRUE)


【问题讨论】:

  • 您是否从sf 包中查看过st_join()?这就是我要尝试解决的问题。

标签: r maps polygon


【解决方案1】:

这似乎适用于您提供的“完整数据”:

st_join(routes, roads)

【讨论】:

    猜你喜欢
    • 2012-05-24
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2020-10-11
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    相关资源
    最近更新 更多