Mercurial > gemma
comparison pkg/controllers/diff.go @ 4658:4bbfe3dd2ab5 stree-experiment
Completed usage of STRTrees.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 14 Oct 2019 14:58:04 +0200 |
parents | 5ef04ae34872 |
children | 0ddb308fed37 |
comparison
equal
deleted
inserted
replaced
4656:a2f16987911b | 4658:4bbfe3dd2ab5 |
---|---|
132 | 132 |
133 minuendTree, err := octree.FromCache( | 133 minuendTree, err := octree.FromCache( |
134 ctx, conn, | 134 ctx, conn, |
135 dci.Bottleneck, dci.Minuend.Time) | 135 dci.Bottleneck, dci.Minuend.Time) |
136 | 136 |
137 log.Printf("info: loading minuend octree took %s\n", time.Since(start)) | 137 log.Printf("info: loading minuend mesh took %s\n", time.Since(start)) |
138 if err != nil { | 138 if err != nil { |
139 return | 139 return |
140 } | 140 } |
141 | 141 |
142 if minuendTree == nil { | 142 if minuendTree == nil { |
153 | 153 |
154 subtrahendTree, err := octree.FromCache( | 154 subtrahendTree, err := octree.FromCache( |
155 ctx, conn, | 155 ctx, conn, |
156 dci.Bottleneck, dci.Subtrahend.Time) | 156 dci.Bottleneck, dci.Subtrahend.Time) |
157 | 157 |
158 log.Printf("info: loading subtrahend octree took %s\n", time.Since(start)) | 158 log.Printf("info: loading subtrahend mesh took %s\n", time.Since(start)) |
159 if err != nil { | 159 if err != nil { |
160 return | 160 return |
161 } | 161 } |
162 | 162 |
163 if subtrahendTree == nil { | 163 if subtrahendTree == nil { |
169 } | 169 } |
170 return | 170 return |
171 } | 171 } |
172 | 172 |
173 // We need a slow path implementation for this. | 173 // We need a slow path implementation for this. |
174 epsg := minuendTree.EPSG | 174 epsg := minuendTree.EPSG() |
175 if epsg != subtrahendTree.EPSG { | 175 if epsg != subtrahendTree.EPSG() { |
176 err = mw.JSONError{ | 176 err = mw.JSONError{ |
177 Code: http.StatusInternalServerError, | 177 Code: http.StatusInternalServerError, |
178 Message: "Calculating differences between two different " + | 178 Message: "Calculating differences between two different " + |
179 "EPSG code octrees are not supported, yet.", | 179 "EPSG code meshes are not supported, yet.", |
180 } | 180 } |
181 return | 181 return |
182 } | 182 } |
183 | 183 |
184 start = time.Now() | 184 start = time.Now() |
252 start = time.Now() | 252 start = time.Now() |
253 var tree octree.STRTree | 253 var tree octree.STRTree |
254 | 254 |
255 tree.BuildWithout(tin, removed) | 255 tree.BuildWithout(tin, removed) |
256 | 256 |
257 log.Printf("info: Building final STRTree took: %v\n", time.Since(start)) | 257 log.Printf("info: Building final mesh took: %v\n", time.Since(start)) |
258 | 258 |
259 start = time.Now() | 259 start = time.Now() |
260 | 260 |
261 // XXX: Maybe we should start this transaction earlier!? | 261 // XXX: Maybe we should start this transaction earlier!? |
262 var tx *sql.Tx | 262 var tx *sql.Tx |