A pure-Python library for live-streaming KML content to Google Earth Pro.
Project description
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
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pylivekml-1.1.1.tar.gz.
File metadata
- Download URL: pylivekml-1.1.1.tar.gz
- Upload date:
- Size: 80.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dbce191e605cd257b29e0691fb3d402d0e657fde34f59a48e17e2af8c4aed93
|
|
| MD5 |
9c3a1d2053a9c03ec26980ee038c3525
|
|
| BLAKE2b-256 |
8a824e52e242c630bc99799a53c0e49011bb107973520f449427aa5a3342418e
|
File details
Details for the file pylivekml-1.1.1-py3-none-any.whl.
File metadata
- Download URL: pylivekml-1.1.1-py3-none-any.whl
- Upload date:
- Size: 144.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e23dfdb5060fff3c0a3a86af0402eba89901c6e95886dbe7d6266097e6f5459
|
|
| MD5 |
551231eaed4d19410ebb3aad8d49a4a0
|
|
| BLAKE2b-256 |
b5e90e1f828fdec768d6fb8a92a6d0add2c192df5bad3a0aa8507781bced222b
|