无法将 shapefile 转换为 geojson
Posted
技术标签:
【中文标题】无法将 shapefile 转换为 geojson【英文标题】:Can't convert shapefiles to geojson 【发布时间】:2020-09-06 16:52:10 【问题描述】:我需要 js 代码来将 shapefile 文件转换为 geojson,反之亦然,但我很难找到有效的工具。
我找到了Calvin Metcalf's repository,它应该允许我将 shapefile 文件转换为 geojson,但我无法运行它。其实我是个js新手,希望我犯些小错误。
为了测试它,我有:
-
将属于 shapefile 的文件放在主文件夹中;
在同一文件夹中从终端运行
npm install shpjs --save
命令(如存储库的自述文件中所示);
创建 test.js 文件如下:
var shp = require('shpjs');
shp("shapefile").then(function(geojson)
console.log(geojson);
).catch( (reason) =>
console.log('Handle rejected promise ('+reason+') here.');
);
-
从终端运行
node test.js
命令。
这是输出:Handle rejected promise (Error: connect ECONNREFUSED 127.0.0.1:80) here.
所以,有问题。
我试图寻找这个错误信息的含义,但我不明白如何处理它。
我犯了一些错误吗? 如果没有,是否有任何其他 js 工具可以让我执行这些文件的转换,可能是双向的?
编辑
Calvin Metcalf 本人在issue #128 of the repo 中回答了这个问题,但我仍然遇到了一些麻烦,因为我要转换的文件实际上是巨大的。所以,最后一个问题仍然存在。
是否有任何其他 js 工具(或 js 友好)可以让我执行从 shapefile 到 geojson 的转换,反之亦然?
【问题讨论】:
【参考方案1】:我建议使用 ogr2ogr 库,它可以将包含 .dbf .shp .shx 的文件夹转换为适当的 geojson 对象。该库还为您提供了其他功能,例如 geojson 到 shp 或 shp 到 KML,但我只尝试了 shp 到 geojson 并且它有效: https://github.com/wavded/ogr2ogr
希望对你有帮助,祝你好运!
【讨论】:
以上是关于无法将 shapefile 转换为 geojson的主要内容,如果未能解决你的问题,请参考以下文章
平滑 D3.js/GeoJSON/TopoJSON/Shapefile 中的弧线/绘图点(沿途某处)
将 ESRI Shapefile 转换为每个区域的(纬度、经度)点