fix for mappings where key and name of field differ
parent
d1b2c2796b
commit
251e5c9941
|
@ -37,13 +37,13 @@ type MakeValue func(string, *element.OSMElem, Match) interface{}
|
|||
type MakeMakeValue func(string, FieldType, Field) (MakeValue, error)
|
||||
|
||||
type FieldSpec struct {
|
||||
Name string
|
||||
Key string
|
||||
Type FieldType
|
||||
}
|
||||
|
||||
func (f *FieldSpec) Value(elem *element.OSMElem, match Match) interface{} {
|
||||
if f.Type.Func != nil {
|
||||
return f.Type.Func(elem.Tags[f.Name], elem, match)
|
||||
return f.Type.Func(elem.Tags[f.Key], elem, match)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ func (t *Table) TableFields() *TableFields {
|
|||
|
||||
for _, mappingField := range t.Fields {
|
||||
field := FieldSpec{}
|
||||
field.Name = mappingField.Name
|
||||
field.Key = mappingField.Key
|
||||
|
||||
fieldType := mappingField.FieldType()
|
||||
if fieldType != nil {
|
||||
|
|
|
@ -237,6 +237,12 @@ def test_missing_nodes():
|
|||
place_10000 = query_row(db_conf, 'osm_places', 10000)
|
||||
assert place_10000['name'] == 'Foo', place_10000
|
||||
|
||||
def test_name_tags():
|
||||
"""Road contains multiple names"""
|
||||
road = query_row(db_conf, 'osm_roads', 1101)
|
||||
assert road['name'] == 'name', road
|
||||
assert road['name:de'] == 'name:de', road
|
||||
assert road['name_en'] == 'name:en', road
|
||||
|
||||
def test_landusage_to_waterarea_1():
|
||||
"""Parks inserted into landusages"""
|
||||
|
|
|
@ -302,6 +302,18 @@
|
|||
<tag k="type" v="multipolygon"/>
|
||||
</relation>
|
||||
|
||||
<!-- test multiple name mappings -->
|
||||
<node id="1101" version="1" timestamp="2011-11-11T00:11:11Z" lat="60" lon="60"/>
|
||||
<node id="1102" version="1" timestamp="2011-11-11T00:11:11Z" lat="60" lon="60.1"/>
|
||||
<way id="1101" version="1" timestamp="2011-11-11T00:11:11Z">
|
||||
<nd ref="1101"/>
|
||||
<nd ref="1102"/>
|
||||
<tag k="highway" v="residential"/>
|
||||
<tag k="name" v="name"/>
|
||||
<tag k="name:de" v="name:de"/>
|
||||
<tag k="name:en" v="name:en"/>
|
||||
</way>
|
||||
|
||||
<!-- test invalid "banana-polygon" (inverted-shell) -->
|
||||
<node id="7101" version="1" timestamp="2011-11-11T00:11:11Z" lat="60" lon="60"/>
|
||||
<node id="7102" version="1" timestamp="2011-11-11T00:11:11Z" lat="60" lon="62"/>
|
||||
|
|
|
@ -689,6 +689,12 @@
|
|||
"name": "name:de",
|
||||
"key": "name:de"
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"#": " check for different name/keys",
|
||||
"name": "name_en",
|
||||
"key": "name:en"
|
||||
},
|
||||
{
|
||||
"type": "boolint",
|
||||
"name": "tunnel",
|
||||
|
|
Loading…
Reference in New Issue