最近老板给我提了一个需求
希望把经销商的经纬度都导入谷歌地图里面,实现可视化,查看更加方便
- 后来发现GoogleEarth支持kml导入
- 但是手里只有Excle的文档
- 那么只要解决怎么把EXCLE转换成KML就可以了
- 但是市面上的软件都是要收费的
- 心里想着自己做一个 程序好了
- 程序如下
#! /usr/bin/env python# -*- coding=utf-8 -*-# @Author virqin.github.ioimport lxml.htmlimport xlrd #操作Excelfrom pykml.factory import KML_ElementMaker as KML #使用factory模块import pykmlxlsfile='e:/kml.xlsx' #导入文件的地址 格式为XLSX 这里要修改下etree = lxml.html.etree#加载Excelxlsbook = xlrd.open_workbook(xlsfile)#打开Sheet1location = xlsbook.sheet_by_name(u'sheet1') #取EXCLE的sheet名 这里要修改下#取得前三列的值 EXCLE的位置一定跟这里一致name = location.col_values(0,0,location.nrows) #名字lon = location.col_values(1,0,location.nrows) #经度lat = location.col_values(2,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')), KML.name(str(name[0])) ))#将剩余的点追加到Folder中for i in range(1,len(lon)): fold.append(KML.Placemark( KML.Point(KML.coordinates(str(lon[i]) +','+ str(lat[i]) +',0')),KML.name(str(name[i]))) )#使用etree将KML节点输出为字符串数据cOntent= etree.tostring(etree.ElementTree(fold),pretty_print=True)#保存到文件,然后就可以在Google地球中打开了with open('e:/gen.kml', 'wb') as fp: #这里是生成的文件地址 要修改 fp.write(content)
- 生成以后就可以导入 Google地球了
- 有什么不懂的 可以问我 谢谢!
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com