diff --git a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj index bf9a26060b..ae7573c274 100644 --- a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj +++ b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION.dtproj @@ -5,8 +5,8 @@ 9.0.1.0 $base64$PFNvdXJjZUNvbnRyb2xJbmZvIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRkbDI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yIiB4bWxuczpkZGwyXzI9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDAzL2VuZ2luZS8yLzIiIHhtbG5zOmRkbDEwMF8xMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDA4L2VuZ2luZS8xMDAvMTAwIiB4bWxuczpkZGwyMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAiIHhtbG5zOmRkbDIwMF8yMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEwL2VuZ2luZS8yMDAvMjAwIiB4bWxuczpkZGwzMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAiIHhtbG5zOmRkbDMwMF8zMDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDExL2VuZ2luZS8zMDAvMzAwIiB4bWxuczpkZGw0MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAiIHhtbG5zOmRkbDQwMF80MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEyL2VuZ2luZS80MDAvNDAwIiB4bWxuczpkZGw1MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAiIHhtbG5zOmRkbDUwMF81MDA9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vYW5hbHlzaXNzZXJ2aWNlcy8yMDEzL2VuZ2luZS81MDAvNTAwIiB4bWxuczpkd2Q9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vRGF0YVdhcmVob3VzZS9EZXNpZ25lci8xLjAiPg0KICA8RW5hYmxlZD5mYWxzZTwvRW5hYmxlZD4NCiAgPFByb2plY3ROYW1lPjwvUHJvamVjdE5hbWU+DQogIDxBdXhQYXRoPjwvQXV4UGF0aD4NCiAgPExvY2FsUGF0aD48L0xvY2FsUGF0aD4NCiAgPFByb3ZpZGVyPjwvUHJvdmlkZXI+DQo8L1NvdXJjZUNvbnRyb2xJbmZvPg== - PIMS_PROPERTY_SPATIAL_CORRECTION 11.database - PIMS_PROPERTY_SPATIAL_CORRECTION 11.database + PIMS_PROPERTY_SPATIAL_CORRECTION.database + PIMS_PROPERTY_SPATIAL_CORRECTION.database @@ -41,10 +41,10 @@ Package 1 0 - 47 + 57 - {C036C22A-FB08-4CA9-8625-018613EC0B33} + {D964A069-45BD-4156-8F06-443B81810E43} 8 @@ -77,7 +77,7 @@ 0 0 0 - Data Source=sqldevtst.th.gov.bc.ca;Initial Catalog=PIMS_DEV;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-Package-{C854C770-B13C-477E-8DD4-44721E1B9FCF}sqldevtst.th.gov.bc.ca.PIMS_DEV; + Data Source=sqlprd.th.gov.bc.ca;User ID=PIMS_UAT;Initial Catalog=PIMS_UAT;Provider=SQLNCLI11.1;Auto Translate=False;Application Name=SSIS-Package-{C854C770-B13C-477E-8DD4-44721E1B9FCF}sqldevtst.th.gov.bc.ca.PIMS_DEV; 18 @@ -137,7 +137,7 @@ 0 0 0 - PIMS_DEV + PIMS_UAT 18 @@ -181,7 +181,7 @@ 0 0 0 - sqldevtst.th.gov.bc.ca + sqlprd.th.gov.bc.ca 18 @@ -196,6 +196,7 @@ 0 0 0 + PIMS_UAT 18 diff --git a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Package.dtsx b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/SPATIAL_CORRECTION.dtsx similarity index 79% rename from etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Package.dtsx rename to etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/SPATIAL_CORRECTION.dtsx index a19f112de1..7957b0057c 100644 --- a/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/Package.dtsx +++ b/etl/PIMS_PROPERTY_SPATIAL_CORRECTION/PIMS_PROPERTY_SPATIAL_CORRECTION/SPATIAL_CORRECTION.dtsx @@ -12,8 +12,8 @@ DTS:ObjectName="Package" DTS:PackageType="5" DTS:ProtectionLevel="0" - DTS:VersionBuild="47" - DTS:VersionGUID="{C036C22A-FB08-4CA9-8625-018613EC0B33}"> + DTS:VersionBuild="57" + DTS:VersionGUID="{D964A069-45BD-4156-8F06-443B81810E43}"> 8 @@ -26,7 +26,11 @@ + DTS:ConnectionString="Data Source=sqlprd.th.gov.bc.ca;User ID=PIMS_UAT;Initial Catalog=PIMS_UAT;Provider=SQLNCLI11.1;Auto Translate=False;Application Name=SSIS-Package-{C854C770-B13C-477E-8DD4-44721E1B9FCF}sqldevtst.th.gov.bc.ca.PIMS_DEV;"> + + @@ -162,7 +166,7 @@ dataType="System.String" description="The SQL command to be executed." name="SqlCommand" - UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=16.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">select cast(BOUNDARY.STAsText() as varchar(max)) as BOUNDARY_TEXT, PROPERTY_ID from PIMS_PROPERTY WHERE BOUNDARY IS NOT NULL and APP_CREATE_USERID in ('APP_PIMS_PROXY_ETL_EDIT', 'LISDB_ETL_USER', 'PMBC_PIMS_BCTFA', 'LISOS_ETL_USER') + UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=16.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">select cast(BOUNDARY.STAsText() as varchar(max)) as BOUNDARY_TEXT, PROPERTY_ID from PIMS_PROPERTY WHERE BOUNDARY IS NOT NULL and APP_CREATE_USERID in ('APP_PIMS_PROXY_ETL_EDIT', 'LISDB_ETL_USER', 'PMBC_PIMS_BCTFA', 'LISOS_ETL_USER', 'PIMS_ETL_USER') points = new List(); - foreach (Match match in matches) + PolyLabel.PolyLabel newPoint = null; + if (stringData.Contains("MULTIPOLYGON")) { - string[] latLng = match.Value.Split(' '); - points.Add(new PointF(float.Parse(latLng[0]), float.Parse(latLng[1]))); + string multiPolygonPattern = @"\([^()]*\)"; + var polygonMatches = Regex.Matches(stringData, multiPolygonPattern, RegexOptions.None); + foreach (Match polygonMatch in polygonMatches) + { + var matches = Regex.Matches(polygonMatch.Value, pattern, RegexOptions.None); + PolyLabel.PolyLabel tempPoint = getPolygonCentroid(matches); + if(newPoint == null || tempPoint.Radius > newPoint.Radius) + { + newPoint = tempPoint; + } + } } - - var newPoint = PolyLabel.PolyLabel.GetPolyLabel(points, .1f); + else + { + var matches = Regex.Matches(stringData, pattern, RegexOptions.None); + newPoint = getPolygonCentroid(matches); + } + var bytes = Encoding.UTF8.GetBytes($"POINT ({newPoint.Centroid.X} {newPoint.Centroid.Y})"); Row.POLEOFINACCESSABILITY.AddBlobData(bytes); @@ -575,6 +592,19 @@ public class ScriptMain : UserComponent } } + public static PolyLabel.PolyLabel getPolygonCentroid(MatchCollection matches) + { + List points = new List(); + foreach (Match match in matches) + { + string[] latLng = match.Value.Split(' '); + points.Add(new PointF(float.Parse(latLng[0]), float.Parse(latLng[1]))); + } + + var newPoint = PolyLabel.PolyLabel.GetPolyLabel(points, .1f); + return newPoint; + } + } ]]> SC_4664d38d6d774888963e21557351c901 msBuild SC_4664d38d6d774888963e21557351c901 - {9DFA908A-4CC6-4FE2-93C1-582187F61F61} + {5E55CC12-CF24-4606-A224-6AA9B352D30C} @@ -1010,6 +1040,18 @@ public class Input0Buffer: ScriptBuffer + + main.cs + 142 + 17 + True + 1 + + + C# + 1 + 1 + ]]> +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAA==]]> name="BreakpointCollection" typeConverter="NOTBROWSABLE"> + arrayElementCount="1"> + <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> +<SOAP-ENV:Body> +<a1:ScriptBreakpointInfo id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/Microsoft.SqlServer.VSTAHosting/Microsoft.SqlServer.VSTAScriptingLib%2C%20Version%3D14.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3D89845dcd8080cc91"> +<Enabled>true</Enabled> +<File id="ref-3">main.cs</File> +<FileLine>142</FileLine> +<FileColumn>17</FileColumn> +</a1:ScriptBreakpointInfo> +</SOAP-ENV:Body> +</SOAP-ENV:Envelope> + + Size="209,42" Id="Package\Create Temp Output Table" TopLeft="53,5.5" /> + + @@ -3315,10 +3387,6 @@ AAAAAAAAAAAAAAA=]]> - @@ -3341,10 +3409,6 @@ AAAAAAAAAAAAAAA=]]> - @@ -3375,43 +3439,61 @@ AAAAAAAAAAAAAAA=]]> + - + + Id="Package\Correct PIMS Locations.Paths[VALID_NEW_LOCATION]" + TopLeft="143,251.5"> + End="313.5,67"> + End="0,33.25" /> + + + + - + + Id="Package\Correct PIMS Locations.Paths[Output 0]" + TopLeft="143,149.5"> - + Id="Package\Correct PIMS Locations.Paths[OLE DB Source Output]" + TopLeft="143,47.5"> + End="0,52.5"> - - - - + End="0,52.5" /> - + + design-time-name="Package\Correct PIMS Locations\Store Location In Temp Table"> DataSourceViewID @@ -3483,12 +3547,12 @@ AAAAAAAAAAAAAAA=]]> TableInfoObjectType View + type="q2:string">Table + design-time-name="Package\Correct PIMS Locations\PIMS_PROPERTY_BOUNDARY_VIEW"> DataSourceViewID @@ -3496,7 +3560,7 @@ AAAAAAAAAAAAAAA=]]> TableInfoObjectType Table + type="q2:string">View