From bba7d6838005c600c55671097a44444761935bd3 Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Tue, 22 Nov 2016 17:06:58 +0100 Subject: [PATCH] allways call Expire with wgs84 coords --- diff/deleter.go | 6 ++---- expire/expire.go | 15 ++++++++++++--- writer/nodes.go | 2 +- writer/relations.go | 2 +- writer/ways.go | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/diff/deleter.go b/diff/deleter.go index f69f4ea..2005696 100644 --- a/diff/deleter.go +++ b/diff/deleter.go @@ -7,7 +7,6 @@ import ( "github.com/omniscale/imposm3/element" "github.com/omniscale/imposm3/expire" "github.com/omniscale/imposm3/mapping" - "github.com/omniscale/imposm3/proj" ) type Deleter struct { @@ -134,8 +133,7 @@ func (d *Deleter) deleteRelation(id int64, deleteRefs bool, deleteMembers bool) if err != nil { continue } - proj.NodesToMerc(m.Way.Nodes) - expire.ExpireNodes(d.expireor, m.Way.Nodes) + expire.ExpireNodes(d.expireor, m.Way.Nodes, 4326) } } return nil @@ -179,7 +177,7 @@ func (d *Deleter) deleteWay(id int64, deleteRefs bool) error { if err != nil { return err } - expire.ExpireNodes(d.expireor, elem.Nodes) + expire.ExpireNodes(d.expireor, elem.Nodes, 4326) } return nil } diff --git a/expire/expire.go b/expire/expire.go index 0030339..2c305e6 100644 --- a/expire/expire.go +++ b/expire/expire.go @@ -2,14 +2,23 @@ package expire import ( "github.com/omniscale/imposm3/element" + "github.com/omniscale/imposm3/proj" ) type Expireor interface { Expire(long, lat float64) } -func ExpireNodes(expireor Expireor, nodes []element.Node) { - for _, nd := range nodes { - expireor.Expire(nd.Long, nd.Lat) +func ExpireNodes(expireor Expireor, nodes []element.Node, srid int) { + if srid == 4326 { + for _, nd := range nodes { + expireor.Expire(nd.Long, nd.Lat) + } + } else if srid == 4326 { + for _, nd := range nodes { + expireor.Expire(proj.MercToWgs(nd.Long, nd.Lat)) + } + } else { + panic("unsupported srid") } } diff --git a/writer/nodes.go b/writer/nodes.go index da5e201..a24c35a 100644 --- a/writer/nodes.go +++ b/writer/nodes.go @@ -49,10 +49,10 @@ func (nw *NodeWriter) loop() { for n := range nw.nodes { nw.progress.AddNodes(1) if matches := nw.pointMatcher.MatchNode(n); len(matches) > 0 { - nw.NodeToSrid(n) if nw.expireor != nil { nw.expireor.Expire(n.Long, n.Lat) } + nw.NodeToSrid(n) point, err := geomp.Point(geos, *n) if err != nil { if errl, ok := err.(ErrorLevel); !ok || errl.Level() > 0 { diff --git a/writer/relations.go b/writer/relations.go index 311e193..c136e69 100644 --- a/writer/relations.go +++ b/writer/relations.go @@ -125,7 +125,7 @@ NextRel: if inserted && rw.expireor != nil { for _, m := range allMembers { if m.Way != nil { - expire.ExpireNodes(rw.expireor, m.Way.Nodes) + expire.ExpireNodes(rw.expireor, m.Way.Nodes, rw.srid) } } } diff --git a/writer/ways.go b/writer/ways.go index e9a1b2c..559d453 100644 --- a/writer/ways.go +++ b/writer/ways.go @@ -112,7 +112,7 @@ func (ww *WayWriter) loop() { } if inserted && ww.expireor != nil { - expire.ExpireNodes(ww.expireor, w.Nodes) + expire.ExpireNodes(ww.expireor, w.Nodes, ww.srid) } if ww.diffCache != nil { ww.diffCache.Coords.AddFromWay(w)