Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将替代道路从shapefile文件插入到OpeenStreetMap中。它';有可能吗?_R_Openstreetmap_Shapefile_Sf_Osrm - Fatal编程技术网

将替代道路从shapefile文件插入到OpeenStreetMap中。它';有可能吗?

将替代道路从shapefile文件插入到OpeenStreetMap中。它';有可能吗?,r,openstreetmap,shapefile,sf,osrm,R,Openstreetmap,Shapefile,Sf,Osrm,我想问一个问题:我使用下面的代码来查找一个点和另一个点之间的最短路径,使用的是shapefile格式的点文件。我能够使用osrm软件包在地图上插入路线和绘图。如附件所示,路线已绘制并由OpenStreetMap查看。 但是,我有另一个shapefile文件,它只是高速公路,并且有OpeenStreetMap没有的替代道路 那么,是否可以在OpenStreetMap中以某种方式插入这些备选道路?如果没有,您可以指出我可以做什么的替代方案,因为我想在地图上绘制这条最短路径,但是OP没有所有可能的道路

我想问一个问题:我使用下面的代码来查找一个点和另一个点之间的最短路径,使用的是shapefile格式的点文件。我能够使用osrm软件包在地图上插入路线和绘图。如附件所示,路线已绘制并由OpenStreetMap查看。 但是,我有另一个shapefile文件,它只是高速公路,并且有OpeenStreetMap没有的替代道路

那么,是否可以在OpenStreetMap中以某种方式插入这些备选道路?如果没有,您可以指出我可以做什么的替代方案,因为我想在地图上绘制这条最短路径,但是OP没有所有可能的道路

library(sf)
library(osrm)
library(cartography)

shp<-read_sf("point_UTM.shp")
shp<-st_transform(shp,4326) #

#shortest path between 9 and 15
dr<-osrmRoute(shp[9,],shp[15,], returnclass = "sf")
plot(st_geometry(dr))

#create route for map
route <- osrmRoute(src = shp[9,], dst = shp[15,],
                   overview = "full", returnclass = "sf")

#Map view
osm <- getTiles(x = route, crop = TRUE, type = "osm", zoom = 13)
tilesLayer(osm)

# add map route
tilesLayer(osm)
plot(st_geometry(route), lwd = 4, add = TRUE)
plot(st_geometry(route), lwd = 1, col = "white", add = TRUE)
plot(st_geometry(shp[c(9,15),]), pch = 20, col = "red", add = TRUE)

库(sf)
图书馆(osrm)
图书馆(制图)

有其他路线吗?你问的是道路吗?谢谢你的回答。是的,朋友。你能帮我吗?不幸的是,没有,到目前为止还没有使用过Shapefile。要合并OSM文件(XML或PBF),请参阅osmium工具。@您可以使用sf包中的SpatialLines函数,然后从传单包中添加多段线。其他路线?你问的是道路吗?谢谢你的回答。是的,朋友。你能帮我吗?不幸的是,没有,到目前为止还没有使用过Shapefile。有关合并OSM文件(XML或PBF)的信息,请参阅osmium工具。@您可以使用sf包中的SpatialLines函数,然后从传单包中添加多段线。