gpt4 book ai didi

python - 使用 pyKML 检查和解析 KML

转载 作者:行者123 更新时间:2023-12-03 13:55:04 26 4
gpt4 key购买 nike

与此类似:Extract Coordinates from KML BatchGeo File with Python

但是我想知道如何检查数据对象,以及如何迭代它,并解析所有Placemark获取 coordinates .

下面是KML的样子,还有多个<Placemark>标签。

示例 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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/kml/2.2 http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd http://www.google.com/kml/ext/2.2 http://code.google.com/apis/kml/schema/kml22gx.xsd">
<Document id="...">
<name>...</name>
<Snippet></Snippet>
<Folder id="...">
<name>...</name>
<Snippet></Snippet>
<Placemark id="...">
<name>....</name>
<Snippet></Snippet>
<description>...</description>
<styleUrl>....</styleUrl>
<Point>
<altitudeMode>...</altitudeMode>
<coordinates> 103.xxx,1.xxx,0</coordinates>
</Point>
</Placemark>
<Placemark id="...">
...
</Placemark>
</Folder>
<Style id="...">
<IconStyle>
<Icon><href>...</href></Icon>
<scale>0.250000</scale>
</IconStyle>
<LabelStyle>
<color>00000000</color>
<scale>0.000000</scale>
</LabelStyle>
<PolyStyle>
<color>ff000000</color>
<outline>0</outline>
</PolyStyle>
</Style>
</Document>
</kml>

这就是我所拥有的, 提取.py :

from pykml import parser
from os import path

kml_file = path.join('list.kml')

with open(kml_file) as f:
doc = parser.parse(f).getroot()

print doc.Document.Folder.Placemark.Point.coordinates

这将打印第一个 coordinates .

一般python问题:
我如何检查 doc ,找出它的类型,并打印出它包含的值?

任务问题:
我如何遍历所有 Placemark并得到它的 coordinates ?

已尝试以下但未打印任何内容。

for e in doc.Document.Folder.iter('Placemark'):
print e

最佳答案

我找到了答案。

解析 Placemark ,这是代码

for e in doc.Document.Folder.Placemark:
coor = e.Point.coordinates.text.split(',')

要查找对象类型,请使用 type(object) .

不知道为什么 findall()iter()虽然没有用:
doc.Document.Folder.findall('Placemark')

for e in doc.Document.Folder.iter('Placemark'):

两者都空着返回。

更新 : 缺少 findall 的命名空间上类。
doc.findall('.//{http://www.opengis.net/kml/2.2}Placemark')

关于python - 使用 pyKML 检查和解析 KML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43199262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com