Как скопировать в kml файл геометрию shp файла
Пытаюсь создать kml файл на основе shp файла. В shp файле есть 4 полигона и у каждого своя геометрия. Мне нужно, чтобы у kml файла в столбцах Name и description были те же значения, что и в столбце Class и Rate shp файла соответственно. Пытаюсь пройтись по shp файлу циклом. kml файл создается, но с неправильной геометрией и в программе Qgis не отображается
for classes, row in shp_file.iterrows():
for poly in row['geometry'].geoms:
poly_kml = kml.newpolygon(name=str(row['Class']),
description=int(row['Rate']))
poly_kml.outerboundaryis = [(pt[0], pt[1]) for pt in poly.exterior.coords]
Ответы (1 шт):
Автор решения: Дмитрий Емельянов
→ Ссылка
Понял в чем ошибка. Система координат в shp файле была не WGS84. А для того, чтобы корректно отражался kml файл, ему нужно передавать геометрию в WGS84.
Код переделал так:
import geopandas as gpd
import simplekml
shape_file = 'shape_file.shp'
gdf = gpd.read_file(shape_file)
gdf = gdf.to_crs(epsg=4326)
kml = simplekml.Kml()
for classes, row in gdf.iterrows():
for poly in row['geometry'].geoms:
poly_kml = kml.newpolygon(name=str(class_name),
description=int(row['Rate']),
outerboundaryis=[(pt[0], pt[1]) for pt in poly.exterior.coords])
kml.save('kml_file.kml')