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

Posted

技术标签:

【中文标题】将 shp 文件(sf 对象)转换为 osm pbf?【英文标题】:Converting shp file (sf object) to osm pbf? 【发布时间】:2021-12-23 16:05:02 【问题描述】:

我在谷歌上搜索过这个问题,但找不到解决方案。

我已经使用 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 格式)。

【问题讨论】:

我认为将它保存为 .pbf 而不是 .shp 是一个好的开始,就像您在代码中所做的那样。不确定是否仅此一项 数据在 ESRI shapefile 中可用,我想将其用于仅接受 .pbf 街道网络的 Open Trip Planner。 嗨@Xaviermoros。请在下面找到我的答案。我希望它能解决你的问题。如果是这样,请考虑将此答案标记为“已接受”和/或“赞成”。如果没有,请告诉我出了什么问题。干杯 您好,这真的很有帮助,我已经接受了您的解决方案。正如您所说,我已设法将我的 shp 转换为 osm 但不是 .osm.pbf 。这不会在框中弹出。相反,我只找到了 .osm。 我会检查我是否正确下载了pbf插件 【参考方案1】:

据我所知,我不知道将.shp 文件从R 转换为.pbf.osm 文件的方法/包。sf 库只能读取它而不能写入它。

不过,有一个使用开源软件JOSM

的解决方案

安装 JOSM

要安装软件,你可以从这个链接https://josm.openstreetmap.de/下载它

安装和激活 JOSM 插件

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

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

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

使用 JOSM

要使用它,这很简单:

要打开您的.shp 文件,请转到File menu -&gt; Open menu。在对话框的弹出菜单中,您应该会看到 Shape Files 扩展名

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

一切都应该正常工作:-)

【讨论】:

以上是关于将 shp 文件(sf 对象)转换为 osm pbf?的主要内容,如果未能解决你的问题,请参考以下文章

关于openstreet map的osm文件转shp文件方法(附arcgis10.2插件)

ArcGIS建筑物简化和建筑物群聚合算法实验

R矢量地图栅格化(将shapefile转换成raster)

如何将shp文件转换为mapgis文件

将 sf 对象列表转换为一个 sf

将shp文件转换为mapgis文件后为啥会带有颜色