1. 为什么你需要Geojson转Shapefile/KML工具?
作为一个经常处理地理数据的GISer,我太懂格式转换的痛点了。Geojson虽然轻便灵活,但在ArcGIS等专业软件里经常水土不服;Shapefile兼容性强却结构臃肿;KML则是Google Earth的"官方语言"。上周我处理某环保项目时,就遇到了这样的场景:团队用Leaflet采集的Geojson数据,需要导入QGIS分析后再用Google Earth展示——这意味着要在三种格式间反复横跳。
传统解决方案要么依赖QGIS/ArcGIS桌面软件(安装包动不动几个G),要么用Python脚本(对非程序员不友好)。直到我发现了一批零安装、免注册的在线工具,才真正体会到什么叫"真香"。下面这些实测可用的工具,都是我熬夜踩坑筛选出来的,特别适合以下人群:
- 需要快速验证数据完整性的现场调查员
- 临时需要跨平台协作的学生党
- 不想折腾开发环境的编程小白
2. 实测5款免费用到爽的转换神器
2.1 Quickmaptools:无广告的极简主义者
这个加拿大团队开发的工具是我的首选,界面干净得像北欧设计:
- 拖拽上传Geojson文件(最大支持10MB)
- 自动识别坐标系(连小众的EPSG:3414都能识别)
- 点击"Convert to Shapefile"秒出结果
实测彩蛋:连续转换20次都没触发限制,下载的ZIP包包含完整的.shp/.shx/.dbf三件套。不过要注意它生成的KML默认用十六进制颜色码,在Google Earth里需要手动调整样式。
2.2 MyGeodata Converter:大文件救星
当遇到50MB+的Geojson时,大部分工具都会崩溃。这个捷克网站却稳如老狗:
- 采用分块上传技术(类似断点续传)
- 支持批量转换(一次传10个文件)
- 提供WGS84/Web墨卡托自动转换
我测试过278MB的河流数据,虽然转换耗时6分钟,但结果完全保留了几何属性。免费账户每天限转5次,对普通用户完全够用。
2.3 Ogre:程序员的最爱
如果你需要API接入工作流,这个开源工具堪称瑞士军刀:
curl -X POST -F 'upload=@data.geojson' https://ogre.adc4gis.com/convert -o output.zip支持输出GeoPackage这种现代格式,还能指定坐标系(如?targetEPSG=32651)。我在自动化脚本里用它处理过3000+次转换,从没被限流过。
3. 避坑指南:那些年我踩过的雷
3.1 坐标系丢失的幽灵事件
有些工具会悄悄把CRS信息吞掉(说的就是你,Geojson.io)。有次我把转换后的Shapefile导入ArcMap,所有点位都漂移到非洲附近——原来是工具默认转成了WGS84。现在我的检查清单必含:
- 用文本编辑器查看.prj文件是否存在
- 在QGIS里验证图层CRS
- 复杂图形特别检查多面体完整性
3.2 属性表大屠杀
某次转换后,我的500个字段被砍到只剩10个。后来发现是工具用Shapefile的DBF格式限制(字段名不能超10字符)。现在我会:
- 提前用ogrinfo检查字段数
- 对超长字段名预先处理
- 优先选支持GeoPackage输出的工具
4. 高阶技巧:让转换效率翻倍
4.1 浏览器控制台大法
在Chrome开发者工具里粘贴这段代码,能实现自动批量下载(适合需要处理上百个文件时):
document.querySelectorAll('a.download-btn').forEach((el,i) => { setTimeout(() => el.click(), i*3000) })4.2 精度控制玄学
Google Earth对KML精度有隐藏要求,我总结出最佳实践:
- 经纬度保留6位小数(0.000001°≈11cm)
- 高度值用整型避免科学计数法
- 多边形顶点不超过5000个(否则会卡顿)
最近帮某地质队处理无人机数据时,先用Turf.js简化几何图形,再转换KML,文件体积从87MB降到4MB,加载速度提升20倍。