Я пытаюсь использовать simplekml, чтобы поместить кучу фотографий с геотегами в файл KML ( ну, на самом деле файл KMZ) для просмотра в Google Earth. У меня есть места для отображения, однако, когда я пытаюсь поместить изображение в описание, поэтому, когда я нажимаю на места, появляется изображение, оно не работает. Есть просто пустое изображение. Я пытаюсь сделать это с помощью показанной команды addfile() здесь. Мой код выглядит так:
import os, simplekml
path = r'C:\Users\as\Desktop\testpics'
kml = simplekml.Kml()
for (dirpath, dirnames, filenames) in os.walk(path):
for filename in filenames:
fullpath = os.path.join(dirpath, filename)
try:
Lat, Long, Alt = GetLatLong(fullpath) #Didn't include this function, but it appears to work
except:
Lat, Long, Alt = (None, None, None)
if Lat: #Only adds to kml if it has Lat value.
x, y = (FormatLatLong(Lat), FormatLatLong(Long)) #puts into decimal coords
point = kml.newpoint(name = filename , coords = [(y,x)])
picpath = kml.addfile(fullpath)
point.description = '<img src="' + picpath +'" alt="picture" width="400" height="300" align="left" />'
kml.savekmz("kmltest2.kmz", format = False)
Как видите, я в значительной степени вырезал и вставил инструкции по использованию addfile из инструкций на странице выше. Кажется, что в строке point.description что-то идет не так.
Картинки добавляются в архив kmz, но не отображаются в пузырьках местоположения. Я подумал, что это может быть из-за того, что я делаю это в Windows 7, а косая черта обратная, но я попытался вручную изменить files\image.jpg на files/image.jpg, и это не помогло. Созданный файл KMZ doc.kml выглядит следующим образом:
<kml xmlns="http://www.opengis.net/kml/2.2"xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document id="feat_1">
<Placemark id="feat_2">
<name>DSC00001.JPG</name>
<description><img src="files/DSC00001.JPG" alt="picture" width="400" height="300" align="left" /></description>
<Point id="geom_0"><coordinates>18.9431816667,9.44355222222,0.0</coordinates>
</Point></Document></kml>
(Я удалил все пункты, кроме одного) Большое спасибо, Алекс.