首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用样式文件使用osm2pgsql导入仅点特性

使用样式文件使用osm2pgsql导入仅点特性
EN

Stack Overflow用户
提问于 2021-12-31 09:52:00
回答 2查看 268关注 0票数 0

我是新来的osm2pqsgl。我已经为整个欧洲下载了一个osm.pbf文件,我想将这些数据添加到我的Postgres数据库中。然而,我只对points感兴趣,不对linestringspolygon感兴趣,在points中我只对这些标记及其信息感兴趣(比如denominationname)。

我已经编辑了style文件,从osm2pgsql到下面

代码语言:javascript
复制
node,way   historic     text         polygon
node,way   natural      text         polygon 
node,way   religion     text         linear
node,way   tourism      text         polygon
  1. 如何仅从带有Pointosm.pbf文件中导入osm2pgsql功能
  2. 如何只导入具有特定tagtag特性,例如从带有osm2pgsqlosm.pbf文件中导入tourism
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-23 09:44:26

最后,我使用了来自osm2pgsqlosm2pgsql选项并创建了一个.lua文件。这里有tag religion

代码语言:javascript
复制
local tables = {}
    
-- this creates the table for point and its columns
tables.religion = osm2pgsql.define_node_table('religion_point', {
    { column = 'osm_type',     type = 'text', not_null = true },
    { column = 'name',     type = 'text', not_null = true},
    { column = 'geom',     type = 'point' },
}, { schema = 'public' })

-- tags we don't need
local function clean_tags(tags)
    tags.odbl = nil
    tags.created_by = nil
    tags.source = nil
    tags['source:ref'] = nil

    return next(tags) == nil
end

function osm2pgsql.process_node(object)
    -- We are only interested in religion details
    -- replace here with the tag you want to import i.e. natural, historic, ...
    if not object.tags.religion then
        return
    end

    clean_tags(object.tags)

    -- Using grab_tag() removes from remaining key/value saved to Pg
    local osm_type = object:grab_tag('religion')
    local name = object:grab_tag('name')
    tables.religion:add_row({
        osm_type = osm_type,
        tags = json.encode(object.tags),
        name = name,
        geom = { create = 'point' }
    })
end

然后用

代码语言:javascript
复制
$ osm2pgsql -c -d <DATABASENAME> -U postgres -H localhost -O flex -S ./<NAME>.lua ./<FILENAME>.osm.pbf

脚本的源

票数 1
EN

Stack Overflow用户

发布于 2022-02-05 17:02:42

不确定osm2pgsql是否可以动态执行,但是您可以使用渗透过滤输入文件。另一种选择是

另一方面,我不确定先验丢弃多边形是否是一个正确的假设。您可以在建筑物(或其他多边形)上找到许多tourismreligion等标签。我建议计算它们的质心,然后一起计算union

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70541035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档