问题标签 [osmium]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
962 浏览

python - 安装python包失败(锇)

我正在尝试将一个名为 osmium 的 python 包安装到我用 venv 创建的虚拟环境中。激活虚拟环境并从虚拟环境的 Scripts 目录中调用

失败(下面的错误消息)。我正在使用 pycharm 作为 IDE。尝试通过 IDE 安装 osmium 也失败了。

有趣的是,我有一位同事使用相同的计算机和相同版本的 python 和 pycharm,他成功安装了 osmium。他直接依赖 pycharm 创建的虚拟环境(我认为是使用 virtualenv 而不是 venv),从不使用 venv 并且没有问题。

我什至重新安装了 python 和 pycharm 都无济于事。我想知道这里发生了什么。为什么会发生这种情况?即使重新安装后导致失败的原因是什么(是否保留了一些 python 和 pycharm 的痕迹?)

错误信息是:

0 投票
1 回答
151 浏览

python - 启用处理程序类方法以产生实例属性

这个问题是关于包的pyosmium。我只是想知道以下功能是否可行,如果不可行,如何实现。

我想流式传输/产生某些实例属性,而不是在内存中更新它们。

目前我们可以做到以下几点:

但是,在处理大区域时,这是不可扩展的。

我想要一种为每个 WayObject 生成包含 WayIds 和相关 NodeIds(以及标签等)的字典对象的方法。这可能吗?

我正在寻找这样的东西:

但我不确定如何传递w参数(WayObject),因为这似乎是使用该apply_file()方法在内部处理的(而且我似乎无法找到该方法的源代码)。

谢谢!

编辑:源代码可以在这里找到

0 投票
1 回答
112 浏览

ubuntu - 在 Google Dataflow Worker 上配置 Linux Distro?

我的 Beam/Dataflow 管道涉及一些使用 Linux CLI 工具(特别是osmium-tool版本 >= 1.9.1)的数据处理,该工具仅适用于一些较新的 Ubuntu 发行版(cosmicdisco)。我找不到有关 Dataflow Workers 的操作系统规范的任何文档,或者它是否可配置。

任何帮助将不胜感激,谢谢!

0 投票
1 回答
181 浏览

c++ - 使用 OSM 数据时方式之间的离线路由断开问题

我有我的城市的 osm 文件,我正在使用 Libosmium 来读取它,并且我将每种方式的节点存储为我的图形的顶点,并在每种方式的每个 2 个相邻节点之间制作边,并计算它们之间的欧几里德距离。

问题是:

这些方式没有相互连接!即使谷歌地图中有一条路线,我也无法从源头到达目的地,但是路径之间没有节点相交(没有公共节点),所以我无法到达目的地!我应该将哪些节点添加到我的图表中,以及如何正确桥接它们?所以我可以从我的节点到达我的目的地?
我用来创建边缘的代码如下

0 投票
1 回答
149 浏览

openstreetmap - 锇 - 将输出标头添加到 PBF

我创建了多个合成 OSM PBF 文件,pyosmium稍后我想合并它们并使用osmium可执行文件在 PBF 上设置一些自定义标头以用于存档目的。

但是,诸如

osmium cat --no-progress example1.pbf example2.pbf --output-header=sorting=blabla -O -o test_data.pbf

没有设置任何可用的标题osmium fileinfo。根据libosmium的文档,应该可以设置任意标头键/值对。我可以永久更改的唯一标题是generator,所以这有效:

osmium cat --no-progress example1.pbf example2.pbf --output-header=generator=blabla -O -o test_data.pbf

我可以想象问题是输入 PBF 没有我想在输出 PBF 中设置的标题(输入 PBF 实际上确实有generator标题)。但是,如果这是问题所在,我如何使用pyosmium将标题添加到我首先创建的 PBF 中?

0 投票
1 回答
221 浏览

c++ - 使用 build-appveyor 构建 C++ 项目

我不知道C++,但我需要构建 C++ 应用程序 - Osmium 工具。我不知道构建 C++ 程序真的很难。我想要的只是创建.exe文件来合并地图。这是我的简单目标。

所以文档说

在 Windows 上,您可以使用 Visual Studio C++ 编译器和 nmake 进行编译。可以使用 conda 安装必要的依赖项。有关编译 osmium-tool 的必要命令,请参见appveyor.yml

appveyor.yml文档说:

环境:矩阵:-配置:调试-配置:发布

浅克隆:真

操作系统(构建VM模板)操作系统:Visual Studio 2015

平台:x64

在 repo 克隆 init 之前一开始就调用的脚本:

克隆目录clone_folder:c:\projects\osmium-tool

安装: - cd c:\projects - git clone --depth 1 https://github.com/osmcode/libosmium - git clone --depth 1 https://github.com/mapbox/protozero

