omniscale / imposm3

Imposm imports OpenStreetMap data into PostGIS
http://imposm.org/docs/imposm3/latest/
Apache License 2.0
711 stars 156 forks source link

Not all relations imported #160

Closed yvecai closed 6 years ago

yvecai commented 6 years ago

I'm importing custom relations of type 'site'. They are properly imported in the relation table. Some of them are imported in the relation_members table some not.

Example relation Imported:

<relation id="3161151" version="2" timestamp="2013-11-21T00:36:46Z" changeset="19026798" uid="74847" user="xx">
<member type="way" ref="53161606" role=""/>
<member type="way" ref="247344502" role=""/>
<member type="node" ref="26353983" role="entrance"/>
<member type="way" ref="53160132" role=""/>
<member type="relation" ref="2741705" role=""/>
...
<member type="relation" ref="2741704" role=""/>
<member type="relation" ref="2816999" role=""/>
<tag k="name" v="La Vattay"/>
<tag k="site" v="piste"/>
<tag k="type" v="site"/>
<tag k="operator" v="Mont Jura"/>
</relation>

Not imported:

<relation id="2764548" version="6" timestamp="2018-02-04T06:46:50Z" changeset="56046534" uid="171657" user="xx">
<member type="node" ref="1657305331" role="entrance"/>
<member type="node" ref="1012613346" role="entrance"/>
<member type="relation" ref="1450409" role=""/>
<member type="relation" ref="1432715" role=""/>
...
<member type="node" ref="1012620552" role=""/>
<member type="way" ref="90583232" role=""/>
<member type="node" ref="1183523915" role="entrance"/>
<member type="node" ref="1020621983" role=""/>
<member type="node" ref="1191285091" role="entrance"/>
<member type="relation" ref="5978812" role=""/>
<tag k="name" v="Les Fourgs"/>
<tag k="site" v="piste"/>
<tag k="type" v="site"/>
</relation>

Here is the mapping used:

    "type": "relation_member",
    "mapping": {
        "site": ["piste", "ski"]
    },
    "fields": [
        {
            "type": "id",
            "name": "osm_id",
            "key": null
        },
        {
            "type": "geometry",
            "name": "geometry",
            "key": null
        },
        {
            "type": "member_id",
            "name": "member",
            "key": null
        },
        {
            "type": "member_index",
            "name": "index",
            "key": null
        },
        {
            "type": "member_role",
            "name": "role",
            "key": null
        },
        {
            "type": "member_type",
            "name": "type",
            "key": null
        },
        {
            "type": "string",
            "name": "relname",
            "key": "name"
        },
        {
            "type": "string",
            "name": "name",
            "key": "name",
            "from_member":true
        }
    ],
},
"pistes_sites": {
    "type": "relation",
    "mapping": {
        "site": ["piste", "ski"]
    },
    "fields": [
        {
            "type": "id",
            "name": "osm_id",
            "key": null
        },
        {
            "type": "hstore_tags",
            "name": "tags",
            "key": null
        }
    ],
},
yvecai commented 6 years ago

This was a simple mistake in th mapping file, sorry.

            "type": "relation_member",
            "mapping": {
                "site": ["piste", "ski"]
            },
            "fields": [
                {
                    "type": "id",
                    "name": "osm_id",
                    "key": null
                },
                {
                    "type": "geometry",
                    "name": "geometry",
                    "key": null
                },
                {
                    "type": "member_id",
                    "name": "member",
                    "key": null
                },
                {
                    "type": "member_index",
                    "name": "index",
                    "key": null
                },
                {
                    "type": "member_role",
                    "name": "role",
                    "key": null
                },
                {
                    "type": "member_type",
                    "name": "type",
                    "key": null
                },
                {
                    "type": "string",
                    "name": "name",
                    "key": "name"
                }
            ],
        },
        "pistes_sites": {
            "type": "relation",
            "mapping": {
                "site": ["piste", "ski"]
            },
            "fields": [
                {
                    "type": "id",
                    "name": "osm_id",
                    "key": null
                },
                {
                    "type": "hstore_tags",
                    "name": "tags",
                    "key": null
                },
                {
                    "type": "string",
                    "name": "name",
                    "key": "name"
                },
                {
                    "type": "mapping_value",
                    "name": "site_type",
                    "key": null
                }
            ],
        },
...