Skip to main content

What is pyLiveKML?

pyLiveKML is an implementation of Google's Keyhole Markup Language (KML) that enables an (approximately) live feed of geospatial information into Google Earth Pro (GEP). GEP is updated on the fly using an implementation of the mechanism described in Google's documentation. KML tags are automatically created, updated and deleted as necessary.

pyLiveKML also provides a means of constructing static KML files from Python.

Several simple evaluation apps are included with the pyLiveKML source. These projects use Uvicorn and FastAPI to serve KML files to GEP, and to serve HTML etc files to provide a user interface via a browser.

Disclaimer

Google Earth (TM) and Google Maps (TM) are registered trademarks of Google Inc. pyLiveKML is not affiliated with Google.

Changes from version 0 to version 1

v1 is a major revision. Code relying upon pyLiveKML v0.0.x will need to be re-written to incorporate the changes, particularly around imports.

How does pyLiveKML work?

See how-it-works for a reasonably detailed explanation.

Has the entire KML specification been implemented?

From version 1.0.0, all of the KML classes described in Google's KML specification have been implemented. If anything is missing, please let me know.

GIS and OS Compatibility

pyLiveKML has been tested:

  • Serving to Google Earth Pro on Microsoft Windows 10 with HTTP and HTTPS

  • Serving from Python 3.10 on Windows 10

  • Serving from Python 3.10 on Ubuntu 22.04

It is possible, even probable, that pyLiveKML will (at least partially) work with other KML-compliant GIS's and/or other operating systems, and/or later versions of Python, but no such alternatives have been researched or tested by the author.

Evaluation Applications

If GEP is started without any arguments, you will need to add a new NetworkLink object to "Temporary Places", with the link address set to the URI of the loader.kml file, e.g. http(s)://addr:port/loader.kml. GEP (as of at least v7.3.6) will not load loader.kml from the URI using File->Open. However, if you start GEP with the URI of loader.kml as an argument, then it will load loader.kml on startup.

Documentation

The code is reasonably thoroughly documented via docstrings.

Licence

Gnu Affero GPL v3

Contributions

While I've done a fair bit of testing, I have no doubt that there are bugs. If you encounter something that needs to be fixed, please let me know via a Github Issue, Discussion topic and/or PR.

Metadata

Release files for pyLiveKML 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyLiveKML 1.1.1
File Size Uploaded
pylivekml-1.1.1.tar.gz 80.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyLiveKML 1.1.1
File Interpreter ABI Platform
pylivekml-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 225.4 kB

Release files / pylivekml-1.1.1.tar.gz

Download URL pylivekml-1.1.1.tar.gz
Size 80.5 kB
Tags Source
SHA-256 checksum
How to use checksums
8dbce191e605cd257b29e0691fb3d402d0e657fde34f59a48e17e2af8c4aed93
BLAKE2b-256 checksum
How to use checksums
8a824e52e242c630bc99799a53c0e49011bb107973520f449427aa5a3342418e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / pylivekml-1.1.1-py3-none-any.whl

Download URL pylivekml-1.1.1-py3-none-any.whl
Size 144.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e23dfdb5060fff3c0a3a86af0402eba89901c6e95886dbe7d6266097e6f5459
BLAKE2b-256 checksum
How to use checksums
b5e90e1f828fdec768d6fb8a92a6d0add2c192df5bad3a0aa8507781bced222b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.4

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page