小编Gwe*_*war的帖子

从铁路网络shapefile提取车站之间的路线

问题:我想从shapefile中提取两个站点之间沿铁路网络的路线,并且仅绘制此特定路线,而不是整个网络。

这是我到目前为止的内容:

我在英国的整个铁路网络中都有一个shapefile,将其绘制如下:

library(maptools)
rail <- readShapeSpatial("railnetworkLine.shp")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我也有一个包含Eastings和Northings的电台列表,例如:

 1) ABDARE 300400 202800
 2) DEIGHTN 416490  419140
Run Code Online (Sandbox Code Playgroud)

我可以将它们添加到地图中,如下所示:

plot(rail)
plot(spdf.station, add=TRUE, col="red", pch=20)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

因此,我不知道如何提取它们之间的路线并绘制该路线-信息显然在shapefile中,并且我具有测站的坐标,但我不知道如何提取它。

我设法用以下代码计算了它们之间的距离:

SpacingInMetres <- 10000
require(secrlinear)
network <- read.linearmask(data=rail, spacing=SpacingInMetres)
distance <- (networkdistance (stations[1,], stations[2,], network))/1000

# Confirm distance:
distance
>311.7893
Run Code Online (Sandbox Code Playgroud)

而且我发现您可以使用Google Maps获取沿道路的路线ggmaps(请参阅此处)。但是,如果将shapefile作为网络输入而不是Google Maps,该怎么办?

我认为也许'shp2graph'+'igraph'软件包很有用,但我无法弄清楚。有什么想法吗?

r geospatial shapefile igraph

6
推荐指数
1
解决办法
364
查看次数

标签 统计

geospatial ×1

igraph ×1

r ×1

shapefile ×1