private static bool TestWktWkb(int number, IGeometryFactory factory, string wkt, string wkb) { WKTReader r = new WKTReader(factory); IGeometry wktGeom = r.Read(wkt); WKBReader s = new WKBReader(factory); IGeometry wkbGeom = s.Read(WKBReader.HexToBytes(wkb)); try { Assert.AreEqual(wkb, WKBWriter.ToHex(wktGeom.AsBinary()), "wkb's don't match"); Assert.IsTrue(DiscreteHausdorffDistance.Distance(wktGeom, wkbGeom) < 1e-9, number + ": DiscreteHausdorffDistance.Distance(wktGeom, wkbGeom) < 1e-9"); if (!wktGeom.EqualsExact(wkbGeom)) { Assert.AreEqual(wkt, wktGeom.AsText(), number + ": wkt.Equals(wktGeom.AsText())"); var wktGeom2 = s.Read(wktGeom.AsBinary()); Assert.AreEqual(wkt, wktGeom2.AsText(), number + ": wkt.Equals(wktGeom2.AsText())"); var diff = wkbGeom.Difference(wktGeom); Assert.IsTrue(false, number + ": wktGeom.EqualsExact(wkbGeom)\n" + diff.AsText()); } return(false); } catch (AssertionException ex) { Console.WriteLine(ex.Message); return(true); } }
public void TestPolygonEmpty() { WKTReader reader = new WKTReader(); IGeometry geom = reader.Read("POLYGON EMPTY"); CheckWkbGeometry(geom.AsBinary(), "POLYGON EMPTY"); }
public static DbGeometry ToDbGeometry(this IGeometry self) { if (self == null) { return(null); } return(DbGeometry.FromBinary(self.AsBinary())); }
public static void Run() { //ExStart: SpecifyWkbVariantOnTranslation IGeometry geometry = Geometry.FromText("LINESTRING (1.2 3.4, 5.6 7.8)"); byte[] wkb = geometry.AsBinary(WkbVariant.ExtendedPostGis); File.WriteAllBytes(Path.Combine(RunExamples.GetDataDir(), "EWkbFile.ewkb"), wkb); //ExEnd: SpecifyWkbVariantOnTranslation }
/// <summary> /// Generates a new feature row using only the goemetry. /// </summary> /// <param name="geometry">The byte form of the well known text to use in creating a new, otherwise empty row.</param> /// <returns>The newly created FeatureRow with the specified well known text.</returns> public FeatureRow AddFeatureRow(IGeometry geometry) { FeatureRow rowFeatureRow = (FeatureRow)NewRow(); object[] columnValuesArray = { null, geometry.AsBinary() }; rowFeatureRow.Geometry = geometry; rowFeatureRow.ItemArray = columnValuesArray; Rows.Add(rowFeatureRow); return(rowFeatureRow); }
public static void Run() { //ExStart: TranslateGeometryToWkb IGeometry geometry = Geometry.FromText("LINESTRING (1.2 3.4, 5.6 7.8)"); byte[] wkb = geometry.AsBinary(); //File.WriteAllBytes(Path.Combine(TestConfiguration.TestOutputPath, "file.wkb"), wkb); File.WriteAllBytes(Path.Combine(RunExamples.GetDataDir(), "WkbFile.wkb"), wkb); //ExEnd: TranslateGeometryToWkb }
public static DbGeography ToDbGeography(this IGeometry self) { if (self == null) { return(null); } if (self.SRID != 4326) { throw new ArgumentException(); } return(DbGeography.FromBinary(self.AsBinary())); }
public void GeomBinOpTest_Issue14_00_Simplified_WkbWkt() { string wktStr = geometry0.AsText(); WKTReader wktReader = new WKTReader(); IGeometry geometry0_bis = wktReader.Read(wktStr); byte[] test00_Geom0_WkbByteArray_bis = geometry0_bis.AsBinary(); Assert.AreEqual(test00_Geom0_WkbByteArray.Length, test00_Geom0_WkbByteArray_bis.Length, "Different wkb array length."); for (int i = 0; i < test00_Geom0_WkbByteArray_bis.Length; i++) { Assert.AreEqual(test00_Geom0_WkbByteArray[i], test00_Geom0_WkbByteArray_bis[i], "Different wkb array element at index " + i + "."); } }
public void Convert() { IGeometry gML0 = GeometryFromWKT.Parse(multiLinestring); IGeometry gLi0 = GeometryFromWKT.Parse(linestring); IGeometry gPl0 = GeometryFromWKT.Parse(polygon); IGeometry gPn0 = GeometryFromWKT.Parse(point); IGeometry gMp0 = GeometryFromWKT.Parse(multipoint); IGeometry gML1 = GeometryFromWKB.Parse(gML0.AsBinary()); IGeometry gLi1 = GeometryFromWKB.Parse(gLi0.AsBinary()); IGeometry gPl1 = GeometryFromWKB.Parse(gPl0.AsBinary()); IGeometry gPn1 = GeometryFromWKB.Parse(gPn0.AsBinary()); IGeometry gMp1 = GeometryFromWKB.Parse(gMp0.AsBinary()); Assert.AreEqual(gML0, gML1); Assert.AreEqual(gLi0, gLi1); Assert.AreEqual(gPl0, gPl1); Assert.AreEqual(gPn0, gPn1); Assert.AreEqual(gMp0, gMp1); }
private string BuildGeometry(IGeometry geometry, SqlCommand command) { var res = "ST.GeomFromWKB(@PGeom,@PTargetSrid)"; var needsTransform = NeedsTransform; command.Parameters.AddRange( new[] { new SqlParameter("@PGeom", geometry.AsBinary()), new SqlParameter("@PTargetSrid", needsTransform ? TargetSRID : SRID) }); if (needsTransform) { res = string.Format("ST.Transform({0}, @PSrid)", res); command.Parameters.AddWithValue("@PSrid", SRID); } return(res); }
/// <summary> /// Returns the Well-known Binary representation of this <c>Geometry</c>. /// For a definition of the Well-known Binary format, see the OpenGIS Simple /// Features Specification. /// </summary> /// <returns>The Well-known Binary representation of this <c>Geometry</c>.</returns> public virtual byte[] ToBinary() { return(_basicGeometry.AsBinary()); }
private string BuildGeometry(IGeometry geometry, SqlCommand command) { var res = "ST.GeomFromWKB(?,?)"; var needsTransform = NeedsTransform; command.Parameters.AddRange( new[] { new SqlParameter("@PGeom", geometry.AsBinary()), new SqlParameter("@PTargetSrid", needsTransform ? TargetSRID : SRID) }); if (needsTransform) { res = string.Format("ST.Transform({0}, ?)", res); command.Parameters.AddWithValue("@PSrid", SRID); } return res; }
public static IGeometry Copy(this IGeometry original) { return(Geometry.GeomFromWKB(original.AsBinary())); }
/// <summary> /// Stores the goemetry as WKB, overwriting any existing value. /// </summary> public void StoreGeometry() { this[_featureTable.GeometryColumn] = _geometry.AsBinary(); }