1

我正在尝试使用ubuntu 机器将一些 Open Street Maps.osm.pbf文件迁移到我的postgresql数据库中。osm2pgsql

当我在处理完成后检查数据时,列的tags类型为 astext[]并填充了如下数据:

{highway,residential,lit,yes,name,"St. Nicholas Street",name:en,"Saint Nicholas Street",name:mt,"Triq San Nikola"}

问题一:

  • 那是hstore类型数据吗?我似乎无法像这样查询它。我试过这种格式:
SELECT * FROM planet_osm_ways WHERE tags ? 'highway' LIMIT 20;

大喊这个错误:

ERROR:  operator does not exist: text[] ? unknown
LINE 1: ...T *, tags as tags FROM planet_osm_ways WHERE tags ? 'highway...

问题2:

  • 因此,假设上面的错误和格式意味着数据根本没有保存为hstore类型化数据,我该如何纠正我的迁移过程来解决这个问题?

我的过程:

  1. 在 linux ubuntu 上使用 pgAdmin 3 创建一个新数据库。
  2. 将 hstore 扩展添加到数据库 (pgAdmin)
  3. 将 postgis 扩展添加到数据库 (pgAdmin)
  4. 超级用户进入终端中的 postgres 用户
osm2pgsql -c -d <DB_NAME> <FILE_PATH> --slim --hstore --multi-geometry
  1. 运行迁移命令:
sudo -u postgres -i

就是这样,osm2pgsql它的事情并给出了一个成功的输出。

那么我在这个过程中缺少什么?

4

0 回答 0