KMZ requirements

What SolarLayout needs in your KMZ file — and how to make one in Google Earth.

A KMZ describes the boundary of your site. It's the only file you need to start a project. SolarLayout reads it, places solar modules and infrastructure inside the boundary, and produces a layout.

What you need

At minimum: one outer polygon drawn around your site. That's it. SolarLayout fills in everything else.

You can also include:

  • Multiple plots — if your site is split into separate parcels, draw one outer polygon per parcel. SolarLayout designs each as its own plot.
  • Exclusion zones — for areas inside a boundary that aren't usable (existing structures, internal roads, dry obstructions), draw a polygon inside the boundary polygon. SolarLayout treats any polygon that sits entirely inside another polygon as an exclusion for that plot.
  • Water bodies and canals — draw a polygon (for ponds/reservoirs) or a line (for canals/streams) inside the boundary, and name it with a water keyword (pond, lake, reservoir, canal, nala, etc.). SolarLayout will keep modules clear of it.
  • Transmission lines — draw a line inside the boundary and name it with a TL keyword (transmission line, HV, 132kV, overhead, etc.). SolarLayout buffers it as a no-build corridor.

We accept any KMZ that Google Earth Pro can save. Coordinates are interpreted as WGS84 (latitude −90 to 90, longitude −180 to 180 — the default for Google Earth).

SolarLayout uses geometry, not placemark names, to decide what's a boundary and what's an exclusion. The names matter only for the water and TL classification above. If you don't use those keywords the polygons still load fine — they're just treated as dry exclusions.

How to make one in Google Earth Pro

Open Google Earth Pro

Google Earth Pro is free for desktop — download here. The web version of Google Earth can't save KMZ files, so make sure you have the desktop app installed.

Draw your site boundary

Use the Add Polygon tool (toolbar, or Add → Polygon from the menu bar). Trace your site's outer edge.

Close the polygon at the same point where you started. An open ring (start and end points far apart) is the single most common reason a KMZ gets rejected — SolarLayout flags any boundary whose start-end gap is more than ~11 m.

Give the placemark a name your team will recognise (the site name or plot reference). The name itself isn't load-bearing for the parser, but it appears in the Inspector as the plot label.

(Optional) Add more plots

For multi-plot sites: draw additional outer polygons (not nested inside each other). SolarLayout designs each plot independently and in parallel — useful when you're comparing layout options across sub-areas.

(Optional) Add exclusion zones

For unusable areas inside a plot — existing structures, water, internal roads — draw polygons inside the boundary polygon. SolarLayout treats any polygon contained inside another as an exclusion for that plot.

For water and transmission-line features, name them with the relevant keyword (see the list under "What you need" above) so the engine applies the right buffer rules.

Save as KMZ

File → Save → Save Place As… and choose .kmz as the format.

Open the resulting file in SolarLayout via + New project on the Home screen. You're set.

Common issues

If SolarLayout rejects your KMZ, the desktop app shows you exactly which boundary failed which check. Here's what each message means and how to fix it.

No plot boundaries in this KMZ (EMPTY_KMZ)

We couldn't find any polygon shapes in your file. SolarLayout uses your polygon boundaries to place panel tables, so we can't proceed without them.

In Google Earth, draw the plot outline as a polygon (not a path or pin), save the place to a folder, then right-click the folder and choose Save Place As → KMZ.

A boundary has too few distinct corners (DEGENERATE_POLYGON)

One of your polygons has fewer than three unique corner points. We need at least three to define a real plot shape.

Open the boundary in Google Earth and add the missing corners so the polygon traces the actual plot outline.

A boundary has effectively no area (ZERO_AREA_BOUNDARY)

One of your polygons collapses to a line — its corners are roughly collinear, so it encloses no real plot area. We'd produce zero panel tables for that boundary, which is rarely what you want.

Check the polygon in Google Earth. Either delete it if it was accidental, or move its corners so it encloses the actual plot footprint.

Two boundaries overlap each other (OVERLAPPING_BOUNDARIES)

Two of your plot polygons share part of their area. SolarLayout treats each boundary as an independent plot, so any overlapping region would get panel tables placed twice — producing visibly duplicated tables in the output.

In Google Earth, edit one of the overlapping polygons so the two plots have a clean shared edge instead of overlapping area. If the two plots really are one piece of land, merge them into a single boundary.

This file isn't a valid KMZ (INVALID_KMZ)

Either the file isn't actually a KMZ archive, or the KML inside is corrupt. Re-export from Google Earth Pro via Save Place As… → .kmz rather than copying / renaming.

This message can also appear if a coordinate is outside the valid WGS84 range (−90 to 90 latitude, −180 to 180 longitude) — usually because your project was re-projected to a non-WGS84 system in another tool. Google Earth Pro writes WGS84 by default; re-exporting fixes it.

Ring not closed

You'll see this with a calculated gap in metres — "Ring is NOT CLOSED (gap ≈ X m)". Re-open the boundary in Google Earth, zoom in close to the start, and click the final vertex exactly on top of the first one to snap them.

When multiple issues are present, SolarLayout reports all of them in one go (we don't stop at the first failure). Fix them in any order and re-upload.

Need a starter file?

We publish a template KMZ with a labelled boundary and one exclusion zone. Download it, replace the geometry with your own site's, and you're set.

Once your KMZ is ready, head to Your first layout for the 10-minute walkthrough.

On this page