diff pkg/imports/sr.go @ 3653:955e2371cf28 single-beam

Check ST_Valid, too.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 13 Jun 2019 16:57:24 +0200
parents f415c5ed60f6
children 26e02fa5b992
line wrap: on
line diff
--- a/pkg/imports/sr.go	Thu Jun 13 16:36:21 2019 +0200
+++ b/pkg/imports/sr.go	Thu Jun 13 16:57:24 2019 +0200
@@ -152,7 +152,12 @@
   ST_AsBinary(ST_Buffer(ST_MakeValid(ST_GeomFromWKB($1, $2::integer)), 0.1))`
 
 	whatsWrongSQL = `
-SELECT ST_IsValidReason(CAST(ST_Transform(ST_GeomFromWKB($1, $2::integer), 4326)::geography AS geometry))`
+SELECT
+  ST_IsValidReason(
+    CAST(ST_MakeValid(ST_Transform(ST_GeomFromWKB($1, $2::integer), 4326))::geography AS geometry)),
+  ST_IsValid(
+    CAST(ST_MakeValid(ST_Transform(ST_GeomFromWKB($1, $2::integer), 4326))::geography AS geometry))
+`
 
 	insertContourSQL = `
 INSERT INTO waterway.sounding_results_contour_lines (
@@ -392,16 +397,17 @@
 		clippingPolygon.FromLineStringZ(polygon)
 
 		var wrong string
+		var valid bool
 		if err := tx.QueryRowContext(
 			ctx,
 			whatsWrongSQL,
 			clippingPolygon.AsWKB(),
 			epsg,
-		).Scan(&wrong); err != nil {
+		).Scan(&wrong, &valid); err != nil {
 			return nil, err
 		}
 
-		log.Printf("!!!!!!!!: whats wrong: %s\n", wrong)
+		log.Printf("!!!!!!!!: whats wrong (%t): %s\n", valid, wrong)
 
 		var repaired, buffered []byte