Разбор KML дочерних элементов с использованием django
Я пытаюсь разобрать файл kml с помощью django. Я использую модуль парсера pyKML. Я выполнил следующие шаги.
root = parser.fromstring(open('myfile.kml').read())
Содержание файла:
<document>
<Placemark>
<name>t1</name>
<Point><coordinates>v1</coordinates>
</Point>
</Placemark>
<Placemark>
<name>t2</name>
<Polygon>
<outerBoundaryIs>
<LinearRing><coordinates>v2</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polgon>
</Placemark>
</document>
Я могу получить имена, используя следующие:
name = []
for ele in root.Document.Placemark:
name.append(ele.name)
Но я не знаю, как получить значения координат из другой метки. Пожалуйста, помогите мне здесь.
1 ответ
Решение
Попробуй это:
for pm in root.Document.Placemark:
point = [p for p in pm.getchildren() if p.tag.endswith('Point')]
if point:
coords = point[0].coordinates.text
else:
poly = [p for p in pm.getchildren() if p.tag.endswith('Polygon')]
if poly:
coords = poly[0].outerBoundaryIs.LinearRing.coordinates.text
print pm.name, coords