private IGeometry BuildGrid() { var lines = new ILineString[_numLines * 2]; int index = 0; for (int i = 0; i < _numLines; i++) { Coordinate p0 = new Coordinate(GetRandOrdinate(), 0); Coordinate p1 = new Coordinate(GetRandOrdinate(), GridWidth); ILineString line = _geomFactory.CreateLineString(new [] { p0, p1 }); lines[index++] = line; } for (int i = 0; i < _numLines; i++) { Coordinate p0 = new Coordinate(0, GetRandOrdinate()); Coordinate p1 = new Coordinate(GridWidth, GetRandOrdinate()); ILineString line = _geomFactory.CreateLineString(new [] { p0, p1 }); lines[index++] = line; } IMultiLineString ml = _geomFactory.CreateMultiLineString(lines); _grid = ml.Buffer(_lineWidth); var wktWriter = new WKTWriter(2) { Formatted = true, MaxCoordinatesPerLine = 6 }; if (Verbose) { Console.WriteLine(wktWriter.Write(_grid)); } return(_grid); }