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 MakeMakeValue func(string, FieldType, Field) (MakeValue, error)
|
||||||
|
|
||||||
type FieldSpec struct {
|
type FieldSpec struct {
|
||||||
Name string
|
Key string
|
||||||
Type FieldType
|
Type FieldType
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FieldSpec) Value(elem *element.OSMElem, match Match) interface{} {
|
func (f *FieldSpec) Value(elem *element.OSMElem, match Match) interface{} {
|
||||||
if f.Type.Func != nil {
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ func (t *Table) TableFields() *TableFields {
|
||||||
|
|
||||||
for _, mappingField := range t.Fields {
|
for _, mappingField := range t.Fields {
|
||||||
field := FieldSpec{}
|
field := FieldSpec{}
|
||||||
field.Name = mappingField.Name
|
field.Key = mappingField.Key
|
||||||
|
|
||||||
fieldType := mappingField.FieldType()
|
fieldType := mappingField.FieldType()
|
||||||
if fieldType != nil {
|
if fieldType != nil {
|
||||||
|
|
|
@ -237,6 +237,12 @@ def test_missing_nodes():
|
||||||
place_10000 = query_row(db_conf, 'osm_places', 10000)
|
place_10000 = query_row(db_conf, 'osm_places', 10000)
|
||||||
assert place_10000['name'] == 'Foo', place_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():
|
def test_landusage_to_waterarea_1():
|
||||||
"""Parks inserted into landusages"""
|
"""Parks inserted into landusages"""
|
||||||
|
|
|
@ -302,6 +302,18 @@
|
||||||
<tag k="type" v="multipolygon"/>
|
<tag k="type" v="multipolygon"/>
|
||||||
</relation>
|
</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) -->
|
<!-- test invalid "banana-polygon" (inverted-shell) -->
|
||||||
<node id="7101" version="1" timestamp="2011-11-11T00:11:11Z" lat="60" lon="60"/>
|
<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"/>
|
<node id="7102" version="1" timestamp="2011-11-11T00:11:11Z" lat="60" lon="62"/>
|
||||||
|
|
|
@ -689,6 +689,12 @@
|
||||||
"name": "name:de",
|
"name": "name:de",
|
||||||
"key": "name:de"
|
"key": "name:de"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"#": " check for different name/keys",
|
||||||
|
"name": "name_en",
|
||||||
|
"key": "name:en"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "boolint",
|
"type": "boolint",
|
||||||
"name": "tunnel",
|
"name": "tunnel",
|
||||||
|
|
Loading…
Reference in New Issue