Last active
October 25, 2018 08:10
-
-
Save kid-cavaquinho/40abcc10563fa04f0b78935dd2b18aeb to your computer and use it in GitHub Desktop.
Validate WKT geometries in SQL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DECLARE @valid BIT | |
| DECLARE @geometryWKT NVARCHAR(MAX) | |
| DECLARE @geometry GEOMETRY | |
| SET @geometryWKT = 'LINESTRING(264424.9652 569222.1755, 264391.5552 569306.8028, 264347.5728 569370.1507, 264279.3844 569496.5162, 264151.5842 569779.2783, 264102.1571 569876.3473, 264064.9039 569909.1248, 264082.4099 569934.902, 264148.7657 569980.9312, 264197.7566 570045.2707, 264264.2537 570126.3715, 264351.5345 570242.1204, 264461.6298 570397.3514, 264508.7931 570471.0041, 264540.9409 570500.789, 264585.7437 570474.7547, 264663.5564 570446.4651, 264710.7298 570389.8719, 264861.704 570149.3973, 264802.3649 570104.5195, 264579.9936 570005.1748, 264774.1915 569593.5737, 264627.7661 569530.0202, 264604.2309 569589.8227, 264583.3815 569693.6588, 264564.4047 569744.5479, 264545.5456 569781.413, 264516.4291 569824.5021, 264497.7144 569849.1252, 264385.1763 569780.4476, 264471.0827 569602.4976, 264410.3238 569572.5101, 264548.9528 569291.7813, 264424.9652 569222.1755)'-- Test faulty value | |
| SET @valid = 1 | |
| BEGIN TRY | |
| SET @valid = geometry::STGeomFromText(@geometryWKT, 4326).STIsValid() | |
| END TRY | |
| BEGIN CATCH | |
| SET @valid = 0 | |
| END CATCH | |
| IF @valid = 1 | |
| BEGIN | |
| SET @geometry = geometry::STGeomFromText(@geometryWKT, 4326) | |
| PRINT('Valid geometry') | |
| SELECT (@geometry) | |
| END | |
| ELSE | |
| BEGIN | |
| PRINT('Invalid geometry') | |
| PRINT(@geometryWKT) | |
| END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment