Mercurial > gemma
comparison pkg/imports/fd.go @ 5031:8c590ef35280
Improve feedback if geometry cannot be stored
This is also a backout of rev. 36a3dce20232
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 18 Mar 2020 19:19:09 +0100 |
parents | 737d7859dd86 |
children | afc242588642 |
comparison
equal
deleted
inserted
replaced
5030:737d7859dd86 | 5031:8c590ef35280 |
---|---|
156 min_width, | 156 min_width, |
157 max_width, | 157 max_width, |
158 min_depth, | 158 min_depth, |
159 date_info, | 159 date_info, |
160 source_organization) | 160 source_organization) |
161 SELECT dmp.geom, $3, $4, $5, $6, $7, $8 | 161 SELECT |
162 FROM ST_GeomFromWKB($1, $2::integer) AS new_fd (new_fd), | |
163 ST_Multi(ST_CollectionExtract(ST_MakeValid(ST_Transform( | 162 ST_Multi(ST_CollectionExtract(ST_MakeValid(ST_Transform( |
164 CASE WHEN pg_has_role('sys_admin', 'MEMBER') | 163 CASE WHEN pg_has_role('sys_admin', 'MEMBER') |
165 THEN new_fd | 164 THEN new_fd |
166 ELSE ST_Intersection( | 165 ELSE ST_Intersection( |
167 (SELECT ST_Buffer(a, -0.0001) FROM resp), | 166 (SELECT ST_Buffer(a, -0.0001) FROM resp), |
168 ST_MakeValid(ST_Transform(new_fd, (SELECT ST_SRID(a) FROM resp)))) | 167 ST_MakeValid(ST_Transform(new_fd, (SELECT ST_SRID(a) FROM resp)))) |
169 END, | 168 END, |
170 4326)), 3)) AS dmp (geom) | 169 4326)), 3)), |
171 WHERE NOT ST_IsEmpty(dmp.geom) | 170 $3, $4, $5, $6, $7, $8 |
171 FROM ST_GeomFromWKB($1, $2::integer) AS new_fd (new_fd) | |
172 WHERE pg_has_role('sys_admin', 'MEMBER') | |
173 OR ST_Intersects((SELECT a FROM resp), | |
174 ST_MakeValid(ST_Transform(new_fd, (SELECT ST_SRID(a) FROM resp)))) | |
172 RETURNING id, | 175 RETURNING id, |
173 ST_X(ST_Centroid(area::geometry)), | 176 ST_X(ST_Centroid(area::geometry)), |
174 ST_Y(ST_Centroid(area::geometry)) | 177 ST_Y(ST_Centroid(area::geometry)) |
175 ` | 178 ` |
176 ) | 179 ) |
338 if len(unsupported) != 0 { | 341 if len(unsupported) != 0 { |
339 feedback.Warn("Unsupported types found: %s", unsupported) | 342 feedback.Warn("Unsupported types found: %s", unsupported) |
340 } | 343 } |
341 | 344 |
342 if outside > 0 { | 345 if outside > 0 { |
343 feedback.Info( | 346 feedback.Info("Features outside responsibility area: %d", outside) |
344 "Features outside responsibility area or no valid polygon: %d", | |
345 outside) | |
346 } | 347 } |
347 | 348 |
348 if features == 0 { | 349 if features == 0 { |
349 return nil, UnchangedError("No features found") | 350 return nil, UnchangedError("No features found") |
350 } | 351 } |