引言
最近在做GPS定位相关工作,分析终端的定位精度如何,从终端定位采集到很多点,但没有直观的效果。
之前了解谷歌地球可以加载kml格式的定位信息描述文件,遂尝试
过程
最快的还是使用python来完成工作,搜索到能够使用pyKML模块操作kml格式文件,没有找到合适的例子,其实我的要求很简单,把那一堆堆的经纬度生成到文件中,然后能够显示大概位置即可。通过尝试,使用了Folder对象,代码如下:
#! /usr/bin/env python
# -*- coding=utf-8 -*-
# @Author virqin.github.io
from lxml import etree #将KML节点输出为字符串
import xlrd #操作Excel
from pykml.factory import KML_ElementMaker as KML #使用factory模块
xlsfile='f:/log.xlsx'
#加载Excel
xlsbook = xlrd.open_workbook(xlsfile)
#打开Sheet1
location = xlsbook.sheet_by_name(u'Sheet1')
#取得第一和第二列全部的值
lon = location.col_values(0,0,location.nrows)
lat = location.col_values(1,0,location.nrows)
#简单判断文件中的经纬度个数是否一致
if len(lon) != len(lat):
print 'lon != lat nums'
#使用第一个点创建Folder
fold = KML.Folder(KML.Placemark(
KML.Point(KML.coordinates(str(lon[0]) +','+ str(lat[0]) +',0'))
)
)
#将剩余的点追加到Folder中
for i in range(1,len(lon)):
fold.append(KML.Placemark(
KML.Point(KML.coordinates(str(lon[i]) +','+ str(lat[i]) +',0')))
)
#使用etree将KML节点输出为字符串数据
content = etree.tostring(etree.ElementTree(fold),pretty_print=True)
#保存到文件,然后就可以在Google地球中打开了
with open('f:/gen.kml', 'w') as fp:
fp.write(content)
对于不了解的模块,最快的方式就是是看官方文档和例子。
生成的定位文件加载后效果如下:
![Uploading image_216913.png . . .]