KML is an XML geospatial data format and an OGC standard that deserves a canonical python implementation.
Fastkml is a library to read, write and manipulate KML files. It aims to keep it simple and fast (using lxml if available). Fast refers to the time you spend to write and read KML files as well as the time you spend to get acquainted to the library or to create KML objects. It aims to provide all of the functionality that KML clients such as OpenLayers, Google Maps, and Google Earth provides.
Geometries are handled as pygeoif objects.
Fastkml is continually tested
Is Maintained and documented:
You can find all of the documentation for FastKML at fastkml.readthedocs.org. If you find something that is missing, please submit a pull request on GitHub with the improvement.
Have a look at Aryan Guptas The Definite Guide to FastKML.
Keytree provides a less comprehensive, but more flexible approach.
You can install the package with pip install fastkml
which will pull in all requirements.
lxml:
pip install --pre "fastkml[lxml]"
Tesselate, Extrude and Altitude Mode are assigned to a Geometry or Geometry collection (MultiGeometry). You cannot assign different values of Tesselate, Extrude or Altitude Mode on parts of a MultiGeometry.
Currently, the only major feature missing for the full Google Earth experience is the gx extension. Please submit a PR with the features you'd like to see implemented.