public void MultiLinestring() { MultiLineString mls = new MultiLineString(); Assert.IsTrue(mls.IsEmpty()); mls.LineStrings.Add(new LineString()); Assert.IsTrue(mls.IsEmpty()); mls.LineStrings[0].Vertices.Add(new Point(45, 68)); mls.LineStrings[0].Vertices.Add(new Point(82, 44)); mls.LineStrings.Add(CreateLineString()); foreach (LineString ls in mls) Assert.IsFalse(ls.IsEmpty()); Assert.IsFalse(mls.IsEmpty()); foreach (LineString ls in mls) Assert.IsFalse(ls.IsClosed); Assert.IsFalse(mls.IsClosed); //Close linestrings foreach (LineString ls in mls) ls.Vertices.Add(ls.StartPoint.Clone()); foreach (LineString ls in mls) Assert.IsTrue(ls.IsClosed); Assert.IsTrue(mls.IsClosed); Assert.AreEqual(new BoundingBox(1,2,930,123), mls.GetBoundingBox()); }
/// <summary> /// Converts a MultiLineString to <MultiLineString Text> /// format, then Appends it to the writer. /// </summary> /// <param name="multiLineString">The MultiLineString to process.</param> /// <param name="writer">The output stream writer to Append to.</param> private static void AppendMultiLineStringText(MultiLineString multiLineString, StringWriter writer) { if (multiLineString == null || multiLineString.IsEmpty()) writer.Write("EMPTY"); else { writer.Write("("); for (int i = 0; i < multiLineString.LineStrings.Count; i++) { if (i > 0) writer.Write(", "); AppendLineStringText(multiLineString[i], writer); } writer.Write(")"); } }