public void TestSTDistanceSphere() { using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString)) { var point = db.Select(() => GeometryInput.STGeomFromText("POINT(-118 38)", SRID4326)); var geom = db.Select(() => GeometryInput.STGeomFromText("LINESTRING(-118.584 38.374,-118.583 38.5)", SRID4326)); var dist_meters = db.Select(() => geom.STCentroid().STDistanceSphere(point)); var dist_utm11_meters = db.Select(() => geom.STCentroid().STTransform(32611).STDistance(point.STTransform(32611))); var dist_degrees = db.Select(() => geom.STCentroid().STDistance(point)); var min_dist_line_point_meters = db.Select(() => geom.STTransform(32611).STDistance(point.STTransform(32611))); Assert.AreEqual(70424.71, dist_meters.Value, 0.01); Assert.AreEqual(70438.00, dist_utm11_meters.Value, 0.01); Assert.AreEqual(0.72900, dist_degrees.Value, 0.00001); Assert.AreEqual(65871.18, min_dist_line_point_meters.Value, 0.01); Assert.AreEqual( 111195.07973463, db.Select(() => MeasurementFunctions.STDistanceSphere( "SRID=4326;POINT(0 0)", "SRID=4326;POINT(0 1)")).Value, 1.0E-6); Assert.IsNull(db.Select(() => MeasurementFunctions.STDistanceSphere((NTSG)null, (NTSG)null))); } }