加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 从CSV为Google Maps创建KML文件

发布时间:2020-12-20 11:24:46 所属栏目:Python 来源:网络整理
导读:我一直在研究有关问题的日子……我是KML的新手,我想用以下信息创建一个文件: EmailaddresspostcodecountrytelephonefaxinternetnameimagelicenseCall numberlatlng 保留csv文件.如果有工具我会很高兴.否则,如果我知道语法,我会手动编写它. 我正在使用mac,因
我一直在研究有关问题的日子……我是KML的新手,我想用以下信息创建一个文件:

Email
address
postcode
country
telephone
fax
internet
name
image
license
Call number
lat
lng

保留csv文件.如果有工具我会很高兴.否则,如果我知道语法,我会手动编写它.

我正在使用mac,因此Windows KML创建者不会受到质疑……我尝试了很多工具,但没有一个是我想要的.

我发现的最好的工具是http://batchgeo.com/de/,但是没有KML文件了.

[编辑]

有没有一种很好的方法在python脚本中解决这个问题?我已经有了.csv!

最好的问候柯蒂斯

解决方法

要读取.csv文件,可以像这样使用 csv模块:

reader = csv.reader(open("file.csv"))
for row in reader:
  for value in row:
    ...

当您的文件是UTF-8编码时,您可能会遇到麻烦,因为csv不支持该文件.但有一个wrapper将负责这一点.

当然,您也可以逐行读取文件并用逗号分隔:values = line.split(‘,’).

由于kml格式不是很复杂,创建数据表示的最艰难的部分是决定它应该是什么样子.插入从csv文件读取的值的一段非常简单的代码可能如下所示:

# read field labels from first line in file
header = reader.next()
# prepare static output
templates = [('  <Placemark>n   <name>{}</name>n','name'),('   <description>n    <![CDATA[n     <img src="{}"/>n','image'),('     {}n','address'),'postcode'),'country'),('     Tel: <span class="tel">{}</span>n','telephone'),('     Mail: <span class="mail">{}</span>n','Email'),('   </description>n   <Point>n    <coordinates>{},','lat'),('{}</coordinates>n   </Point>n  </Placemark>n','lng')]
# lookup function for field values. leading and trailing whitespace will be removed
value = lambda field,array: array[header.index(field)].lstrip().rstrip()

# start output
print '''<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
 <Document>'''
# insert values into xml
for row in reader:
    for t,f in templates:
        print t.format(value(f,row)),print ' </Document>n</kml>'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读