【发布时间】:2017-09-16 19:26:09
【问题描述】:
我正在尝试将相对较大的 geojson 文件 (383 MB) 转换为 topojson 以将其与 D3.js 一起使用。我在 mac book pro 2016 上运行以下命令:
geo2topo test.json > test.topojson
还有以下简化命令:
geo2topo test.json > test.topojson -q 10000
它们都产生相同的以下错误:
buffer.js:503 throw new Error('"toString()" failed'); ^
错误:“toString()”失败 在 Buffer.toString (buffer.js:503:11) 在 JSON.parse() 在读取流。 (/usr/local/lib/node_modules/topojson/node_modules/topojson-server/bin/geo2topo:107:46) 在 emitNone (events.js:91:20) 在 ReadStream.emit (events.js:188:7) 在 endReadableNT (_stream_readable.js:975:12) 在 _combinedTickCallback (内部/进程/next_tick.js:80:11) 在 process._tickCallback (internal/process/next_tick.js:104:9)
我查看了各种线程,例如this one,但没有找到任何解决方案。请注意,geojson 本身格式正确,可以在 d3.js 中加载,但由于其大小无法在 Web 应用程序中使用。
【问题讨论】:
-
我遇到了完全相同的问题。你找到解决办法了吗?
-
我也陷入了困境,我的 geojson 有 2gb 并且真的可以使用一些 topojson 魔法。 AFAIK,v8 一次读取不能超过 256mb(所以节点也不能,geo2topo 也不能)
标签: javascript d3.js geojson topojson