KML使用django解析子元素
KML parsing child elements using django
我正在尝试使用 django 解析 kml 文件。我正在使用 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)
但我不知道如何从不同的地标检索坐标值。
请帮帮我。
试试这个:
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
我正在尝试使用 django 解析 kml 文件。我正在使用 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)
但我不知道如何从不同的地标检索坐标值。 请帮帮我。
试试这个:
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