我可以将图像嵌入pykml生成的KML数据吗?

2024-06-13 11:17:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Web服务器,其中有一些用于KML点的图标

当前,每个KML点都会引用带有标记的图标和图像在Web服务器中的位置。因此,在Google Earth中查看数据时,这些点具有来自Web服务器的自定义图标

理想情况下,我希望导出KML数据,这样任何人都可以在Google Earth中查看它,而不必访问Web服务器

有没有办法使用pykml将图像嵌入到KML文件中


Tags: 文件数据标记图像服务器webgoogle情况
1条回答
网友
1楼 · 发布于 2024-06-13 11:17:58

如果希望共享KML文件中的自定义图像或图标,而不必将这些图像托管在可公开访问的web服务器上,则需要将KML和图像打包到KMZ文件中

您可以使用包含KML和引用图标的pykml(或simplekml)创建独立的KMZ文件

from zipfile import ZipFile
from pykml.factory import KML_ElementMaker as KML
from lxml import etree

kml = KML.Placemark(
   KML.name("Hello World!"),
   KML.Style(
       KML.IconStyle(
           KML.scale(1.0),
           KML.Icon(
                KML.href("marker.png")
           )
       )
   ),
   KML.Point(
     KML.coordinates("-64.5253,18.4607")
   )
)

# serialize KML to a string
kml = etree.tostring(kml, pretty_print=True, xml_declaration=True, encoding='UTF-8')

# create a ZipFile object
with ZipFile('IconStyle.kmz', 'w') as zipObj:
    zipObj.writestr('doc.kml', kml)   # Add doc.kml entry 
    zipObj.write('marker.png')        # Add icon to the zip

相关问题 更多 >