首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型geojson到topojson

大型geojson到topojson
EN

Stack Overflow用户
提问于 2017-04-20 08:58:47
回答 2查看 506关注 0票数 0

我正在尝试将一个较大的geojson文件(383 MB)转换为topojson,以便与D3.js一起使用它。我在2016年mac图书专业版上运行以下命令:

代码语言:javascript
复制
geo2topo test.json > test.topojson

还有以下简化命令:

代码语言:javascript
复制
geo2topo test.json > test.topojson -q 10000

它们都会产生相同的错误:

buffer.js:503抛出新错误(‘toString()失败’);^ 错误:"toString ()“在Buffer.toString (buffer.js:503:11)位于JSON.parse () at ReadStream时失败。(/usr/local/lib/node_modules/topojson/node_modules/topojson-server/bin/geo2topo:107:46) at emitNone (events.js:91:20) at ReadStream.emit (events.js:188:7) at endReadableNT (_stream_readable.js:975:12) at _combinedTickCallback (tick.js/process/next_tick.js:80:11) at process._tickCallback (tick.js/process/next_tick.js:104:9)

我查看了各种线程,如this one,但没有找到任何解决方案。请注意,geojson本身是正确格式化的,可以在d3.js中加载,但由于其大小,无法在web应用程序中使用。

EN

回答 2

Stack Overflow用户

发布于 2017-04-20 09:42:34

没有意识到抛出的实际错误,我确实有一些建议:

也许你可以利用ndjson?就像ndjson-split 'd.features' < test.json > test.ndjson。这样,您就可以将文件分解成更小的部分,或者通过ndjson-filter消除不必要的特性。

票数 0
EN

Stack Overflow用户

发布于 2017-12-07 19:16:06

我昨天也遇到了同样的问题。具体来说,v8引擎不能读取大于256 v8的字符串。因为加载geojson的第一步是作为json读取和解析它,所以这是行不通的。

但是,一个好的灵魂将节点实现移植到python:

https://github.com/calvinmetcalf/topojson.py

因为python没有这个限制,所以您可以使用这段代码创建topojson,然后使用它做您想做的任何事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43514816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档