對於閱讀的.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'),
(' {}\n', 'postcode'),
(' {}\n', '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>'
你可以看看GDAL庫ogr2ogr。如果無法將csv轉換爲kml,則可以在將csv轉換爲shapefile之前(使用GIS等QuantumGIS或其他),然後將其轉換爲kml。 –
或者你可以試試這個工具:http://kmltools.nobletech.com/csv2kml –
我第一次tryed這個工具,但是現在我測試繞了幾次 – CTSchmidt