问题描述
我从我公司收到了一个文件,它的坐标超过7.000。它们的排序方式很糟糕,我无法轻松访问所需的内容。例如:
他们按交叉点对坐标进行排序。这意味着在该国家/地区中的每一行,交叉点都在文件中彼此堆叠。没有其他指示(因为该点的名称是交叉点)。
我想要实现的是一种通过轨迹线然后交叉点对其进行重组的方法。我目前正在手动进行此操作,但这是一项无聊的工作。
我尝试拖放,但一次似乎有点可笑。
欢迎任何想法
令人惊讶:-3票,没有人投票告诉我为什么?
解决方法
如果您愿意尝试进行一些编码,则可以编写一个简单的脚本来解析您的KML / KMZ文件,以所需的方式对地标进行排序,然后完全按照需要输出新的KML或KMZ文件。
python pykml模块是最简单的入门方法之一,这里是tutorial。
在stackoverflow上发布了一些使用pykml的示例。您可以在开始时将pykml问题发布到stackoverflow中。只需在问题中添加“ pykml”标签即可。
这是一个简单的示例,用于使用doc.kml文件解析KMZ,该文件由<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)
您可以同样地将每个地标添加到集合(列表或字典对象)中,然后对其进行排序。