public void Point3D() { // Warm up assertions: IPoint point2D = new Point(1, 2); Assert.IsTrue(Double.IsNaN(point2D.Z)); IPoint point3D = new Point(1, 2, 3); Assert.IsFalse(Double.IsNaN(point3D.Z)); // The real thing: IPoint source = new Point(123, 456, 789); byte[] bytes = new PostGisWriter().Write(source); IPoint target = (IPoint)new PostGisReader().Read(bytes); Assert.AreEqual(source.X, target.X); Assert.AreEqual(source.Y, target.Y); Assert.AreEqual(source.Z, target.Z); }
public void LineString3D() { const int size = 10; ICoordinate[] points = new ICoordinate[size]; for (int i = 0; i < size; i++) { // just some arbitrary values points[i] = new Coordinate(100*Math.Sin(i), 200*Math.Cos(i), 300*Math.Tan(i)); } ILineString source = new LineString(points); byte[] bytes = new PostGisWriter().Write(source); ILineString target = (ILineString)new PostGisReader().Read(bytes); for (int i = 0; i < size; i++) { Assert.AreEqual(source.Coordinates[i].X, target.Coordinates[i].X); Assert.AreEqual(source.Coordinates[i].Y, target.Coordinates[i].Y); Assert.AreEqual(source.Coordinates[i].Z, target.Coordinates[i].Z); } }
/// <summary> /// /// </summary> /// <param name="wkt"></param> /// <param name="srid"></param> private static void General(string wkt, int srid) { IGeometry geom = wr.Read(wkt); string parsed = geom.AsText(); IGeometry regeom = wr.Read(parsed); string reparsed = regeom.AsText(); geom.SRID = srid; regeom.SRID = srid; Assert.IsTrue(geom.Equals(regeom)); Assert.AreEqual(parsed, reparsed); byte[] bytesB = new PostGisWriter(ByteOrder.BigEndian).Write(regeom); regeom = br.Read(bytesB); Assert.IsTrue(geom.Equals(regeom)); byte[] bytesL = new PostGisWriter(ByteOrder.LittleEndian).Write(regeom); regeom = br.Read(bytesL); Assert.IsTrue(geom.Equals(regeom)); Assert.AreEqual(bytesB.Length, bytesL.Length); }