微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:找到重叠的几何图形:链接路线和道路

如何解决R:找到重叠的几何图形:链接路线和道路

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

一些(很少)虚拟数据:


my_route=data.frame(
  stringsAsFactors = FALSE,origin = c("E02001186","E02001260"),destination = c("E02001186",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.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)


解决方法

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

st_join(routes,roads)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。