shp数据添加wkt字段并导出成csv,leaflet绘制使用
为了在Shapefile (.shp) 数据中添加一个WKT (Well-Known Text) 字段并将结果导出为CSV格式,以便用Leaflet绘制,你可以使用Python的fiona
和pyproj
库。以下是一个简单的代码示例:
import fiona
import csv
from shapely.wkt import dumps
from fiona.crs import from_epsg
# 设置输出CSV的头部
csv_headers = ['geometry', 'other_field1', 'other_field2']
# 输出CSV文件路径
output_csv_path = 'output.csv'
# 设置EPSG:4326作为输出坐标参考系统
output_crs = from_epsg(4326)
# 打开输入的shp文件
with fiona.open('input.shp', 'r') as shp:
# 打开输出的CSV文件
with open(output_csv_path, 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_headers)
writer.writeheader()
# 遍历每个要素
for feature in shp:
# 转换为WKT
wkt = dumps(shapely.geometry.shape(feature['geometry']), rounding_precision=6)
# 创建一个字典,包含WKT和其他字段
row_dict = {
'geometry': wkt,
'other_field1': feature['properties'].get('other_field1', ''),
'other_field2': feature['properties'].get('other_field2', '')
}
# 写入CSV
writer.writerow(row_dict)
# 现在你有了一个包含WKT的CSV文件,可以用Leaflet绘制。
确保你已经安装了fiona
、pyproj
和shapely
库。如果没有安装,可以使用pip安装:
pip install fiona pyproj shapely
请根据你的实际需求修改输入文件名input.shp
、输出文件名output.csv
和CSV头部字段。这段代码会将每个要素的几何转换为WKT,并且添加到CSV中,然后你就可以使用Leaflet来绘制了。
评论已关闭