/// <summary> /// Converts a MultiPoint to <MultiPoint Text> format, then /// Appends it to the writer. /// </summary> /// <param name="multiPoint">The MultiPoint to process.</param> /// <param name="writer">The output stream writer to Append to.</param> protected void AppendMultiPointText(MultiPoint multiPoint, TextWriter writer) { if (multiPoint.IsEmpty()) { //writer.Write("EMPTY"); } else { for (int i = 0; i < multiPoint.GetNumGeometries(); i++) { AppendPointTaggedText(multiPoint.GetCoordinate(i), writer, _precisionModel); } } }
public void test_NumGeometries() { //create a new multipoint MultiPoint mp1 = CreateTester1(); //create a new multipoint MultiPoint mp2 = CreateTester2(); //create a new multipoint MultiPoint mp3 = CreateTester3(); //create a new multipoint MultiPoint mp4 = CreateTester4(); Assertion.AssertEquals("NumGeometries-1: ", 23, mp1.GetNumGeometries()); Assertion.AssertEquals("NumGeometries-2: ", 18, mp2.GetNumGeometries()); Assertion.AssertEquals("NumGeometries-3: ", 21, mp3.GetNumGeometries()); Assertion.AssertEquals("NumGeometries-4: ", 32, mp4.GetNumGeometries()); }
public void test_Clone() { //create a new multipoint MultiPoint mp = CreateTester1(); //clone that multipoint MultiPoint mp2 = mp.Clone() as MultiPoint; //Test that they are not the same multipoint Assertion.AssertEquals("Clone-1: ", false, mp == mp2); //Test that they have the same coordinates for (int i = 0; i < mp.GetNumGeometries(); i++) { Assertion.AssertEquals("Clone-2: ", true, mp.GetCoordinate(i).X.Equals(mp2.GetCoordinate(i).X)); Assertion.AssertEquals("Clone-3: ", true, mp.GetCoordinate(i).Y.Equals(mp2.GetCoordinate(i).Y)); } }
/// <summary> /// Tests if MultiPoint is simple. /// </summary> /// <param name="mp">Geometry to test. Must be of type MultiPoint.</param> /// <returns>Returns True if geometry is simple.</returns> /// <remarks>A MultiPoint is simple if and only if it has no repeated points.</remarks> public bool IsSimple(MultiPoint mp) { if (mp.IsEmpty()) { return(true); } SortedList points = new SortedList(); for (int i = 0; i < mp.GetNumGeometries(); i++) { Point pt = (Point)mp.GetGeometryN(i); Coordinate p = pt.GetCoordinate(); if (points.Contains(p)) { return(false); } points.Add(p, p); } //for ( int i = 0; i < mp.NumGeometries; i++ ) return(true); } // public bool IsSimple( MultiPoint mp )
/// <summary> /// Converts a MultiPoint to <MultiPoint Text> format, then /// Appends it to the writer. /// </summary> /// <param name="multiPoint">The MultiPoint to process.</param> /// <param name="level"></param> /// <param name="writer">The output stream writer to Append to.</param> protected void AppendMultiPointText(MultiPoint multiPoint, int level, StringWriter writer) { if (multiPoint.IsEmpty()) { writer.Write("EMPTY"); } else { writer.Write("("); for (int i = 0; i < multiPoint.GetNumGeometries(); i++) { if (i > 0) { writer.Write(", "); } AppendCoordinate(multiPoint.GetCoordinates()[i], writer, multiPoint.PrecisionModel); } writer.Write(")"); } }