【问题标题】:KML parsing child elements using djangoKML 使用 django 解析子元素
【发布时间】:2015-07-10 20:36:16
【问题描述】:

我正在尝试使用 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)

但我不知道如何从不同的地标检索坐标值。 请在这里帮助我。

【问题讨论】:

    标签: python django parsing kml pykml


    【解决方案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
    

    【讨论】:

    • 该文档有许多“地标”标签,其中包含随机的“点”和“多边形”标签。
    • 我收到类似“需要开始标签,'
    • 这似乎是 kml 文档本身的错误。 kml 中是否有一些标签缺少左尖括号?
    • 有没有办法从文档中找到所有地标标签?
    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多