public void TestSTDistanceSpheroid() { using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString)) { const string Spheroid = "SPHEROID[\"WGS 84\",6378137,298.257223563]"; 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_spheroid = db.Select(() => geom.STCentroid().STDistanceSpheroid(point, Spheroid)); var dist_meters_sphere = db.Select(() => geom.STCentroid().STDistanceSphere(point)); var dist_utm11_meters = db.Select(() => geom.STCentroid().STTransform(32611).STDistance(point.STTransform(32611))); Assert.AreEqual(70454.92, dist_meters_spheroid.Value, 0.01); Assert.AreEqual(70424.71, dist_meters_sphere.Value, 0.01); Assert.AreEqual(70438.00, dist_utm11_meters.Value, 0.01); Assert.AreEqual( 4434.73734584354, db.Select(() => MeasurementFunctions.STDistanceSpheroid( "SRID=4326;POINT(120.08 30.96)", "SRID=4326;POINT(120.08 30.92)", Spheroid)).Value, 1.0E-8); Assert.IsNull(db.Select(() => MeasurementFunctions.STDistanceSpheroid((NTSG)null, (NTSG)null, Spheroid))); } }