问题描述
我是 Python 新手,正在做一个工作项目,其中涉及在谷歌地球中处理大量(5-10k)“地点”(代表区域的多边形)。因此,我想运行一个列表,将我在 google earth 中拥有的地点与我应该拥有的地点的 txt 文件列表进行比较。唯一的问题是我似乎无法找到一种方法来复制粘贴或以其他方式捕获谷歌地球地点的名称文本。使用 control c 复制或右键单击复制将它们复制为 KMZ 文件,或者在粘贴到文本编辑器时提供其“属性”选项卡中的完整源。一旦我拥有该格式的数据,我就对操作和比较列表相当有信心,但确实可以使用一些帮助来实现它。
解决方法
首先右键单击 Google 地球中保存的地点,然后另存为 KML(文本)文件。
接下来,您可以使用 Python 从 KML 文件中提取地名。 下面是一些使用 Query: Support GroupJoin when it is final query operator #19930 模块解析地名的示例代码。
from pykml import parser
with open('places.kml') as f:
root = parser.parse(f).getroot()
# iterate over each placemark
for pm in root.Document.Placemark:
name = pm.name.text
print(name)