public void TestSTPointFromGeoHash() { using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString)) { const string geohash1 = "9qqj7nmxncgyy4d0dbxqz0"; db.TestGeometries.Value(g => g.Id, 1).Value(p => p.Geometry, () => GeometryInput.STPointFromGeoHash(geohash1)).Insert(); db.TestGeometries.Value(g => g.Id, 2).Value(p => p.Geometry, () => GeometryInput.STPointFromGeoHash(geohash1, 4)).Insert(); db.TestGeometries.Value(g => g.Id, 3).Value(p => p.Geometry, () => GeometryInput.STPointFromGeoHash(geohash1, 10)).Insert(); var wkt1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry.STAsText()).Single(); Assert.AreEqual("POINT(-115.172816 36.114646)", wkt1); var wkt2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry.STAsText()).Single(); Assert.AreEqual("POINT(-115.13671875 36.123046875)", wkt2); var wkt3 = db.TestGeometries.Where(g => g.Id == 3).Select(g => g.Geometry.STAsText()).Single(); Assert.AreEqual("POINT(-115.172815918922 36.1146435141563)", wkt3); db.TestGeometries.Value(g => g.Id, 4).Value(p => p.Geometry, () => GeometryInput.STPointFromGeoHash(String.Empty)).Insert(); db.TestGeometries.Value(g => g.Id, 5).Value(p => p.Geometry, () => GeometryInput.STPointFromGeoHash(null)).Insert(); var wkt4 = db.TestGeometries.Where(g => g.Id == 4).Select(g => g.Geometry.STAsText()).Single(); Assert.AreEqual("POINT(0 0)", wkt4); var wkt5 = db.TestGeometries.Where(g => g.Id == 5).Select(g => g.Geometry.STAsText()).Single(); Assert.IsNull(wkt5); } }
public void TestSTPointFromGeoHash() { using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString)) { const string GeoHash = "9qqj7nmxncgyy4d0dbxqz0"; db.TestGeometries.Value(g => g.Id, 1).Value(g => g.Geometry, () => GeometryInput.STPointFromGeoHash(GeoHash)).Insert(); db.TestGeometries.Value(g => g.Id, 2).Value(g => g.Geometry, () => GeometryInput.STPointFromGeoHash(GeoHash, 4)).Insert(); db.TestGeometries.Value(g => g.Id, 3).Value(g => g.Geometry, () => GeometryInput.STPointFromGeoHash(GeoHash, 10)).Insert(); var point1 = db.TestGeometries.Where(g => g.Id == 1).Select(g => g.Geometry).Single() as NTSGS.Point; Assert.AreEqual(-115.172816, point1.X, 1.0E-6); Assert.AreEqual(36.114646, point1.Y, 1.0E-6); var point2 = db.TestGeometries.Where(g => g.Id == 2).Select(g => g.Geometry).Single() as NTSGS.Point; Assert.AreEqual(-115.13671875, point2.X, 1.0E-8); Assert.AreEqual(36.123046875, point2.Y, 1.0E-8); var point3 = db.TestGeometries.Where(g => g.Id == 3).Select(g => g.Geometry).Single() as NTSGS.Point; Assert.AreEqual(-115.172815918922, point3.X, 1.0E-12); Assert.AreEqual(36.1146435141563, point3.Y, 1.0E-12); db.TestGeometries.Value(g => g.Id, 4).Value(g => g.Geometry, () => GeometryInput.STPointFromGeoHash(String.Empty)).Insert(); db.TestGeometries.Value(g => g.Id, 5).Value(g => g.Geometry, () => GeometryInput.STPointFromGeoHash(null)).Insert(); var wkt4 = db.TestGeometries.Where(g => g.Id == 4).Select(g => g.Geometry.STAsText()).Single(); Assert.AreEqual("POINT(0 0)", wkt4); var wkt5 = db.TestGeometries.Where(g => g.Id == 5).Select(g => g.Geometry.STAsText()).Single(); Assert.IsNull(wkt5); } }