Three ways;
1) Use one texture that is blended together from multiple others.
2) Use a multi-texture shader.
3) Instance the landscape for each texture layer, then manipulate the alpha of the superlaying meshes to allow the one(s) beneath to show through, thus creating the illusuion of multiple textures on the one mesh. This will of course eat up a lot of ineccessary polygons; you can traverse through the vertices of the meshes to remove any which isn't visible (because there is another completely opaque vertex from the upper mesh above it, etc.) to save in somewhat.
The second approach is most likely the best if your graphics card can handle it decently. (1) and (3) have the pro of allowing virtually infinite textures, while (2) is usually limited to at most 6 textures. Most of the time you won't need more than that anyway though. It should also be noted that (1) will eat up a lot of resources due to its sheer size if any kind of higher detail is desired. The other approaches can tile a base texture to save up resources.