如何使用Python将GeoJSON数据转换为KML格式
发布时间:2024-01-08 22:03:32
要将GeoJSON数据转换为KML格式,可以使用Python中的geojson和fastkml库。以下是一个使用示例:
首先,确保安装了所需的库。可以使用以下命令安装:
pip install geojson pip install fastkml
接下来,创建一个Python脚本,导入所需的库:
import geojson from fastkml import kml from shapely.geometry import shape
然后,加载GeoJSON文件:
with open('input.geojson') as f:
geojson_data = geojson.load(f)
接下来,将GeoJSON数据转换为KML格式:
kml_doc = kml.KML()
placemark = kml.Placemark()
polygon = shape(geojson_data['geometry'])
geom = polygon.__geo_interface__
geom_type = geom['type']
coords = geom['coordinates']
if geom_type == 'Polygon':
boundary = kml.LinearRing()
for lon, lat in coords[0]:
boundary.add_coordinates([(lon, lat)])
placemark.geometry = kml.Polygon(boundary)
elif geom_type == 'MultiPolygon':
boundary = kml.LinearRing()
for polygon_coords in coords:
for lon, lat in polygon_coords[0]:
boundary.add_coordinates([(lon, lat)])
placemark.geometry = kml.MultiGeometry(kml.Polygon(boundary))
elif geom_type == 'Point':
point = kml.Point(coords[::-1])
placemark.geometry = point
folder = kml.Folder()
folder.append(placemark)
kml_doc.append(folder)
kml_str = kml_doc.to_string(prettyprint=True)
最后,将KML数据写入文件:
with open('output.kml', 'w') as f:
f.write(kml_str)
请确保将input.geojson替换为实际的GeoJSON文件路径,并将output.kml替换为您想要保存KML数据的文件路径。
使用这个示例代码,您可以将GeoJSON数据转换为KML格式。根据GeoJSON数据中的几何类型(Polygon、MultiPolygon、Point等),代码将创建相应的KML几何对象(Polygon、MultiGeometry、Point)并将其添加到Placemark中。最后,创建一个KML文件并将其保存到指定的文件中。
有了这个例子,您应该能够使用Python将GeoJSON数据转换为KML格式。
