gpt4 book ai didi

postgresql - 为 postgis 过滤 openstreetmap 数据

转载 作者:行者123 更新时间:2023-11-29 12:24:58 24 4
gpt4 key购买 nike

我正在创建一个 postgis 数据库并希望使用经过过滤的 OpenStreetMap 数据。

为此,我尝试了以下过程:

  1. https://planet.osm.org/ 下载了 planet.osm.bz2 文件
  2. 使用 bzip2 解压为 *.osm
  3. 通过命令提示符使用 osmfilter 过滤文件
  4. 在命令提示符下使用 osm2pgsql 将过滤后的 *.osm 文件上传到我的数据库

在我的第一次尝试中,我只过滤了土地面积。

但是,在使用 osm2pgsql 的第 4 步中,我在命令提示符中收到以下错误:"Osm2pgsql failed due to ERROR: XML parsing error at line 3137102, column 61: not 格式正确(无效标记)"

如我的 Windows 计算机上的命令提示符所示:

Z:\OpenStreetMap>osm2pgsql -U postgres -W -m -d osm -p filteredland -S "C:\Progr
am Files (x86)\HOTOSM\share\default.style" filteredland2.osm
osm2pgsql version 0.92.0 (64 bit id space)

Password:
Using built-in tag processing pipeline
Using projection SRS 3857 (Spherical Mercator)
Setting up table: filteredland_point
Setting up table: filteredland_line
Setting up table: filteredland_polygon
Setting up table: filteredland_roads
Allocating memory for sparse node cache
Node-cache: cache=800MB, maxblocks=12800*65536, allocation method=1
Mid: Ram, scale=100

Reading in file: filteredland2.osm
Using XML parser.
Processing: Node(1230k 61.5k/s) Way(0k 0.00k/s) Relation(0 0.00/s)node cache: st
ored: 1233078(100.00%), storage efficiency: 50.00% (dense blocks: 0, sparse node
s: 1233078), hit rate: -nan(ind)%
Osm2pgsql failed due to ERROR: XML parsing error at line 3137102, column 61: not
well-formed (invalid token)

我也尝试过两条替代路线,但都失败了:

  1. 正在下载 planet.pbf -> 使用 osmconvert 转换为 .o5m ->使用 osmfilter 过滤

  2. 正在下载 planet.pbf -> 使用 osmconvert 转换为 .osm ->使用 osmfilter 进行过滤(给出警告)-> 使用 osm2pgsql 进行过滤传输到数据库

任何人都知道如何避免此错误或有过滤 planet.osm 文件并上传到 postgis 的经验?

最佳答案

我建议使用 Osmium而不是 osmfilter,它不需要先将行星转换为不同的格式,并且 native 能够返回 PBF 数据,这些数据可以由 osm2pgsql 直接处理。它也更快。

关于postgresql - 为 postgis 过滤 openstreetmap 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com