将 shp 文件(sf 对象)转换为 osm pbf?

Converting shp file (sf object) to osm pbf?

我用谷歌搜索了这个问题,但找不到解决方案。

我已经使用 st_read 将 shp shapefils 加载到 R 上。我想将 shapefile 写入 OSM .pbf 格式。

这里有一个示例代码供您参考:

library(sf)
adminstrativeboundary2018 <- st_read("adminstrative_boun.shp")
st_write(adminstrativeboundary2018, dsn = "adminstrativeboundary2018.shp", layer = "adminstrativeboundary2018.pbf", driver = "OSM")

关于如何将我的原始 shapefile 写入 pbf 的任何建议(我需要将我的 shapefile 转换为 osm 的 pbf 格式)。

据我所知,我不知道 method/package 可以将 .shp 文件从 R 转换为 .pbf.osm 文件。sf 库只能读而不写。

但是,使用开源软件有一个解决方案JOSM

正在安装 JOSM

要安装软件,可以从这里下载linkhttps://josm.openstreetmap.de/

安装并激活 JOSM 插件

安装软件后,您需要安装并激活两个插件。为此,请转到以下菜单:Edit Menu -> Preferences Menu -> Plugins Tab 在搜索栏中,键入:

  • opendata(这是允许 JOSM 软件读取 .shp 文件的插件)
  • pbf(这是读取和保存.pbf.osm个文件的插件)

您必须重新启动软件才能使 opendata 插件正常工作

使用 JOSM

要使用它,这个很简单:

  • 要打开 .shp 文件,请转到 File menu -> Open menu。在对话框的弹出菜单中,您应该看到 Shape Files extension

  • 要以 .pbf.osm 格式保存,请转到 File menu -> Save As menu。在对话框的下拉菜单中,您应该看到扩展名 pbf compressed files from OSM server (.osm.pbf).

一切都应该正常:-)