Google 地球 KMZ 重组
Posted
技术标签:
【中文标题】Google 地球 KMZ 重组【英文标题】:Google Earth KMZ reorganizing 【发布时间】:2020-08-11 20:28:04 【问题描述】:我从我的公司收到了一份包含超过 7000 个坐标的文件。它们的排序方式很糟糕,我无法轻松访问我需要的东西。例如:
-
我们有轨道线:L75
我们有一个交叉点:OW 34
我们有一个公里点:45
他们通过交叉点对坐标进行排序。这意味着对于该国的每一行,交叉点在文件中彼此堆叠。没有其他迹象(因为点的名称是交叉点)。
我想要实现的是一种通过轨道线然后交叉点重新组织它们的方法。我目前正在手动操作,但这是一项重复无聊的工作。
我试过拖放,但一次一个似乎有点可笑。
【问题讨论】:
【参考方案1】:如果您愿意尝试一些编码,您可以编写一个简单的脚本来解析您的 KML/KMZ 文件,对地标进行任何您想要的排序,然后完全按照您的需要输出一个新的 KML 或 KMZ 文件。
python pykml 模块是最简单的入门方法之一,这里是 tutorial。
在 *** 中发布了一些使用 pykml 的示例。您可以在开始时将 pykml 问题发布到 *** 中。只需在问题中添加“pykml”标签即可。
这是一个解析 KMZ 文件的示例,该文件的 doc.kml 条目由 <Document>
和一组子 <Placemark>
元素组成。代码打开 KMZ 文件并遍历地标,打印每个地标的名称字段及其点坐标。
from os import path
from pykml import parser
from zipfile import ZipFile
kml_file = "test.kmz"
kmz = ZipFile(kml_file, 'r')
with kmz.open('doc.kml', 'r') as f:
doc = parser.parse(f)
for pm in doc.getroot().Document.Placemark:
print(pm.name, pm.Point.coordinates)
您也可以将每个地标添加到集合(列表或字典对象)中,然后对其进行排序。
【讨论】:
好吧,我的编程技巧不太好。仅仅为此而学习一门全新的语言似乎有点矫枉过正。我目前正在使用 vscode 手动将文件编辑为不同的文件。以上是关于Google 地球 KMZ 重组的主要内容,如果未能解决你的问题,请参考以下文章
Google Earth中的地标文件kml与kmz有何区别?
将KMZ文件上传到我的Google地图中,并在地标描述中添加图像