【问题标题】:Questions regarding the stplanr package in R关于 R 中的 stplanr 包的问题
【发布时间】:2020-07-07 06:38:13
【问题描述】:

我希望您对 stplanr 包 (https://cran.r-project.org/web/packages/stplanr/stplanr.pdf) 的 route_local 功能提供帮助,该功能位于第 89 页。

您可能会意识到从示例函数生成了一个地图,显示了两点之间的路径(我留下了代码和下面生成的图像)​​。我想做同样的事情。就我而言,它显示了考虑我的道路的两点之间的路径。两者都是 shapefile 文件。我设法生成要显示的道路(下面的代码),但我想显示这些道路的任意两点之间的路线。有人能帮我吗?? 我把它留在了以下站点 https://github.com/JovaniSouza/JovaniSouza5/blob/master/Example.zip 以下载 shapefile。

library(geosphere)
library(sf)
library(stplanr)

roads<-st_read("C:/Users/Jose/Downloads/Example/Roads/Roads.shp")
p <- SpatialLinesNetwork(roads, uselonglat = FALSE, tolerance = 0)
plot(p)

代码生成的地图

示例

from <- c(-1.535181, 53.82534)
to <- c(-1.52446, 53.80949)
sln <- SpatialLinesNetwork(route_network_sf)
r <- route_local(sln, from, to)
plot(sln)
plot(r$geometry, add = TRUE, col = "red", lwd = 5)
plot(cents[c(3, 4), ], add = TRUE)
r2 <- route_local(sln = sln, cents_sf[3, ], cents_sf[4, ])
plot(r2$geometry, add = TRUE, col = "blue", lwd = 3)

【问题讨论】:

    标签: r shapefile stplanr


    【解决方案1】:

    试试这个。为了使示例适应您的情况,您必须将 roads 的坐标系转换为 points shapefile(或相反):

    library(geosphere)
    library(sf)
    library(stplanr)
    
    roads <- st_read("Example/Roads/Roads.shp")
    points <- st_read("Example/Points/Points.shp")
    
    # Convert roads to coordinate system of points
    roads_trf <- st_transform(roads, st_crs(points))
    # Convert to points to SpatialPointsDataframe
    points_sp <-  as(points, "Spatial")
    
    from <- c(-49.95058, -24.77502) # Feature 1
    to <- c(-49.91084, -24.75200) # Feature 9
    p <- SpatialLinesNetwork(roads_trf, uselonglat = FALSE, tolerance = 0)
    r <- route_local(p, from, to)
    plot(p)
    plot(r$geometry, add = TRUE, col = "red", lwd = 5)
    plot(points_sp[c(3, 4), ], add = TRUE)
    r2 <- route_local(sln = p, points[3, ], points[4, ])
    plot(r2$geometry, add = TRUE, col = "blue", lwd = 3)
    

    【讨论】:

    • 非常感谢 stefan,对于这个例子,它工作正常。但是,我使用的道路很少。当我去使用多条道路时,它给出了以下错误:error: Mat::rows(): indices out of bounds or incorrectly used Error in coord_matches_sf(as.matrix(nodecoords %&gt;% dplyr::select(.data$X, : Mat::rows(): indices out of bounds or incorrectly used 你能用这个文件用多条道路做一个测试吗?我在drive.google.com/file/d/1krpRiU2RBPWQiVz0KOaHn0JY5zCAY2eH/…网站上插入了所有道路的shapefile,文件名为complete_roads。
    • 嗨 stefan,如果你不能测试它,没问题。我可以在 SO 上提出一个关于这个问题的新问题。到目前为止再次感谢。
    • (: Hi @Jose。在检查了您的数据后,恐怕我无法在这个问题上为您提供帮助。不确定这是否与您的数据或包中的错误有关。除了询问关于 SO 的另一个问题你也可以在 stplanr 包的 github 页面上提出问题。顺便说一句:我可以告诉你的是,如果一个人只使用你的数据样本,例如只使用前 10 个或 20 个数据,问题也会出现行。因此,我建议您在问题中仅添加数据样本。
    • 感谢 Stefan 的回复。
    • 你好 stefan,关于这个问题的任何想法:stackoverflow.com/questions/63092033/…
    猜你喜欢
    • 2012-06-10
    • 2020-07-18
    • 2017-12-02
    • 2021-05-15
    • 2015-08-06
    • 2023-03-22
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    相关资源
    最近更新 更多