Simulating lakes with Google Earth

In yesterday’s post we had a KML which includes a polygon showing the approximate extent of a historical lake in Google Earth. We thought it would be worth discussing how to do this and some of the things to look out for.

The basic concept is as simple as drawing a polygon, making it a blue filled polygon (Style, Color tab) and setting its altitude to the desired water level (on the Altitude tab, set to ‘Absolute’ and give an altitude above sea level). For even better results try setting the opacity of the fill to 80%.

One issue that is not easily resolved is the fact that Google Earth does not have very high resolution terrain data and it is often particularly inaccurate in areas with steep slopes, such as mountains or gorges, which are typically the very areas where one would want to simulate a lake. For flatter areas, although the altitude data is often more accurate, gentler slopes mean that for a given altitude error the waterline error will be greater.

Another issue is that Google Earth loads a reduced level of altitude detail as you zoom out, so viewing the results from a distance can be a problem.

For large lakes, the curvature of the earth starts to become a significant issue. This has more of an effect than you might expect. When you draw a polygon in Google Earth and set its altitude to an absolute figure, Google Earth draws each point on the polygon at that altitude, but the lines in between points are straight lines ignoring the curvature of the earth. This means that the centre of the line will be lower than the desired altitude – sometimes significantly so. To get an idea of how much an effect this has, we made the calculator below. For a line 25 km long, the centre of the line will be 12.3 m lower than it should be. A water level difference of 12 m is quite significant for a dam. For longer distances the altitude error grows significantly. At 50 km the error is nearly 50 m and at 100 km it is nearly 200m. If we tried to simulate Lake Kariba, which is around 250 km long, using a single rectangle, the altitude error could be as much as 1,200 m.

Length of segment: km
Altitude error at centre: 12.3 m

The effect is not limited to lines between points along the edges, but also applies to the shaded water surface. So, for a nearly circular polygon, the maximum error will be in the centre.

To deal with the above problem, the solution is to use polygons with lots of points fairly close together. If you have a long narrow lake, then just adding points all along the sides should be sufficient. If you have a large wide lake you may need to use multiple polygons.

To demonstrate the difference, we will look at a proposed dam on the Batoka Gorge which is along the border between Zambia and Zimbabwe. The proposal is to dam the Zambezi river about 25 km downstream from the Victoria Falls. There are multiple proposals for the final water level of the dam, but one proposal has the water rising almost to the foot of the hydroelectric power station at the Victoria Falls.

We have drawn two rectangles set at exactly the same altitude, one using a simple rectangle, and one using many points along the edges of the gorge. Below you can see the difference in simulated water level between the two polygons.

Purple: a simple rectangle results in a lower water level. Light blue: More points gives higher water levels, which is more accurate.

To see the polygons in Google Earth download this KML file.

What the whole lake might look like.

At the proposed dam site there is fresh imagery dated June 15th, 2016. This is another example of imagery that Google has added but not yet pushed into ‘historical imagery’. What looks like a new landing strip has been constructed on the Zambian side of the gorge.

The dam construction faces significant opposition from the local tourism industry and others, as the dam would disrupt the white water rafting as well as affecting the local wild wildlife, including some rare bird species that inhabit the george. Read more about it here.

About Timothy Whitehead

Timothy has been using Google Earth since 2004 when it was still called Keyhole before it was renamed Google Earth in 2005 and has been a huge fan ever since. He is a programmer working for Red Wing Aerobatx and lives in Cape Town, South Africa.

PLEASE NOTE: Google Earth Blog is no longer writing regular posts. As a result, we are not accepting new comments or questions about Google Earth. If you have a question, use the official Google Earth and Maps Forums or the Google Earth Community Forums.


  1. Can you give a bit more specifics on your actual method of creating the polygon please? You know how high you want the water to be, but without accurate elevation data on GE how do you go about tracing around the polygon (or do you even trace) to find points at that elevation?

    Has someone in past already created a “contour line draw-er” of some sort that you might give it a starting point and it would use terrain data to draw a contour line of equal altitude around that point?

    • Timothy Whitehead says:

      The polygons I created are set at a fixed altitude so the actual edges of the polygon are below the terrain and not visible. For this reason it is not important that they be accurate. However, as noted in the post, due to the curvature of the earth, they should ideally be drawn reasonably close to the shoreline.
      If you know where you want your shoreline to be, you can hold your mouse over that point and check the altitude in the status bar then set your polygon to that altitude.

    • Timothy Whitehead says:

      It would be possible to create a contour line draw-er using Google Maps’s Elevation API, but it would be difficult to do without exceeding the free usage limits.

PLEASE NOTE: Google Earth Blog is no longer writing regular posts. As a result, we are not accepting new comments or questions about Google Earth. If you have a question, use the official Google Earth and Maps Forums or the Google Earth Community Forums.