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