加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在pykml中读取带有多个地标的kml文件

发布时间:2020-12-20 12:32:48 所属栏目:Python 来源:网络整理
导读:在 pykml中,我可以使用以下代码读取文件中的第一个地标: with open(filename) as f: pm = parser.parse(f).getroot().Document.Folder print "got :" print pm.Placemark.LineString.coordinates 如何在同一个文件中读取多个地标到python? 解决方法 编辑:
在 pykml中,我可以使用以下代码读取文件中的第一个地标:

with open(filename) as f:
     pm = parser.parse(f).getroot().Document.Folder
     print "got :"
     print pm.Placemark.LineString.coordinates

如何在同一个文件中读取多个地标到python?

解决方法

编辑:一个更简单的解决方案,假设所有地标都在一个文件夹中:

from pykml import parser

with open(filename) as f:
  folder = parser.parse(f).getroot().Document.Folder

for pm in folder.Placemark:
  print(pm.name)

您还可以使用基础xml库lxml的功能来搜索地标元素.

from pykml import parser
from pykml.factory import nsmap

namespace = {"ns": nsmap[None]}

with open(filename) as f:
  root = parser.parse(f).getroot()
  pms = root.findall(".//ns:Placemark",namespaces=namespace)

  for pm in pms:
    print(pm.name)

如果您专门搜索具有Linestring子项的地标,您还可以使用xpath进行更复杂的搜索.

pms = root.xpath(".//ns:Placemark[.//ns:LineString]",namespaces=namespace)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读