示例#1
0
        protected override void OnTestFixtureSetUp()
        {
            DataGenerator.Generate(sessions);

            _filter      = Wkt.Read(FilterString);
            _filter.SRID = 4326;
        }
        public void CountAndUnionByState()
        {
            IList results = session.CreateCriteria(typeof(County))
                            .AddOrder(Order.Asc("State"))
                            .SetProjection(Projections.ProjectionList()
                                           .Add(Projections.GroupProperty("State"))
                                           .Add(Projections.RowCount())
                                           .Add(SpatialProjections.Union("Boundaries"))
                                           )
                            .List();

            Assert.AreEqual(2, results.Count);

            object[] resultAA = (object[])results[0];
            object[] resultBB = (object[])results[1];

            int       countAA      = (int)resultAA[1];
            int       countBB      = (int)resultBB[1];
            IGeometry aggregatedAA = (IGeometry)resultAA[2];
            IGeometry aggregatedBB = (IGeometry)resultBB[2];

            IGeometry expectedAA = Wkt.Read("POLYGON((1 0, 1 1, 3 1, 3 0, 1 0))");
            IGeometry expectedBB = Wkt.Read("POLYGON((1 1, 1 2, 3 2, 3 1, 1 1))");

            Assert.AreEqual(2, countAA);
            Assert.AreEqual(2, countBB);
            Assert.IsTrue(expectedAA.Equals(aggregatedAA));
            Assert.IsTrue(expectedBB.Equals(aggregatedBB));
        }
示例#3
0
        public void PolygonMValuesAreStoredAndRetrievedCorrectly()
        {
            // Arrange
            const string wkt = "POLYGONM ((0 0 1, 0 100 2, 100 100 3, 100 0 4, 0 0 5))";

            using (var session = sessions.OpenSession())
            {
                var obj = new PolygonM
                {
                    Id   = 1,
                    Geom = Wkt.Read(wkt)
                };
                session.Save(obj);
                session.Flush();
            }
            var expected      = Wkt.Read(wkt);
            var expectedCoord = expected.Coordinate;

            // Act
            var polygonM      = _session.Load <PolygonM>(1);
            var polygonMCoord = polygonM.Geom.Coordinate;

            // Assert
            // NOTE: Cannot use EqualsTopologically or EqualsExact here since
            //       both ignore Z/M components
            Assert.AreEqual(expectedCoord.X, polygonMCoord.X);
            Assert.AreEqual(expectedCoord.Y, polygonMCoord.Y);
            Assert.AreEqual(expectedCoord.M, polygonMCoord.M);
        }
        protected override void OnSetUp()
        {
            session = sessions.OpenSession();

            session.Save(new County("aaaa", "AA", Wkt.Read("POLYGON((1 0, 2 0, 2 1, 1 1, 1 0))")));
            session.Save(new County("bbbb", "BB", Wkt.Read("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))")));
            session.Save(new County("cccc", "BB", Wkt.Read("POLYGON((2 1, 3 1, 3 2, 2 2, 2 1))")));
            session.Save(new County("dddd", "AA", Wkt.Read("POLYGON((2 0, 3 0, 3 1, 2 1, 2 0))")));
            session.Flush();
        }
示例#5
0
        protected override void OnSetUp()
        {
            session = sessions.OpenSession();

            session.Save(new Simple("a point", new Point(12, 45)));
            session.Save(new Simple("a null", null));
            session.Save(new Simple("a collection empty 1", Wkt.Read("GEOMETRYCOLLECTION EMPTY")));
            session.Save(new Simple("a collection empty 2", GeometryCollection.Empty));
            session.Flush();
        }
示例#6
0
        public override void ConformanceItemT31Linq()
        {
            var query =
                from t in session.Query <DividedRoute>()
                where t.Name == "Route 75"
                select t.Centerlines.GetGeometryN(2);

            IGeometry geometry = query.Single();
            IGeometry expected = Wkt.Read("LINESTRING( 16 0, 16 23, 16 48 )");

            Assert.IsTrue(expected.Equals(geometry));
        }
示例#7
0
        public override void ConformanceItemT29Linq()
        {
            var query =
                from t in session.Query <Lake>()
                where t.Name == "Blue Lake"
                select((IPolygon)t.Shore).GetInteriorRingN(1);

            IGeometry geometry = query.Single();
            IGeometry expected = Wkt.Read("LINESTRING(59 18, 67 18, 67 13, 59 13, 59 18)");

            Assert.IsTrue(expected.Equals(geometry));
        }
示例#8
0
        public override void ConformanceItemT48Linq()
        {
            var query =
                from np in session.Query <NamedPlace>()
                from f in session.Query <Forest>()
                where np.Name == "Ashton" && f.Name == "Green Forest"
                select np.Boundary.Difference(f.Boundary);

            IGeometry geometry = query.Single();
            IGeometry expected = Wkt.Read("POLYGON((84 42, 84 48, 62 48, 56 34, 84 42))");

            Assert.IsTrue(expected.EqualsExact(geometry, Tolerance));
        }
