Pour la lecture des fichiers .csv, vous pouvez utiliser le module csv comme ceci:
reader = csv.reader(open("file.csv"))
for row in reader:
for value in row:
...
Vous pourriez avoir des ennuis lorsque votre fichier est UTF-8 codé, car csv
ne supporte pas. Mais il y a un wrapper qui s'occupera de cela. Bien sûr, vous pouvez simplement lire votre fichier ligne par ligne et le diviser par des virgules: values=line.split(',')
. Étant donné que le format kml n'est pas très compliqué, la partie la plus difficile de la création d'une représentation de vos données est de décider à quoi cela devrait ressembler. Un morceau très simple de code pour insérer les valeurs lues à partir du fichier csv pourrait ressembler à ceci:
# 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>'
Vous pouvez regarder dans ogr2ogr de la bibliothèque GDAL. S'il est impossible de convertir csv en kml, vous pouvez convertir csv en shapefile avant (en utilisant un SIG comme QuantumGIS ou autre) et ensuite le convertir en kml. –
Ou vous pouvez essayer cet outil: http://kmltools.nobletech.com/csv2kml –
j'ai essayé cet outil en premier, mais maintenant je tester autour de quelques fois de plus – CTSchmidt