public void TestSTShortestLine() { using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString)) { var pt = db.Select(() => GeometryInput.STPointFromText("POINT(100 100)")); var line = db.Select(() => GeometryInput.STLineFromText("LINESTRING (20 80, 98 190, 110 180, 50 75)")); var sline1 = db.Select(() => MeasurementFunctions.STShortestLine(pt, line).STAsText()); Assert.AreEqual("LINESTRING(100 100,73.0769230769231 115.384615384615)", sline1); Assert.IsNull(db.Select(() => MeasurementFunctions.STShortestLine(null, null))); } }
public void TestSTShortestLine() { using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString)) { const string PointWkt = "POINT(100 100)"; const string LineWkt = "LINESTRING (20 80, 98 190, 110 180, 50 75)"; var point = db.Select(() => GeometryInput.STPointFromText(PointWkt)); var line = db.Select(() => GeometryInput.STLineFromText(LineWkt)); var sline1 = db.Select(() => MeasurementFunctions.STShortestLine(point, line)) as NTSGS.LineString; Assert.AreEqual(100, sline1.Coordinates[0].X, 1.0E-6); Assert.AreEqual(100, sline1.Coordinates[0].Y, 1.0E-6); Assert.AreEqual(73.0769230769231, sline1.Coordinates[1].X, 1.0E-9); Assert.AreEqual(115.384615384615, sline1.Coordinates[1].Y, 1.0E-9); var sline2 = db.Select(() => MeasurementFunctions.STShortestLine(PointWkt, LineWkt)) as NTSGS.LineString; Assert.AreEqual(100, sline2.Coordinates[0].X, 1.0E-6); Assert.AreEqual(100, sline2.Coordinates[0].Y, 1.0E-6); Assert.AreEqual(73.0769230769231, sline2.Coordinates[1].X, 1.0E-9); Assert.AreEqual(115.384615384615, sline2.Coordinates[1].Y, 1.0E-9); Assert.IsNull(db.Select(() => MeasurementFunctions.STShortestLine((NTSG)null, null))); } }