Getting started

KMZ requirements

What SolarLayout needs in your KMZ boundary file to produce a clean layout.

A KMZ is a zipped KML file. SolarLayout reads the KML inside and looks for specific geometry to map onto plant components.

Required geometry

The minimum viable KMZ is a single <Polygon> representing the site boundary. Everything else — plot subdivisions, ICR placement, exclusion zones — is optional but informs the layout.

Site boundary

One outer polygon. Latitude / longitude in WGS84 (EPSG:4326). Self-intersection is rejected at parse time. Holes inside the outer ring are interpreted as exclusion zones.

Plot subdivisions

Optional. Inner polygons named Plot 1, Plot 2, ... are picked up as distinct layout plots. SolarLayout fans out plot generation in parallel — see Generate flow overview for the runtime.

Naming conventions

Names matter. The parser maps placemark names onto roles:

Placemark name patternRole
BoundaryOuter site polygon (required)
Plot NPer-plot subdivision
ICRInverter Control Room footprint
Exclusion NInner exclusion polygon

Preparing a KMZ in Google Earth

  1. Open Google Earth Pro (desktop).
  2. Use the polygon tool to draw your boundary.
  3. Save the placemark with name Boundary.
  4. Optionally add Plot 1, Plot 2, ... for subdivided sites.
  5. File → Save → Save Place As… → choose .kmz.
# Sanity-check the KMZ from a shell — it's a zip archive.
unzip -l my-site.kmz
# Should list one .kml inside.

Troubleshooting

If SolarLayout rejects your KMZ with INVALID_GEOMETRY, your polygon likely self-intersects. Re-trace the boundary in Google Earth — overlap at the start/end point is the most common cause.

If you see MISSING_BOUNDARY, your placemark wasn't recognised as the outer boundary. Check the name — Boundary (capital B) is the canonical match; the parser also accepts boundary, Site Boundary, and Plot (as a fallback for single-polygon KMZs).

On this page