check table type in mappings
parent
c7e2959b69
commit
e442bfde56
|
@ -2,6 +2,7 @@ package mapping
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"goposm/element"
|
"goposm/element"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
@ -68,7 +69,10 @@ func NewMapping(filename string) (*Mapping, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
mapping.prepare()
|
err = mapping.prepare()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return &mapping, nil
|
return &mapping, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,13 +86,25 @@ func (t *Table) ExtraTags() map[string]bool {
|
||||||
return tags
|
return tags
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Mapping) prepare() {
|
func (m *Mapping) prepare() error {
|
||||||
for name, t := range m.Tables {
|
for name, t := range m.Tables {
|
||||||
t.Name = name
|
t.Name = name
|
||||||
}
|
}
|
||||||
|
for name, t := range m.Tables {
|
||||||
|
switch t.Type {
|
||||||
|
case "":
|
||||||
|
return errors.New("missing table type for table " + name)
|
||||||
|
case "point":
|
||||||
|
case "linestring":
|
||||||
|
case "polygon":
|
||||||
|
default:
|
||||||
|
return errors.New("unknown type " + t.Type + " for table " + name)
|
||||||
|
}
|
||||||
|
}
|
||||||
for name, t := range m.GeneralizedTables {
|
for name, t := range m.GeneralizedTables {
|
||||||
t.Name = name
|
t.Name = name
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tt TagTables) addFromMapping(mapping map[string][]string, table DestTable) {
|
func (tt TagTables) addFromMapping(mapping map[string][]string, table DestTable) {
|
||||||
|
|
Loading…
Reference in New Issue