When considering vegetation coverage, woodland coverage, lakes, river courses and all other visual features you need to partition your landscape into regions. The regions need to look naturalisic (i.e. not hexagons, grids or other repeating patterns) but need to be even sized.
A nice trick is to use a random scatter of points and then triangulate them
Now carry out a “pseudo vornoi” algorithm to generate a pleasing set of regular partitions;
Each of these units can be used as a landscape parition.
What is a psuedo-voroni algoirthm ? In this case I dont want a mathematically accurate voroni graph so I just take the centroid of each triangle and join them together. In the above diagram you should see the Voroni cell walls in white but the underlying original triangulation in dark blue.
You can then attach a set of properties to each cell based on their height and the affect of the adjacent voroni cell attributes.
For river courses the Voroni cell borders form a network of routes which an A* routing algorithm can use to describe all the possible routes of a river. Each Voroni cell vertex has only three possible adjacent points, and this makes route finding much faster and helps provide a nice river pattern when used as a set of control points to a spline.
Credit to http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/ who inspired this approach