我正在嘗試創建美國學區的TopoJSON文件。我已經奠定了我的工作流程如下:如何避免TopoJSON內存錯誤
- 下載並解壓縮從人口普查局TIGER個人形文件(24 ESD,19 SSD,56美元)
- 這些批處理文件99與ogr2ogr 合併在一起
- 轉換合併shape文件到GeoJSON的
- 轉換以GeoJSON到TopoJSON(理想情況下我想補充的州邊界的文件在這裏也一樣)
第4步是什麼原因造成了我的問題,我現在用的是以下批處理腳本:
call topojson^
-o SDs11_Topo.json^
-p NAME^
--simplify-proportion .1^
--id-property GEOID^
--^
ESDs11.json^
SSDs11.json^
USDs11.json
pause
但我看到下面的致命內存錯誤:
FATAL ERROR: CALL_AND_RETRY_0 Allocation failed - process out of memory
這給我留下的一點就如何繼續虧損,我將不勝感激,如果有人可以上一個更好的建議工作流程或轉換爲topojson時更好地管理內存的方法。謝謝。
這些輸入的GeoJSON文件有多大?如果它們接近〜1GB,則必須使用shapefile輸入而不是GeoJSON,因爲shapefile更加緊湊並且可以流式傳輸。 (Node.js的最大緩衝區大小爲1GB,這使得解析JSON文件時比較困難)。您還可以使用'node --max-old-space-size = XXXX bin/topojson',其中XXXX是大量的兆字節。 – mbostock 2013-05-03 04:55:58
謝謝,使用shapefile作爲輸入似乎已經解決了這個問題(json文件是365,39和18 MB文件)不幸的是,我現在提出了一個不同的錯誤:'ReferenceError:distance is not defined',我會爲此 – Josh 2013-05-03 17:21:32
後續問題創建一個單獨的問題http://stackoverflow.com/q/16364671/1332731 – Josh 2013-05-03 17:39:48