internal static void ExportPointToWkt(int export_flags, com.epl.geometry.Point point, System.Text.StringBuilder @string) { int precision = 17 - (7 & (export_flags >> 13)); bool b_export_zs = point.HasAttribute(com.epl.geometry.VertexDescription.Semantics.Z) && (export_flags & com.epl.geometry.WktExportFlags.wktExportStripZs) == 0; bool b_export_ms = point.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M) && (export_flags & com.epl.geometry.WktExportFlags.wktExportStripMs) == 0; double x = com.epl.geometry.NumberUtils.TheNaN; double y = com.epl.geometry.NumberUtils.TheNaN; double z = com.epl.geometry.NumberUtils.TheNaN; double m = com.epl.geometry.NumberUtils.TheNaN; if (!point.IsEmpty()) { x = point.GetX(); y = point.GetY(); if (b_export_zs) { z = point.GetZ(); } if (b_export_ms) { m = point.GetM(); } } if ((export_flags & com.epl.geometry.WktExportFlags.wktExportMultiPoint) != 0) { MultiPointTaggedTextFromPoint_(precision, b_export_zs, b_export_ms, x, y, z, m, @string); } else { PointTaggedText_(precision, b_export_zs, b_export_ms, x, y, z, m, @string); } }
private static void ExportPointToJson(com.epl.geometry.Point pt, com.epl.geometry.SpatialReference spatialReference, com.epl.geometry.JsonWriter jsonWriter, System.Collections.Generic.IDictionary <string, object> exportProperties) { bool bExportZs = pt.HasAttribute(com.epl.geometry.VertexDescription.Semantics.Z); bool bExportMs = pt.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M); bool bPositionAsF = false; int decimals = 17; if (exportProperties != null) { object numberOfDecimalsXY = exportProperties["numberOfDecimalsXY"]; if (numberOfDecimalsXY != null && numberOfDecimalsXY is java.lang.Number) { bPositionAsF = true; decimals = ((java.lang.Number)numberOfDecimalsXY); } } jsonWriter.StartObject(); if (pt.IsEmpty()) { jsonWriter.AddPairNull("x"); jsonWriter.AddPairNull("y"); if (bExportZs) { jsonWriter.AddPairNull("z"); } if (bExportMs) { jsonWriter.AddPairNull("m"); } } else { if (bPositionAsF) { jsonWriter.AddPairDouble("x", pt.GetX(), decimals, true); jsonWriter.AddPairDouble("y", pt.GetY(), decimals, true); } else { jsonWriter.AddPairDouble("x", pt.GetX()); jsonWriter.AddPairDouble("y", pt.GetY()); } if (bExportZs) { jsonWriter.AddPairDouble("z", pt.GetZ()); } if (bExportMs) { jsonWriter.AddPairDouble("m", pt.GetM()); } } if (spatialReference != null) { WriteSR(spatialReference, jsonWriter); } jsonWriter.EndObject(); }
public virtual void TestPoint() { com.epl.geometry.Point pt = new com.epl.geometry.Point(); pt.SetXY(100, 200); NUnit.Framework.Assert.IsFalse(pt.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M)); pt.AddAttribute(com.epl.geometry.VertexDescription.Semantics.M); NUnit.Framework.Assert.IsTrue(pt.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M)); NUnit.Framework.Assert.IsTrue(double.IsNaN(pt.GetM())); pt.SetAttribute(com.epl.geometry.VertexDescription.Semantics.M, 0, 13); NUnit.Framework.Assert.IsTrue(pt.GetM() == 13); pt.AddAttribute(com.epl.geometry.VertexDescription.Semantics.Z); NUnit.Framework.Assert.IsTrue(pt.GetZ() == 0); NUnit.Framework.Assert.IsTrue(pt.GetM() == 13); pt.SetAttribute(com.epl.geometry.VertexDescription.Semantics.Z, 0, 11); NUnit.Framework.Assert.IsTrue(pt.GetZ() == 11); NUnit.Framework.Assert.IsTrue(pt.GetM() == 13); pt.AddAttribute(com.epl.geometry.VertexDescription.Semantics.ID); NUnit.Framework.Assert.IsTrue(pt.GetID() == 0); NUnit.Framework.Assert.IsTrue(pt.GetZ() == 11); NUnit.Framework.Assert.IsTrue(pt.GetM() == 13); pt.SetAttribute(com.epl.geometry.VertexDescription.Semantics.ID, 0, 1); NUnit.Framework.Assert.IsTrue(pt.GetID() == 1); NUnit.Framework.Assert.IsTrue(pt.GetZ() == 11); NUnit.Framework.Assert.IsTrue(pt.GetM() == 13); pt.DropAttribute(com.epl.geometry.VertexDescription.Semantics.M); NUnit.Framework.Assert.IsTrue(pt.GetID() == 1); NUnit.Framework.Assert.IsTrue(pt.GetZ() == 11); NUnit.Framework.Assert.IsFalse(pt.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M)); com.epl.geometry.Point pt1 = new com.epl.geometry.Point(); NUnit.Framework.Assert.IsFalse(pt1.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M)); NUnit.Framework.Assert.IsFalse(pt1.HasAttribute(com.epl.geometry.VertexDescription.Semantics.Z)); NUnit.Framework.Assert.IsFalse(pt1.HasAttribute(com.epl.geometry.VertexDescription.Semantics.ID)); pt1.MergeVertexDescription(pt.GetDescription()); NUnit.Framework.Assert.IsFalse(pt1.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M)); NUnit.Framework.Assert.IsTrue(pt1.HasAttribute(com.epl.geometry.VertexDescription.Semantics.Z)); NUnit.Framework.Assert.IsTrue(pt1.HasAttribute(com.epl.geometry.VertexDescription.Semantics.ID)); }
// Mirrors wkt private static void ExportPointToGeoJson_(int export_flags, com.epl.geometry.Point point, com.epl.geometry.JsonWriter json_writer) { int precision = 17 - (31 & (export_flags >> 13)); bool bFixedPoint = (com.epl.geometry.GeoJsonExportFlags.geoJsonExportPrecisionFixedPoint & export_flags) != 0; bool b_export_zs = point.HasAttribute(com.epl.geometry.VertexDescription.Semantics.Z) && (export_flags & com.epl.geometry.GeoJsonExportFlags.geoJsonExportStripZs) == 0; bool b_export_ms = point.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M) && (export_flags & com.epl.geometry.GeoJsonExportFlags.geoJsonExportStripMs) == 0; if (!b_export_zs && b_export_ms) { throw new System.ArgumentException("invalid argument"); } double x = com.epl.geometry.NumberUtils.NaN(); double y = com.epl.geometry.NumberUtils.NaN(); double z = com.epl.geometry.NumberUtils.NaN(); double m = com.epl.geometry.NumberUtils.NaN(); if (!point.IsEmpty()) { x = point.GetX(); y = point.GetY(); if (b_export_zs) { z = point.GetZ(); } if (b_export_ms) { m = point.GetM(); } } if ((export_flags & com.epl.geometry.GeoJsonExportFlags.geoJsonExportPreferMultiGeometry) == 0) { PointTaggedText_(precision, bFixedPoint, b_export_zs, b_export_ms, x, y, z, m, json_writer); } else { MultiPointTaggedTextFromPoint_(precision, bFixedPoint, b_export_zs, b_export_ms, x, y, z, m, json_writer); } }
private static int ExportPointToESRIShape(int exportFlags, com.epl.geometry.Point point, System.IO.BinaryWriter shapeBuffer) { bool bExportZ = point.HasAttribute(com.epl.geometry.VertexDescription.Semantics.Z) && (exportFlags & com.epl.geometry.ShapeExportFlags.ShapeExportStripZs) == 0; bool bExportM = point.HasAttribute(com.epl.geometry.VertexDescription.Semantics.M) && (exportFlags & com.epl.geometry.ShapeExportFlags.ShapeExportStripMs) == 0; bool bExportID = point.HasAttribute(com.epl.geometry.VertexDescription.Semantics.ID) && (exportFlags & com.epl.geometry.ShapeExportFlags.ShapeExportStripIDs) == 0; bool bArcViewNaNs = (exportFlags & com.epl.geometry.ShapeExportFlags.ShapeExportTrueNaNs) == 0; int size = (4) + (2 * 8); /* type */ /* xy coordinate */ if (bExportZ) { size += 8; } if (bExportM) { size += 8; } if (bExportID) { size += 4; } if (shapeBuffer == null) { return(size); } else { if (((System.IO.MemoryStream)shapeBuffer.BaseStream).Capacity < size) { throw new com.epl.geometry.GeometryException("buffer is too small"); } } int type; // Determine the shape type if (!bExportZ && !bExportM) { if (bExportID) { type = com.epl.geometry.ShapeType.ShapeGeneralPoint | com.epl.geometry.ShapeModifiers.ShapeHasIDs; } else { type = com.epl.geometry.ShapeType.ShapePoint; } } else { if (bExportZ && !bExportM) { if (bExportID) { type = com.epl.geometry.ShapeType.ShapeGeneralPoint | com.epl.geometry.ShapeModifiers.ShapeHasZs | com.epl.geometry.ShapeModifiers.ShapeHasIDs; } else { type = com.epl.geometry.ShapeType.ShapePointZ; } } else { if (bExportM && !bExportZ) { if (bExportID) { type = com.epl.geometry.ShapeType.ShapeGeneralPoint | com.epl.geometry.ShapeModifiers.ShapeHasMs | com.epl.geometry.ShapeModifiers.ShapeHasIDs; } else { type = com.epl.geometry.ShapeType.ShapePointM; } } else { if (bExportID) { type = com.epl.geometry.ShapeType.ShapeGeneralPoint | com.epl.geometry.ShapeModifiers.ShapeHasZs | com.epl.geometry.ShapeModifiers.ShapeHasMs | com.epl.geometry.ShapeModifiers.ShapeHasIDs; } else { type = com.epl.geometry.ShapeType.ShapePointZM; } } } } int offset = 0; // write type shapeBuffer.Write(type); offset += 4; bool bEmpty = point.IsEmpty(); // write xy double x = !bEmpty?point.GetX() : com.epl.geometry.NumberUtils.NaN(); double y = !bEmpty?point.GetY() : com.epl.geometry.NumberUtils.NaN(); shapeBuffer.Write(bArcViewNaNs ? com.epl.geometry.Interop.TranslateToAVNaN(x) : x); offset += 8; shapeBuffer.Write(bArcViewNaNs ? com.epl.geometry.Interop.TranslateToAVNaN(y) : y); offset += 8; // write Z if (bExportZ) { double z = !bEmpty?point.GetZ() : com.epl.geometry.NumberUtils.NaN(); shapeBuffer.Write(bArcViewNaNs ? com.epl.geometry.Interop.TranslateToAVNaN(z) : z); offset += 8; } // WriteM if (bExportM) { double m = !bEmpty?point.GetM() : com.epl.geometry.NumberUtils.NaN(); shapeBuffer.Write(bArcViewNaNs ? com.epl.geometry.Interop.TranslateToAVNaN(m) : m); offset += 8; } // write ID if (bExportID) { int id = !bEmpty?point.GetID() : 0; shapeBuffer.Write(id); offset += 4; } return(offset); }
public virtual void TestSerializePoint() { try { java.io.ByteArrayOutputStream streamOut = new java.io.ByteArrayOutputStream(); java.io.ObjectOutputStream oo = new java.io.ObjectOutputStream(streamOut); com.epl.geometry.Point pt = new com.epl.geometry.Point(10, 40); oo.WriteObject(pt); System.IO.BinaryWriter streamIn = new System.IO.BinaryWriter(streamOut.ToByteArray()); java.io.ObjectInputStream ii = new java.io.ObjectInputStream(streamIn); com.epl.geometry.Point ptRes = (com.epl.geometry.Point)ii.ReadObject(); NUnit.Framework.Assert.IsTrue(ptRes.Equals(pt)); } catch (System.Exception) { Fail("Point serialization failure"); } //try //{ //FileOutputStream streamOut = new FileOutputStream("c:/temp/savedPoint1.txt"); //ObjectOutputStream oo = new ObjectOutputStream(streamOut); //Point pt = new Point(10, 40, 2); //oo.writeObject(pt); //} //catch(Exception ex) //{ //fail("Point serialization failure"); //} try { java.io.InputStream s = typeof(com.epl.geometry.TestSerialization).GetResourceAsStream("savedPoint.txt"); java.io.ObjectInputStream ii = new java.io.ObjectInputStream(s); com.epl.geometry.Point ptRes = (com.epl.geometry.Point)ii.ReadObject(); NUnit.Framework.Assert.IsTrue(ptRes.GetX() == 10 && ptRes.GetY() == 40); } catch (System.Exception) { Fail("Point serialization failure"); } try { java.io.InputStream s = typeof(com.epl.geometry.TestSerialization).GetResourceAsStream("savedPoint1.txt"); java.io.ObjectInputStream ii = new java.io.ObjectInputStream(s); com.epl.geometry.Point ptRes = (com.epl.geometry.Point)ii.ReadObject(); NUnit.Framework.Assert.IsTrue(ptRes.GetX() == 10 && ptRes.GetY() == 40 && ptRes.GetZ() == 2); } catch (System.Exception) { Fail("Point serialization failure"); } }
/// <exception cref="com.fasterxml.jackson.core.JsonParseException"/> /// <exception cref="System.IO.IOException"/> internal virtual bool TestPoint() { bool bAnswer = true; com.epl.geometry.Point point1 = new com.epl.geometry.Point(10.0, 20.0); com.epl.geometry.Point pointEmpty = new com.epl.geometry.Point(); { com.fasterxml.jackson.core.JsonParser pointWebMerc1Parser = factory.CreateParser(com.epl.geometry.GeometryEngine.GeometryToJson(spatialReferenceWebMerc1, point1)); com.epl.geometry.MapGeometry pointWebMerc1MP = com.epl.geometry.GeometryEngine.JsonToGeometry(pointWebMerc1Parser); NUnit.Framework.Assert.IsTrue(point1.GetX() == ((com.epl.geometry.Point)pointWebMerc1MP.GetGeometry()).GetX()); NUnit.Framework.Assert.IsTrue(point1.GetY() == ((com.epl.geometry.Point)pointWebMerc1MP.GetGeometry()).GetY()); NUnit.Framework.Assert.IsTrue(spatialReferenceWebMerc1.GetID() == pointWebMerc1MP.GetSpatialReference().GetID() || pointWebMerc1MP.GetSpatialReference().GetID() == 3857); if (!CheckResultSpatialRef(pointWebMerc1MP, 102100, 3857)) { bAnswer = false; } pointWebMerc1Parser = factory.CreateParser(com.epl.geometry.GeometryEngine.GeometryToJson(null, point1)); pointWebMerc1MP = com.epl.geometry.GeometryEngine.JsonToGeometry(pointWebMerc1Parser); NUnit.Framework.Assert.IsTrue(null == pointWebMerc1MP.GetSpatialReference()); if (pointWebMerc1MP.GetSpatialReference() != null) { if (!CheckResultSpatialRef(pointWebMerc1MP, 102100, 3857)) { bAnswer = false; } } string pointEmptyString = com.epl.geometry.GeometryEngine.GeometryToJson(spatialReferenceWebMerc1, pointEmpty); pointWebMerc1Parser = factory.CreateParser(pointEmptyString); } com.fasterxml.jackson.core.JsonParser pointWebMerc2Parser = factory.CreateParser(com.epl.geometry.GeometryEngine.GeometryToJson(spatialReferenceWebMerc2, point1)); com.epl.geometry.MapGeometry pointWebMerc2MP = com.epl.geometry.GeometryEngine.JsonToGeometry(pointWebMerc2Parser); NUnit.Framework.Assert.IsTrue(point1.GetX() == ((com.epl.geometry.Point)pointWebMerc2MP.GetGeometry()).GetX()); NUnit.Framework.Assert.IsTrue(point1.GetY() == ((com.epl.geometry.Point)pointWebMerc2MP.GetGeometry()).GetY()); NUnit.Framework.Assert.IsTrue(spatialReferenceWebMerc2.GetLatestID() == pointWebMerc2MP.GetSpatialReference().GetLatestID()); if (!CheckResultSpatialRef(pointWebMerc2MP, spatialReferenceWebMerc2.GetLatestID(), 0)) { bAnswer = false; } { com.fasterxml.jackson.core.JsonParser pointWgs84Parser = factory.CreateParser(com.epl.geometry.GeometryEngine.GeometryToJson(spatialReferenceWGS84, point1)); com.epl.geometry.MapGeometry pointWgs84MP = com.epl.geometry.GeometryEngine.JsonToGeometry(pointWgs84Parser); NUnit.Framework.Assert.IsTrue(point1.GetX() == ((com.epl.geometry.Point)pointWgs84MP.GetGeometry()).GetX()); NUnit.Framework.Assert.IsTrue(point1.GetY() == ((com.epl.geometry.Point)pointWgs84MP.GetGeometry()).GetY()); NUnit.Framework.Assert.IsTrue(spatialReferenceWGS84.GetID() == pointWgs84MP.GetSpatialReference().GetID()); if (!CheckResultSpatialRef(pointWgs84MP, 4326, 0)) { bAnswer = false; } } { com.epl.geometry.Point p = new com.epl.geometry.Point(); string s = com.epl.geometry.GeometryEngine.GeometryToJson(spatialReferenceWebMerc1, p); NUnit.Framework.Assert.IsTrue(s.Equals("{\"x\":null,\"y\":null,\"spatialReference\":{\"wkid\":102100,\"latestWkid\":3857}}")); p.AddAttribute(com.epl.geometry.VertexDescription.Semantics.Z); p.AddAttribute(com.epl.geometry.VertexDescription.Semantics.M); s = com.epl.geometry.GeometryEngine.GeometryToJson(spatialReferenceWebMerc1, p); NUnit.Framework.Assert.IsTrue(s.Equals("{\"x\":null,\"y\":null,\"z\":null,\"m\":null,\"spatialReference\":{\"wkid\":102100,\"latestWkid\":3857}}")); } { com.epl.geometry.Point p = new com.epl.geometry.Point(10.0, 20.0, 30.0); p.AddAttribute(com.epl.geometry.VertexDescription.Semantics.M); string s = com.epl.geometry.GeometryEngine.GeometryToJson(spatialReferenceWebMerc1, p); NUnit.Framework.Assert.IsTrue(s.Equals("{\"x\":10,\"y\":20,\"z\":30,\"m\":null,\"spatialReference\":{\"wkid\":102100,\"latestWkid\":3857}}")); } { // import string s = "{\"x\":0.0,\"y\":1.0,\"z\":5.0,\"m\":11.0,\"spatialReference\":{\"wkid\":102100,\"latestWkid\":3857}}"; com.fasterxml.jackson.core.JsonParser parser = factory.CreateParser(s); com.epl.geometry.MapGeometry map_pt = com.epl.geometry.GeometryEngine.JsonToGeometry(parser); com.epl.geometry.Point pt = (com.epl.geometry.Point)map_pt.GetGeometry(); NUnit.Framework.Assert.IsTrue(pt.GetX() == 0.0); NUnit.Framework.Assert.IsTrue(pt.GetY() == 1.0); NUnit.Framework.Assert.IsTrue(pt.GetZ() == 5.0); NUnit.Framework.Assert.IsTrue(pt.GetM() == 11.0); } { string s = "{\"x\" : 5.0, \"y\" : null, \"spatialReference\" : {\"wkid\" : 4326}} "; com.fasterxml.jackson.core.JsonParser parser = factory.CreateParser(s); com.epl.geometry.MapGeometry map_pt = com.epl.geometry.GeometryEngine.JsonToGeometry(parser); com.epl.geometry.Point pt = (com.epl.geometry.Point)map_pt.GetGeometry(); NUnit.Framework.Assert.IsTrue(pt.IsEmpty()); com.epl.geometry.SpatialReference spatial_reference = map_pt.GetSpatialReference(); NUnit.Framework.Assert.IsTrue(spatial_reference.GetID() == 4326); } return(bAnswer); }