问题标签 [osmosis]
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.
openstreetmap - 如何使用 OSMFilter 仅从 DB 中提取方式标记而无需其他实体
我面临的问题相当复杂。我使用 OSM 编辑器,我可以在其中覆盖某些方式属性。这些属性是称为“maxspeed:backward”和“maxspeed:forward”的标签。有时我想用 OSM 官方数据(新道路、在建道路等)更新我的本地地图。
我想要的是将我的本地地图与官方 osm 合并,以保留来自官方来源的所有道路和节点更改,但保留我的标签与来自编辑器的值。我使用 Postgres DB、osmosis(合并工具)、osmfilter 和 osmconvert 工具。
这是我发现的过程:
1. 从编辑器中获取我的本地地图并仅过滤掉标签。没有节点、方式、关系。
2.取官方OSM图,只过滤掉标签(同步骤1)
3. 使用冲突结果策略将这些来源与 osmosis 合并 - 我的本地标签值覆盖官方 OSM 地图。
4. 再次使用官方 OSM 地图,但现在我删除了标签,所以我得到了没有我正在使用的标签的完整地图。
5. 使用冲突结果策略将步骤 3 的结果(正确的标签和值)与步骤 4 的结果(没有标签的官方地图)合并 - 官方地图节点覆盖我的本地。
我想要实现的是用我自己的标签去匹配最新的地图。
我对第 1 步有疑问。我可以从 DB ONLY 标签中检索吗?没有任何节点或其他信息可以在步骤 5 中覆盖官方地图?我在 DB 标记中看到的内容被放置在单独的表中,并且已经引用了 whe way_id
,所以如果我将该值与另一个具有相同way_id
.
我尝试使用 osmfilter 是:
./osmfilter $EDITED_OSM_NAME --keep-tags="all maxspeed:backward= maxspeed:forward= maxspeed=" -o=$EDITED_OSM_TAGS
它正确过滤 - 只有列出的标签在输出 pbf 文件中,但是有没有可能在没有任何节点、方式、关系等的情况下检索它们?
我也尝试过使用--drop-relations
, --drop-ways
, --drop-nodes
,--ignore-dependencies
但它没有按我希望的方式工作。
提前感谢您的帮助。
python - 使用 Osmosis 使用边界框从较大的 pbf 文件中提取地图
我有大量的经纬度数据集。mplleaflet 不堪重负。确定我的 BBox 后,OpenStreetMap 产生了“节点太多...”错误。并推荐了planet.osm。根据发布的建议,我从 Geofabrik.org 下载了一个状态,然后安装了 Java 和 Osmosis,以便从 Geofabrik 的 xxx.osm.pbf 文件中提取我的区域。我认为它已经准备好了,但是虽然 Osmosis https://wiki.openstreetmap.org/wiki/Bounding_Box听起来很容易提取我需要的东西,但这个例子没有任何意义。我有一个边界框。我在 Osmosis 网站上找到的最接近的示例在这里:https ://wiki.openstreetmap.org/wiki/Osmosis#Example_usage. 我不明白这与 xx.osm.pbf 文件有何关系,或者“改用 CONIN$”指的是什么。任何帮助深表感谢。一旦我能够做到这一点,这似乎会很有趣。
osmosis - 使用 osmosis 提取功率数据时,节点中缺少功率标签
我正在尝试使用开源项目 SciGRID 来开发电力网络。为此,我需要提取节点、方式和关系的权力标签。
SciGRID 用户指南第 10 页中提供了以下代码,通过使用来自更大区域 (asia-latest.osm. pbf)。
我遇到的问题是节点的电源标签似乎不可用,而方式和关系的电源标签可用。
为了查看用户指南规定要使用的内容osm2pgsql
。这会将与电源相关的数据导出到 postgres(postgis) 数据库中。下面的代码做到了,
power.style 文件的内容,
这导致形成了几个表,并且节点表不包含标签列,而方式和 rels 表包含标签列。有没有人碰巧知道为什么节点表不包含标签列?
leaflet - 如何使用 osmosis 或 osmium 清理 *.osm.pbf 文件(删除不需要的节点、关系、方式)
我最近开始深入研究如何处理原始 osm 数据,然后将它们转换为 *.mbtiles 以将矢量图块提供给我的 Web 应用程序。由于地图只需要低细节(主要用于显示航空数据),我不需要建筑物但想保留一些细节(出于美学原因,公园、机场、水道等)。
到目前为止,我已经尝试过使用 osmium 和 osmosis,结果还不错。仍然需要永远处理一个国家(我现在需要整个欧洲)。在 osmosis 中移除建筑物会产生比在 osmium 中更小的文件?可能我的设置有误。也许还有其他工具可能更适合这项工作?
你能指出我正确的方向吗?我认为现在有街道、水、机场地标和公园/森林就足够了。
到目前为止,我已经使用下面的命令进行了尝试,但仍然需要在 aws 上的 c4.large 实例中使用 openmaptiler 导入。
我的第二种方法是使用锇
我真的很感谢这里的一些帮助,以更好地理解使用 osm 数据。
非常感谢!
openstreetmap - 使用 osmosis 快照模式创建 osm-pbf 的 Postgres 数据失败
我已经使用渗透快照模式将 pbf 导入到 postgres
现在想使用以下命令从该架构创建 pbf
osmosis --read-pgsql 主机=localhost 数据库=osmosisv1 用户=postgres 密码=postgres postgresSchema=contry_snapshot validateSchemaVersion=no --dataset-dump --write-pbf C:\usr\share\osm.pbf
但得到以下异常
openstreetmap - 如何使用 osmosis 删除特定的节点 ID
我将多个 OpenStreetMap 源文件(XML osm 和二进制 pbf)合并到一个文件中:
在处理某些具有特定节点 ID(即<node id="1234">
, <node id="2345">
...)的节点时,不应将其包含在merge.pbf
. 这可能与渗透有关吗?
问候,
openstreetmap - 合并来自 Geofrabik 的多个 PBF 文件以在 Nominatim 中使用
如果你想合并来自Geofrabik的多个 osm.pbf 文件,你可以这样做:
首先安装 OSMCTOOLS:
下载您喜欢的 osm.pbf 文件并转换为 o5m 文件
然后将它们全部合并到一个 o5m 文件中:
然后将您的 o5m 文件转换为 osm.pbf 文件
现在您有了一个可用于 Nominatim 导入的 OSM.PBF 文件
extract - 如何使用 OSMOSIS 提取多面数据
要更新我的数据库,我需要从 OSM 数据库中提取一些数据。为此,我从 GEOFABRIK 网站下载了 osm pbf 文件。我希望从这个 PBF 文件中提取所有具有一些关键值的多边形和多多边形。我的问题是我在 osmosis 中使用的任何命令行,似乎我错过了 multipolygon 类型的对象。为了说明我的问题,您将在关键字 amenity 中找到我用于带有标签 townhall 的对象的命令。
为此,我尝试了一些命令:
或者
和那些命令行
我使用哪个命令都没有关系,结果总是一样的。你可以在图片上看到,绿色是原始数据集,紫色是我提取的市政厅。例如,以红色包围的对象在我的提取中丢失。
我也尝试过 AKX 带来的解决方案,但即使在那里,我仍然想念我所在地区最大的市政厅。OSM 似乎是一个非常好的数据库,我希望更多地使用它。
所以谢谢你的帮助。
java - 如何解决渗透错误执行中止?
我一直在尝试在 MacOS v. 11.6 上过滤 .OSM 数据作为 SciGRID 的一部分。不过,我是终端命令的初学者。每次我尝试在终端中运行 osmosis 时,都会出现以下错误:
我已经通过 Homebrew 下载了 osmosis 并尝试了以下解决方案,例如将 jar 文件添加到 /lib/default 文件夹。但似乎没有任何效果,我不太了解错误消息或 mapfile-writer 或 mapsforge 的需要/使用。我正在尝试运行基本命令:
任何帮助表示赞赏。