如何在Python中将KML转换为字符串?

1 投票
3 回答
3462 浏览
提问于 2025-04-17 04:37

我想下载一个KML文件,并在Python中把里面的某个元素打印出来,显示为字符串。

有没有人能给我一个具体的例子,教我怎么做?

谢谢!

3 个回答

0

谷歌的新库pyKML非常适合这个用途。比如,你可以查看一下pyKML的示例

这里有一个非常简单的例子,来自http://packages.python.org/pykml/tutorial.html

import urllib2
from pykml import parser

url = 'http://code.google.com/apis/kml/documentation/KML_Samples.kml'
fileobject = urllib2.urlopen(url)
root = parser.parse(fileobject).getroot()
print root.Document.name
0

你可以用urllib这个库在Python中下载KML文件。要读取KML文件,你可以使用一个解析器(可以搜索一下“kml python parser”)。

1

下载和解析的部分我就不说了,下面是我如何从KML文件中获取每个标记的描述和坐标。

namespace = {'ns' : 'http://www.opengis.net/kml/2.2'}
placemarks = doc.xpath('//ns:Placemark', namespaces=namespace)

for placemark in placemarks :
    for description in placemark.xpath('.//ns:description', namespaces=namespace):
        descriptionText = description.text.strip()

    for coords in placemark.xpath('.//ns:coordinates', namespaces=namespace):
        coordinates = coords.text.strip()

    # Here you have the description and coordinates

关于描述和坐标的循环部分,可能可以改写得更好,但我还没找到具体的方法。

撰写回答