private static async void ConnectToPostGis() { List <HRBorder> retour = new List <HRBorder>(); var connString = "ToGetFromAppConfigFileDO"; using (var conn = new NpgsqlConnection(connString)) { conn.Open(); conn.TypeMapper.UseLegacyPostgis(); // Retrieve all rows using (var cmd = new NpgsqlCommand("SELECT name, wkb_geometry FROM boundaries", conn)) using (Task <DbDataReader> readerTask = cmd.ExecuteReaderAsync()) { await readerTask; NpgsqlDataReader reader = (NpgsqlDataReader)readerTask.Result; PostGisFieldValueGetter readerFacade = new PostGisFieldValueGetter(reader); Task <bool> reading = reader.ReadAsync(); await reading; while (reading.Result) { Geometry geo = HRConverterPostGisToNetTopologySuite.ConvertFrom(readerFacade); reading = reader.ReadAsync(); } } } Console.ReadKey(); }
public void TestWrongColumnIndexThrowException() { StubFieldValueGetter valueGetter = new StubFieldValueGetter(); valueGetter.OrdinalToStub = 0; valueGetter.FieldCount = 1; int wrongIndex = 42; Assert.Throws <ArgumentOutOfRangeException>(() => HRConverterPostGisToNetTopologySuite.ConvertFrom(valueGetter, wrongIndex)); }
public void TestPostGisPointReturnPointWithCoordinatesAndSRS() { StubFieldValueGetter valueGetter = new StubFieldValueGetter(); valueGetter.OrdinalToStub = 0; valueGetter.FieldCount = 1; valueGetter.GeometryToStub = new PostgisPoint(_X1, _Y1); valueGetter.GeometryToStub.SRID = _SRID; Geometry geomResult = HRConverterPostGisToNetTopologySuite.ConvertFrom(valueGetter); Assert.IsType <Point>(geomResult); Point pointResult = (Point)geomResult; Assert.Equal(_X1, pointResult.X); Assert.Equal(_Y1, pointResult.Y); Assert.Equal(_SRID, pointResult.SRID); }
public void TestPostGisMultiLineStringReturnMultiLineStringWithCoordinatesAndSRS() { StubFieldValueGetter valueGetter = new StubFieldValueGetter(); valueGetter.OrdinalToStub = 0; valueGetter.FieldCount = 1; Coordinate2D[] coords1 = new Coordinate2D[] { new Coordinate2D(_X1, _Y1), new Coordinate2D(_X2, _Y2), new Coordinate2D(_X3, _Y3) }; Coordinate2D[] coords2 = new Coordinate2D[] { new Coordinate2D(_X4, _Y4), new Coordinate2D(_X5, _Y5), new Coordinate2D(_X6, _Y6) }; PostgisLineString pgLS1 = new PostgisLineString(coords1); PostgisLineString pgLS2 = new PostgisLineString(coords2); valueGetter.GeometryToStub = new PostgisMultiLineString(new PostgisLineString[] { pgLS1, pgLS2 }); valueGetter.GeometryToStub.SRID = _SRID; Geometry geomResult = HRConverterPostGisToNetTopologySuite.ConvertFrom(valueGetter); Assert.NotNull(geomResult); Assert.IsType <MultiLineString>(geomResult); MultiLineString multiLineStringResult = (MultiLineString)geomResult; Assert.Equal(2, multiLineStringResult.NumGeometries); LineString ls1 = (LineString)multiLineStringResult[0]; Assert.Equal(3, ls1.NumPoints); LineString ls2 = (LineString)multiLineStringResult[1]; Assert.Equal(3, ls2.NumPoints); Assert.Equal(3, ls1.Coordinates.Length); Assert.Equal(_X1, ls1.Coordinates[0].X); Assert.Equal(_Y1, ls1.Coordinates[0].Y); Assert.Equal(_X2, ls1.Coordinates[1].X); Assert.Equal(_Y2, ls1.Coordinates[1].Y); Assert.Equal(_X3, ls1.Coordinates[2].X); Assert.Equal(_Y3, ls1.Coordinates[2].Y); Assert.Equal(_SRID, ls1.SRID); Assert.Equal(3, ls2.Coordinates.Length); Assert.Equal(_X4, ls2.Coordinates[0].X); Assert.Equal(_Y4, ls2.Coordinates[0].Y); Assert.Equal(_X5, ls2.Coordinates[1].X); Assert.Equal(_Y5, ls2.Coordinates[1].Y); Assert.Equal(_X6, ls2.Coordinates[2].X); Assert.Equal(_Y6, ls2.Coordinates[2].Y); Assert.Equal(_SRID, ls2.SRID); }
public void TestPostGisMultiPointReturnMultiPointWithCoordinatesAndSRS() { StubFieldValueGetter valueGetter = new StubFieldValueGetter(); valueGetter.OrdinalToStub = 0; valueGetter.FieldCount = 1; Coordinate2D[] coords = new Coordinate2D[] { new Coordinate2D(_X1, _Y1), new Coordinate2D(_X2, _Y2) }; valueGetter.GeometryToStub = new PostgisMultiPoint(coords); valueGetter.GeometryToStub.SRID = _SRID; Geometry geomResult = HRConverterPostGisToNetTopologySuite.ConvertFrom(valueGetter); Assert.IsType <MultiPoint>(geomResult); MultiPoint multiPointResult = (MultiPoint)geomResult; Assert.Equal(_X1, multiPointResult.Coordinates[0].X); Assert.Equal(_Y1, multiPointResult.Coordinates[0].Y); Assert.Equal(_X2, multiPointResult.Coordinates[1].X); Assert.Equal(_Y2, multiPointResult.Coordinates[1].Y); Assert.Equal(_SRID, multiPointResult.SRID); }
public void TestPostGisPolygonReturnPolygonWithCoordinatesAndSRS() { StubFieldValueGetter valueGetter = new StubFieldValueGetter(); valueGetter.OrdinalToStub = 0; valueGetter.FieldCount = 1; //Polygon with one hole, first element is exterior ring. Declaration with a jagged Array. PostgisPolygon postGisPolygon1 = CreatePostGisPolygon(1); valueGetter.GeometryToStub = postGisPolygon1; valueGetter.GeometryToStub.SRID = _SRID; Geometry geomResult = HRConverterPostGisToNetTopologySuite.ConvertFrom(valueGetter); Assert.NotNull(geomResult); Assert.IsType <Polygon>(geomResult); Polygon polygonResult = (Polygon)geomResult; Assert.Equal(_SRID, polygonResult.SRID); CheckIsPolygonRightConverted(1, polygonResult); }
public void TestPostGisMultiPolygonReturnMultiPolygonWithCoordinatesAndSRS() { StubFieldValueGetter valueGetter = new StubFieldValueGetter(); valueGetter.OrdinalToStub = 0; valueGetter.FieldCount = 1; PostgisPolygon[] postGisPolygons = new PostgisPolygon[] { CreatePostGisPolygon(1), CreatePostGisPolygon(2) }; valueGetter.GeometryToStub = new PostgisMultiPolygon(postGisPolygons); valueGetter.GeometryToStub.SRID = _SRID; Geometry geomResult = HRConverterPostGisToNetTopologySuite.ConvertFrom(valueGetter); Assert.NotNull(geomResult); Assert.IsType <MultiPolygon>(geomResult); MultiPolygon multiPolygonResult = (MultiPolygon)geomResult; Assert.Equal(_SRID, multiPolygonResult.SRID); Assert.Equal(2, multiPolygonResult.Count); Assert.IsType <Polygon>(multiPolygonResult[0]); Assert.IsType <Polygon>(multiPolygonResult[1]); CheckIsPolygonRightConverted(1, (Polygon)multiPolygonResult[0]); CheckIsPolygonRightConverted(2, (Polygon)multiPolygonResult[1]); }
public void TestPostGisLineStringReturnLineStringWithCoordinatesAndSRS() { StubFieldValueGetter valueGetter = new StubFieldValueGetter(); valueGetter.OrdinalToStub = 0; valueGetter.FieldCount = 1; Coordinate2D[] coords = new Coordinate2D[] { new Coordinate2D(_X1, _Y1), new Coordinate2D(_X2, _Y2), new Coordinate2D(_X3, _Y3) }; valueGetter.GeometryToStub = new PostgisLineString(coords); valueGetter.GeometryToStub.SRID = _SRID; Geometry geomResult = HRConverterPostGisToNetTopologySuite.ConvertFrom(valueGetter); Assert.NotNull(geomResult); Assert.IsType <LineString>(geomResult); LineString lineStringResult = (LineString)geomResult; Assert.Equal(3, lineStringResult.Coordinates.Length); Assert.Equal(_X1, lineStringResult.Coordinates[0].X); Assert.Equal(_Y1, lineStringResult.Coordinates[0].Y); Assert.Equal(_X2, lineStringResult.Coordinates[1].X); Assert.Equal(_Y2, lineStringResult.Coordinates[1].Y); Assert.Equal(_X3, lineStringResult.Coordinates[2].X); Assert.Equal(_Y3, lineStringResult.Coordinates[2].Y); Assert.Equal(_SRID, lineStringResult.SRID); }