build_script: - cd c:\projects/osmium-tool - build-appveyor.bat

我已经完成了上述所有步骤,现在我正在尝试在 Windows 10 中运行:

但是,我看到了错误:

一个图像: 在此处输入图像描述

伙计们,我做错了什么?请帮我!任何帮助将不胜感激。

0 投票
0 回答
234 浏览

node.js - 如何修复 v8 已弃用的 GetFunction?

我正在尝试修复node-osmium以便它与 Node 12 一起使用,因为我有一些我想运行的旧代码。

v8 现在已经完全弃用了许多不能正确发出故障信号的 API。这些以前只是即将弃用的警告,现在它们是错误,因此将不再构建。我(想我已经)通过遵循这个 CPP STYLE GUIDE.md 的使用可能版本的 v8 API部分来修复其中的大部分。

但是,我对 GetFunction 遇到了这个错误:

我认为这是与其他函数类似的修复,但是我从哪里获取此构造函数中的上下文?

node-osmium/src/utils.hpp 中提取

0 投票
1 回答
236 浏览

python - 使用 pyosmium 将 .pbf 文件转换为 .osm

我从 geofabrik.de 下载了一个相当大的文件,它是 pbf 的形式。我需要将其转换为 osm 文件,以便从文件中提取节点和边。我已经使用 pip install osmium 下载了 osmium 库,但它只是给了我一个错误

ModuleNotFoundError:没有名为“锇”的模块

有人可以帮助我如何使用锇吗?

0 投票
0 回答
228 浏览

leaflet - 如何使用 osmosis 或 osmium 清理 *.osm.pbf 文件(删除不需要的节点、关系、方式)

我最近开始深入研究如何处理原始 osm 数据,然后将它们转换为 *.mbtiles 以将矢量图块提供给我的 Web 应用程序。由于地图只需要低细节(主要用于显示航空数据),我不需要建筑物但想保留一些细节(出于美学原因,公园、机场、水道等)。

到目前为止,我已经尝试过使用 osmium 和 osmosis,结果还不错。仍然需要永远处理一个国家(我现在需要整个欧洲)。在 osmosis 中移除建筑物会产生比在 osmium 中更小的文件?可能我的设置有误。也许还有其他工具可能更适合这项工作?

你能指出我正确的方向吗?我认为现在有街道、水、机场地标和公园/森林就足够了。

到目前为止,我已经使用下面的命令进行了尝试,但仍然需要在 aws 上的 c4.large 实例中使用 openmaptiler 导入。

我的第二种方法是使用锇

我真的很感谢这里的一些帮助,以更好地理解使用 osm 数据。

非常感谢!

0 投票
1 回答
190 浏览

python - 如何从 .osm xml 文件中提取关系成员

全部,

我一直在尝试建立一个网站(在 Django 中),该网站将成为世界上所有 MTB 路线的索引。我是 Pythonian,所以无论我在哪里都可以尝试使用 Python。

我已经成功地从 OSM API 中提取了数据(在传单中显示关系(轨迹)),但发现对所有 MTB 轨迹(标签:路由 = mtb)执行此操作的数据太多(处理需要很长时间)。因此,我尝试通过下载整个 OpenStreetMap 数据集(来自最新的每周星球 XML 文件)的种子并使用 osmfilter(Ubuntu 20.04 中的 osmctools 的一部分)过滤标签:route=mtb,在本地完成所有操作,如下所示:

这会产生一个大约 1.2 GB 的文件,仔细检查似乎包含了我需要的所有数据。我的目标是将文件转换为 pandas.DataFrame() 以便在将相关方面推送到我的 Django DB 之前进行一些进一步的过滤和转换。我尝试使用 Python Pandas 将文件加载为常规 XML 文件,但这使 Jupyter notebook 内核崩溃。估计数据太大了。

我的第二种方法是这个解决方案:如何在 Python 中从 OSM 文件中提取和可视化数据。它对我有用,至少,我可以获得一些信息,例如文件中关系的标签(以及其他指定的详细信息)。我缺少的是关系成员(方式),然后是方式成员(节点)及其纬度/经度。我需要这些来实现我在这里所做的:绘制 OpenStreetMap 关系不会生成连续线

我对许多解决方案持开放态度,例如,可以使用基于 osmium 的脚本将文件分解为许多不同的文件,其中包含 1 个关系及其每个文件的成员。也许那时我可以继续使用 pandas.read_xml()。这对于填充数据库的批处理非常有用。将整个 OSM XML 文件加载到 pd.DataFrame 会很好,但我想这确实是很多数据。也许这也可以在与 pyosmium 的每个关系的基础上完成?

任何帮助表示赞赏。