我有一个KML服务器,带有一些用于KML点的图标。
目前,每个KML点都将图标和标签引用到KML服务器中图像的位置。因此,在查看Google中的数据时,这些点具有来自when服务器的自定义图标。
理想情况下,我希望导出KML数据,这样任何人都可以在Google中查看它,而不需要访问view服务器。
有没有一种方法使用pykml将图像嵌入到KML文件中?
发布于 2021-08-27 18:06:16
如果希望在KML文件中共享自定义图像或图标,而不必将这些图像保存在可公开访问的web服务器上,则需要将KML和图像打包到KMZ文件中。
您可以使用皮克姆 (或单纯性)创建一个独立的KMZ文件,该文件包括KML和引用的图标。
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 ziphttps://stackoverflow.com/questions/68953977
复制相似问题