我有一些座標存儲爲列表。我遍歷列表,我想在KML文件中寫入座標。所以我應該結束了類似下面:遍歷列表或元組?
<coordinates>-1.59277777778, 53.8271055556</coordinates>
<coordinates>-1.57945488999, 59.8149016457</coordinates>
<coordinates>-8.57262235411, 51.1289412359</coordinates>
我有問題是在列表中的第一項我的代碼,結果被重複三次:
<coordinates>-1.59277777778, 53.8271055556</coordinates>
<coordinates>-1.59277777778, 53.8271055556</coordinates>
<coordinates>-1.59277777778, 53.8271055556</coordinates>
我想我知道它爲什麼會發生,因爲腳本會看到.strip行並在列表中打印第一個項目3次。
這裏是我的代碼:
oneLat = ['53.8041778', '59.8149016457', '51.1289412359']
oneLong = ['1.5192528', '1.57945488999', '8.57262235411']
with open("file",'w') as f:
f.write('''<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>TracePlace</name>
<open>1</open>
<Style id="Photo">
<IconStyle>
<Icon>
<href>../pics/icon.jpg</href>
</Icon>
</IconStyle>
<LineStyle>
<width>0.75</width>
</LineStyle>
</Style>
<Folder>''')
coord_pairs = zip(map(float, oneLong), map(float, oneLat))
itemsInListOne = int(len(oneLat))
iterations = itemsInListOne
num = 0
while num < iterations:
num = num + 1
for coord in coord_pairs:
print (str(coord).strip('()'))
f.write("\t\t<coordinates>" + "-" + (str(coord).strip('()')) + "</coordinates>\n")
break
f.write('''
</Folder>
</Document>
</kml>''')
f.close()
我怎樣才能得到正確的「映射」座標寫入KML文件?通過「正確」的座標,我的意思是像我的第一個例子
感謝
看起來你遺漏了一些源代碼。第一個'f.write()'沒有任何結束引用。 –
剛剛添加了缺少的代碼。我在腳本的這一部分只有一個f.close()。迭代將相同的代碼塊寫入3次,這是我需要做的。一旦完成了3次迭代,我就關閉了文件。問題在於它正在從列表中寫入相同的項目。我需要它寫下列表中的下一個項目。謝謝。 – BubbleMonster