Esempio n. 1
0
        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);
            }
        }