private static void Populate( SpatialHashSearcher <SegmentIndex> spatialSearcher, MultiLinestring multiLinestring) { for (int i = 0; i < multiLinestring.Count; i++) { var linestring = multiLinestring.GetLinestring(i); for (var j = 0; j < linestring.SegmentCount; j++) { Line3D line = linestring[j]; spatialSearcher.Add(new SegmentIndex(i, j), line.XMin, line.YMin, line.XMax, line.YMax); } } }
public byte[] WriteMultiLinestring([NotNull] MultiLinestring multiLinestring, Ordinates ordinates = Ordinates.Xyz) { // TODO: Initialize with the proper size or allow providing the actual byte[] MemoryStream memoryStream = InitializeWriter(); if (multiLinestring.Count == 1) { WriteLinestring(multiLinestring.GetLinestring(0), ordinates); } else { WriteWkbType(WkbGeometryType.MultiLineString, ordinates); Writer.Write(multiLinestring.Count); foreach (Linestring linestring in multiLinestring.GetLinestrings()) { WriteLinestring(linestring, ordinates); } } return(memoryStream.ToArray()); }