我仍然是python的新手,我正在尝试将列表上的位置(List2)导出到一个kml文件中,该文件将在谷歌地图上显示结果。我真的不知道我在做什么,atm所有我得到的都是一个语法错误周围的每个,",符号。有人能帮助我吗?
KMLFile = open("KML.txt", "w")
f.write("<KML_File>\n")
f.write("<Document>\n")
for line in List2:
f.write(" <Placemark>")
f.write(" <decription>" + str(row[0]) + "</description>")
f.write(" <Point>")
f.write(" <coordinates>" + str(row[2]) + str(row[1])"</coordinates>")
f.write(" </Point>")
f.write(" </Placemark>")
f.write("</Document>\n")
f.write("</kml>\n")
KMLFile = close()
发布于 2017-03-17 06:16:38
在一系列打印语句中对XML输出进行硬编码以创建KML文件很容易出错,而且很难维护。而是使用Python KML库,比如simplekml或pyKML来生成KML。simplekml API简化了KML的编写,并使用更干净、更容易理解的代码生成有效的KML。
import simplekml
# list2 = ...some assignment with list of point data elements
kml = simplekml.Kml()
for row in list2:
kml.newpoint(description=row[0],
coords=[(row[2], row[1])]) # lon, lat, optional height
kml.save("test.kml")
将此测试输入用于单点:
list2 = [ [ 'description', 51.500152, -0.126236 ] ] # description, lat, lon
KML输出如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document id="feat_1">
<Placemark id="feat_2">
<description>description</description>
<Point id="geom_0">
<coordinates>-0.126236,51.500152,0.0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
发布于 2017-03-17 05:31:26
在您的代码中,您还没有定义变量f
,它应该引用您想要写入的文件对象。你可以这样做
f = open("KML.txt", "w")
f.write("<KML_File>\n")
...
f.close()
或者更好:
with open("KML.txt", "w") as f:
f.write("<KML_File>\n")
...
这确保即使中间的某些代码失败,也始终关闭该文件。
要编写XML文件,您可能需要查看Python xml-package。
https://stackoverflow.com/questions/42844948
复制相似问题