我已经执行了使用osm2pgsql从*.bz2格式转换到PostgreSQL数据库的osm数据。但是在转换之后,我看不到表planet_osm_roads中的这样的列:车道、But速度。С某人解释这些列在哪里?谢谢。
发布于 2015-07-08 07:43:06
使用-k时添加选项osm2pgsql
osm2pgsql -d geodatabase -k planet.osm.bz2-k区
说明: osm2pgsql通常在静态数据库模式中导入数据。没有对应列的标记将被忽略。通过添加选项-k或--hstore,osm2pgsql将向每个表中添加一个新的hstore列tags,并将那里的所有标记保存在没有列的地方。
根据您的需要,您可以使用-j,这使得osm2pgsql可以保存tags列中的所有标记,这意味着带有数据库列的标记也可以保存。
-j=
导入之后,要从数据库中提取所有can速度标记,可以使用如下查询(在示例中):
SELECT osm_id, name, tags -> 'maxspeed' FROM planet_osm_roads;其中,tags是hstore列,->是hstore运算符。
有关hstore类型及其操作符的更多信息,请参见Postgresql文档:http://www.postgresql.org/docs/9.3/static/hstore.html
发布于 2015-09-07 10:13:29
这应该是一个更好的评论,然而,我没有足够的声誉去这么做:我强烈建议使用.bz2,这是一种"Protocolbuffer二进制格式“,因为”它大约是压缩行星的一半大小,比压缩后的行星小大约30%。写起来比压缩的行星快5倍,比压缩的行星快6倍。这种格式是为了支持未来的扩展性和灵活性。“更多信息:Format
https://stackoverflow.com/questions/31264674
复制相似问题