shp数据添加wkt字段并导出成csv,leaflet绘制使用

为了在Shapefile (.shp) 数据中添加一个WKT (Well-Known Text) 字段并将结果导出为CSV格式,以便用Leaflet绘制,你可以使用Python的fionapyproj库。以下是一个简单的代码示例:




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绘制。

确保你已经安装了fionapyprojshapely库。如果没有安装,可以使用pip安装:




pip install fiona pyproj shapely

请根据你的实际需求修改输入文件名input.shp、输出文件名output.csv和CSV头部字段。这段代码会将每个要素的几何转换为WKT,并且添加到CSV中,然后你就可以使用Leaflet来绘制了。

none
最后修改于:2024年08月29日 09:15

评论已关闭

推荐阅读

Vue中使用mind-map实现在线思维导图
2024年08月04日
VUE
Web前端最全Vue实现免密登录跳转的方式_vue怎么样不登录返回首页,最强技术实现
2024年08月04日
VUE
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)
2024年08月04日
VUE
Vue-颜色选择器实现方案——>Vue-Color( 实战*1+ Demo*7)
2024年08月04日
VUE
Vue项目卡顿慢加载?这些优化技巧告诉你!_vue数据多渲染卡顿
2024年08月04日
VUE
vue中的keep-alive详解与应用场景
2024年08月04日
VUE
Vue、React实现excel导出功能(三种实现方式保姆级讲解)
2024年08月04日
vue-office/docx插件实现docx文件预览
2024年08月04日
VUE
java调用js文件的两种方法(支持V8引擎)
2024年08月04日
JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js
2024年08月04日
两周从爬虫小白变大神 _yjs_js_security_passport
2024年08月04日
JS笔记(对象、函数、数组)
2024年08月04日
Markdown.js:强大的纯JavaScript Markdown解析器
2024年08月04日
Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。
2024年08月04日
vue 父组件怎么获取子组件里面的data数据
2024年08月04日
VUE
个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)
2024年08月04日
el-table 表格封装并改造实现单元格可编辑
2024年08月04日
none
nodejs环境下创建vue项目、SSH密钥登陆!!!
2024年08月04日
vue+quill+element-ui实现视频、图片上传及缩放保姆级教程,轻松使用富文本
2024年08月04日
【three.js】22. Imported Models导入模型
2024年08月04日