示例#9
0
        public override void ConformanceItemT23Linq()
        {
            var query =
                from t in session.Query <RoadSegment>()
                where t.Fid == 102
                select((ILineString)t.Centerline)
                .GetPointN(1);

            IGeometry geometry = query.Single();
            IGeometry expected = Wkt.Read("POINT( 0 18 )");

            Assert.IsTrue(expected.Equals(geometry));
        }
        public void GeometryWithinQueryOver()
        {
            var boundary = Wkt.Read("POLYGON((-1.0 -1.0, -1.0 3.0, 4.0 3.0, 4.0 -1.0, -1.0 -1.0))");

            boundary.SRID = 32719;

            var results = _session
                          .QueryOver <County>()
                          .WhereSpatialRestrictionOn(p => p.Boundaries).Within(boundary)
                          .List();

            Assert.AreEqual(4, results.Count);
        }
示例#11
0
        public override void ConformanceItemT48Hql()
        {
            string query =
                @"select NHSP.AsText(NHSP.Difference(np.Boundary, f.Boundary))
				from NamedPlace np, Forest f
				where np.Name = 'Ashton' and f.Name = 'Green Forest'
				"                ;
            string result = session.CreateQuery(query)
                            .UniqueResult <string>();

            IGeometry geometry = Wkt.Read(result);
            IGeometry expected = Wkt.Read("POLYGON((84 42, 84 48, 62 48, 56 34, 84 42))");

            Assert.IsTrue(expected.EqualsExact(geometry, Tolerance));
        }
        protected override void OnSetUp()
        {
            _session = sessions.OpenSession();

            _session.Save(new Simple("point 1", new Point(2.5, 1.5)));
            _session.Save(new Simple("point 2", new Point(0.5, 0.5)));
            _session.Save(new Simple("point 3", new Point(0.5, 2.5)));
            _session.Save(new Simple("point 4", new Point(1.5, 1.5)));

            _session.Save(new County("aaaa", "AA", Wkt.Read("POLYGON((1 0, 2 0, 2 1, 1 1, 1 0))")));
            _session.Save(new County("bbbb", "BB", Wkt.Read("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))")));
            _session.Save(new County("cccc", "BB", Wkt.Read("POLYGON((2 1, 3 1, 3 2, 2 2, 2 1))")));
            _session.Save(new County("dddd", "AA", Wkt.Read("POLYGON((2 0, 3 0, 3 1, 2 1, 2 0))")));
            _session.Flush();
        }
        protected override void OnSetUp()
        {
            _session = sessions.OpenSession();

            _session.Save(new Simple("a point", new Point(12, 45)));
            _session.Save(new Simple("a null", null));
            _session.Save(new Simple("a collection empty 1", Wkt.Read("GEOMETRYCOLLECTION EMPTY")));
            _session.Save(new Simple("a collection empty 2", GeometryCollection.Empty));

            _session.Save(new County("aaaa", "AA", Wkt.Read("POLYGON((1 0, 2 0, 2 1, 1 1, 1 0))")));
            _session.Save(new County("bbbb", "BB", Wkt.Read("POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))")));
            _session.Save(new County("cccc", "BB", Wkt.Read("POLYGON((2 1, 3 1, 3 2, 2 2, 2 1))")));
            _session.Save(new County("dddd", "AA", Wkt.Read("POLYGON((2 0, 3 0, 3 1, 2 1, 2 0))")));

            _session.Flush();
        }
示例#14
0
        public void CountAndUnion()
        {
            IList results = _session.CreateCriteria(typeof(County))
                            .SetProjection(Projections.ProjectionList()
                                           .Add(Projections.RowCount())
                                           .Add(SpatialProjections.Union("Boundaries"))
                                           )
                            .List();

            Assert.AreEqual(1, results.Count);

            object[] result = (object[])results[0];

            IGeometry expected   = Wkt.Read("POLYGON((1 0, 1 1, 1 2, 2 2, 3 2, 3 1, 3 0, 2 0, 1 0))");
            IGeometry aggregated = (IGeometry)result[1];

            Assert.AreEqual(4, result[0]);
            Assert.IsTrue(expected.Equals(aggregated));
        }
示例#15
0
        private static void CountAndUnionByState(IList results)
        {
            Assert.AreEqual(2, results.Count);

            object[] resultAA = (object[])results[0];
            object[] resultBB = (object[])results[1];

            int       countAA      = (int)resultAA[1];
            int       countBB      = (int)resultBB[1];
            IGeometry aggregatedAA = (IGeometry)resultAA[2];
            IGeometry aggregatedBB = (IGeometry)resultBB[2];

            IGeometry expectedAA = Wkt.Read("POLYGON((1 0, 1 1, 3 1, 3 0, 1 0))");
            IGeometry expectedBB = Wkt.Read("POLYGON((1 1, 1 2, 3 2, 3 1, 1 1))");

            Assert.AreEqual(2, countAA);
            Assert.AreEqual(2, countBB);
            Assert.IsTrue(expectedAA.Equals(aggregatedAA));
            Assert.IsTrue(expectedBB.Equals(aggregatedBB));
        }
示例#16
0
 public override int GetHashCode()
 {
     return(LocationG != null?LocationG.GetHashCode() : (String.IsNullOrEmpty(Wkt) ? Id : Wkt.GetHashCode()));
 }