最近进行一个小工作是在google earth中选择一系列点坐标,然后保存为csv文件或txt文件。我在Google Earth Pro在左上方的“文件”–>“保存”–>“将位置另存为”选项。
弹出的窗口中只有“kmz”与“kml”两种格式,这两种格式均是google earth内置的格式(KMZ文件是KML的压缩文件),并不容易使用。因此,我们希望有csv表格或txt文档,提取其中的经纬度信息,方便查看与使用。
在chatgpt中询问,得到下述结果,经测试已通过。
分为下述两个步骤:
1)使用Python中的库(如xml.etree.ElementTree)来解析KML文件并提取经纬度信息。以下是一个示例代码片段,演示如何解析KML文件并提取经纬度信息:
import xml.etree.ElementTree as ET
def extract_coordinates(kml_file):
tree = ET.parse(kml_file)
root = tree.getroot()
coordinates = []
for placemark in root.iter('{http://www.opengis.net/kml/2.2}Placemark'):
for point in placemark.iter('{http://www.opengis.net/kml/2.2}Point'):
for coordinates_elem in point.iter('{http://www.opengis.net/kml/2.2}coordinates'):
coordinates_str = coordinates_elem.text.strip()
longitude, latitude, _ = coordinates_str.split(',')
coordinates.append((latitude, longitude))
return coordinates
kml_file = 'path/to/your/kml/file.kml' #你的文件路径
coordinates = extract_coordinates(kml_file)
2)使用Python中的CSV库(如csv)将经纬度信息写入CSV文件。以下是一个示例代码片段,演示如何将经纬度信息写入CSV文件:
import csv
def write_coordinates_to_csv(coordinates, csv_file):
with open(csv_file, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Latitude', 'Longitude']) # 写入标题行
for coordinate in coordinates:
writer.writerow(coordinate)
csv_file = 'path/to/your/csv/file.csv' # 写出CSV文件路径
write_coordinates_to_csv(coordinates, csv_file)
上述两部分就完成了KML文件到CSV文件的转换工作。